版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://blog.csdn.net/wenshuangzhu/article/details/44078949
本文说明如何利用Vsftpd虚拟用户实现FTP用户权限控制,只允许指定的FTP用户上传和下载文件,但不允许其删除和重命名文件。
# vi /etc/vsftpd.conf
修改以下参数
anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
chroot_list_enable=YES #YES:将chroot_list中列出来的用户转到其在user_config_dir下面定义的文件中指定的目录。NO:就是系统用户的默认目录
chroot_list_file=/etc/vsftpd/chroot_list #这是我们放置chroot用户的文件,后面我们要建立
增加以下参数
userlist_enable=YES
userlist_deny=NO
user_config_dir=/etc/vsftpd/vsftpd_user_conf #虚拟用户的配置文件的主目录,后面我们建立虚拟用户配置文件时建立此目录
guest_enable=YES
guest_username=vms #虚拟用户映射的系统用户,后面我们要建立
修改/etc/pam.d/vsftpd,这个文件名与/etc/vsftpd.conf中的pam_service_name=vsftpd相对应。
注释掉所有参数,在最后面加入下面两行
auth sufficient/lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login #/vsftpd_login是要建立的验证文件,真正的文件是vsftpd_login.db,这里不能有后缀
accountsufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login #机器是64位,如果是32位的,用lib取代
虚拟用户并不是系统用户,也就是说这些FTP的用户在系统中是不存在的。他们的总体权限其实是集中寄托在一个在系统中的某一个用户身上的,所谓Vsftpd的虚拟宿主用户,就是这样一个支持着所有虚拟用户的宿主用户。
创建系统用户vms作为虚拟用户的宿主用户,也可以使用已有的系统用户
# useradd -d /home/vms vms
# mkdir /home/vms
# chown vms:vmsgroup /home/vms
# chmod 700 /home/vms
创建/etc/vsftpd目录(如果已存在则不需再创建)
# mkdir /etc/vsftpd
编辑虚拟用户信息
# vi /etc/vsftpd/login.txt
添加虚拟用户名和密码,一行用户名,一行密码,以此类推。奇数行为用户名,偶数行为密码。下面的示例中添加的虚拟用户为ftpuser,用户密码为password。
# vsftpd virtualuser
ftpuser
password
运行下面的命令,编译虚拟用户信息
# db_load -T -thash -f /etc/vsftpd/login.txt /etc/vsftpd/vsftpd_login.db
增加chroot_list信息,也就是虚拟用户名,如果没有此用户,目录会落在vms建立时指定的目录,chroot_list文件路径由/etc/vsftpd.conf中的chroot_list_file参数指定。
# vi /etc/vsftpd/chroot_list
添加以下内容
# vsftpd virtualuser
ftpuser
内容与chroot_list一样,放在/etc/目录下,否则定义的虚拟用户无法登录。可以直接拷贝chroot_list文件至/etc目录并重命名为vsftpd.user_list
# cp /etc/vsftpd/chroot_list /etc/vsftpd.user_list
各个虚拟用户自定义配置文件的存放路径由/etc/vsftpd.conf中的user_config_dir参数指定。在该目录下增加虚拟用户自定义信息,文件名字与虚拟用户名一致。如果此目录下没有用户的自定义配置文件,就使用/etc/vsftpd.conf的默认配置。
新建虚拟用户配置自定义配置文件存放目录
# mkdir /etc/vsftpd/vsftpd_user_conf
#vi /etc/vsftpd/vsftpd_user_conf/ftpuser
添加以下内容:
local_root=/home/vms/sdr/work #虚拟用户的根目录,需要预先建立并赋予相应权限
write_enable=YES #开放虚拟用户的写权限
anon_world_readable_only=NO #开放虚拟用户的下载权限
anon_upload_enable=YES #开放虚拟用户的上传权限
anon_mkdir_write_enable=YES #开放虚拟用户创建目录的权限
anon_other_write_enable=NO #禁止虚拟用户删除、重命名目录和文件
保存,退出。
# service vsftpd restart