y35wer 发表于 2015-3-17 08:57:54

VSFTP的虚拟用户配置方法

1、建立虚拟用户口令库文件
   口令库文件中奇数行设置用户名,偶数行设置口令
# vi /etc/vsftpd/ftpuser.txt
ftpaaa
123456
ftpbbb
123456


2、生成vsftpd的认证文件
安装名叫“db4-utils-...”的包
# db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/ftplogin.db
    注:如果没有db_load命令,请安装db4-utils-*相关rpm包。
   设置认证文件只对用户可读可写
# chmod 600 /etc/vsftpd/ftplogin.db


3、建立虚拟用户所需的PAM配置文件
# vi /etc/pam.d/vsftpd.vu
auth required /lib64/security/pam_userdb.sodb=/etc/vsftpd/ftplogin
account required/lib64/security/pam_userdb.so db=/etc/vsftpd/ftplogin
   注意:以上2行中最后的2个文件名ftplogin和第2个步骤中的数据库名字必须一致!
             以上是64位系统使用
32位系统如下:
vi /etc/pam.d/vsftpd.vu
auth sufficient /lib/security/pam_userdb.sodb=/etc/vsftpd/ftplogin
account sufficient/lib/security/pam_userdb.so db=/etc/vsftpd/ftplogin


4、建立虚拟用户所要访问的目录并设置相应权限
# useradd -d /home/ftpsite virtual(用户名,可以改为其他名)
# chmod 700 /home/ftpsite/


经过该步骤的设置,/home/ftpsite就是virtual用户的主目录,该用户也是ftpsite目录的拥有者。除root用户之外,只有该用户具有对该目录的读、写和执行的权限。


5、设置vsftpd.conf配置文件
guest_enable=YES 默认配置没有这行
guest_username=virtual 默认配置没有这行
pam_service_name=vsftpd.vu 默认是vsftpd
virtual_use_local_privs=YES      设定虚拟用户的权限符合他们的宿主用户
chroot_local_user=YES 禁止本地用户登出自己的FTP主目录
其他默认配置根据自己的需求来修改


6、设置主配置文件
在vsftpd.conf文件中添加用户配置文件目录设置
user_config_dir=/etc/vsftpd_user_conf
增加上行的作用是:对各个用户的权限进行设置,然后在用户配置文件目录下创建相应的用户配置文件,比如为上述名为ftpaaa的用户创建一个配置文件
#vi /etc/vsftpd_user_conf/ftpaaa
anon_world_readable_only=NO   可读可下载
anon_upload_enable=YES            可上传
anon_mkdir_write_enable=YES   可创建和删除文件夹
anon_other_write_enable=YES    可文件改名和删除文件
local_root=/home/ftpsite/ftpaaa      指定ftpaaa的宿主目录(所有用户默认都是登录到/home/ftpsite,指定后则登录到指定的目录中)


同样为ftpbbb用户创建一个配置文件
vi /etc/vsftpd_user_conf/ftpaaa


注意:用户配置文件名称与用户名相同


7、创建用户的指定登录目录(如果没有配置local_root,则不用创建,因为默认登录到/home/ftpsite)
mkdir /home/ftpsite/ftpaaa
chown virtual:virtual /home/ftpsite/ftpaaa
chmod 700 /home/ftpsite/ftpaaa


8、启到vsftpd服务
service vsftpd start

页: [1]
查看完整版本: VSFTP的虚拟用户配置方法