Vsftp ——虚拟用户
一.安装vsftp
yum install vsftpd
启用vsftdp
service vsftpd start
或
/etc/init.d/vsftpd start
停用:service vsftpd stop
重启:service vsftpd restart
查看vsftpd状态:
service vsftpd status
查看vsftpd启动状态:
chkconfig --list vsftpd
设置vsftpd 2345为启动状态:
chkconfig vsftpd on
虚拟用户设置
创建虚拟用户需安装db4,db4-utils,db4-devel
可用rpm -qa|grep db4命令查询是否已安装,如果缺少,则安装相应的包,yum安装即可
Centos5.5中已默认安装db4。
db4-utils,db4-devel可通过以下命令安装
yum install db4-utilsyum install db4-devel
创建一个文件(名字随便)
vi /home/virtual
格式为第一行用户名第二行密码第三行用户名第四行密码,以此类推
于是,我们/home/virtual文件的内容为
belrare
******
ktnjx
******
read
******
生成数据库
db_load -T -t hash -f /home/virtual /etc/virtual.db
设置一下数据库文件的访问权限
chmod 600 /etc/virtual.db
修改主配置文件/etc/pam.d/vsftpd来配置认证关系
vi /etc/pam.d/vsftpd
把里面的全部禁用或删除,禁用在每句最前面加上#,然后在最后加入
auth required /lib/security/pam_userdb.so db=/etc/virtual
account required/lib/security/pam_userdb.so db=/etc/virtual
建立一个本地帐户作为映射(如virtual)并为其分配目录(/home/virtual)并为了安全让他无法登录shell
[root@localhost ~]#mkdir /home/virtual
[root@localhost ~]#useradd -d /home/virtual -s /sbin/nologin virtual
[root@localhost ~]# passwd virtual
Changing password for user virtual
New password:
Retype new password:
passwd:
all authentication tokens updated successfully.
[root@localhost ~]#
chown -R virtual:ftp /home/virtual
记得要给/home/zhulingfei这个目录权限,否则会导致无法登录失败
chmod -R 755 /home/virtual
在/home/zhulingfei创建用户目录
mkdir /home/virtual/belrare
mkdir /home/virtual/ktnjx
mkidr /home/virtual/read
创建/etc/vsftpd_user_conf
mkdir /etc/vsftpd_user_conf
创建belrare
vi /etc/vsftpd_user_conf/belrare
belrare的内容为
write_enable=YES
anon_world_readable_Only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/virtual/belrare
创建ktnjx(内容根据自己想要分配的权限自己调整)
write_enable=YES
anon_world_readable_Only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/virtual/ktnjx
编辑/etc/vsftpd/vsftpd.conf,将内容改为如下
listen=YESanonymous_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_local_user=YES
guest_enable=YES
guest_username=virtual(刚刚新建的本地帐户,这里就是和刚刚新建的本地用户作映射的地方)
user_config_dir=/etc/vsftpd_user_confpam_service_name=vsftpd(对应/etc/pam.d下的vsftpd文件)
local_enable=YES
secure_chroot_dir=/var/run/vsftpd
创建一个/var/run/vsftpd文件夹
mkdir /var/run/vsftpd
重启vsftpd
service vsftpd restart
完成。
PS:增加新用户在/home/fei中添加,添加后使用以下命令更新
db_load -T -t hash -f /home/fei /etc/zhulingfei.db
如新用户无法登陆,执行一次
chown -R virtual:virtual /home/virtual
重启vsftpd
三.权限设置:
virtual_use_local_privs参数
当 virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限;
当 virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO。
当 virtual_use_local_privs=YES,write_enable=YES时,虚拟用户具有写权限(上传、下载、删除、重命名)。
当 virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_Only=YES,
anon_upload_enable=YES 时,虚拟用户不能浏览目录,只能上传文件,无其他权限。
当 virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_Only=NO,
anon_upload_enable=NO 时,虚拟用户只能下载文件,无其他权限。
当 virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_Only=NO,
anon_upload_enable=YES 时,虚拟用户只能上传和下载文件,无其他权限。
当 virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_Only=NO,
anon_mkdir_write_enable=YES 时,虚拟用户只能下载文件和创建文件夹,无其他权限。
当 virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_Only=NO,
anon_other_write_enable=YES 时,虚拟用户只能下载、删除和重命名文件,无其他权限。