vsftpd虚拟用户基于文件验证的配置
1.安装vsfptd
2.建立虚拟用户密码
test3
test3
test4
test4
※上述创建了test3和test4两个用户,并且用户名和密码相同。
3.生成vsftpd的认证文件
4.更改认证文件的权限,让vsftpd_logins.db只对root用户有读写权限。
5.建立虚拟用户所需的PAM配置文件
6.建立虚拟用户
7.设置vsftpd.conf配置文件
8.为不同的虚拟用户设置不同的权限
在/etc/vsftpd/vsftpd_user_conf目录中为每个虚拟用户单独的配置文件,配置文件名与虚拟用户名相同。
9.建立用户test3登录时的目录
※若在登录的时候,出现了"500 OOPS: vsftpd: refusing to run with writable root inside chroot()",
则需要去掉根目录的写权限。
付:
1.安装vsfptd
apt-get install vsftpd
2.建立虚拟用户密码
mkdir /etc/vsftpd
vim /etc/vsftpd/logins.txt
在里面填写用户名和密码,奇数行为用户名,偶数为密码
test3
test3
test4
test4
※上述创建了test3和test4两个用户,并且用户名和密码相同。
3.生成vsftpd的认证文件
db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_logins.db
4.更改认证文件的权限,让vsftpd_logins.db只对root用户有读写权限。
chmod 600 /etc/vsftpd/vsftpd_logins.db
5.建立虚拟用户所需的PAM配置文件
vim /etc/pam.d/vsftpd.vu
在vsftpd.vu中添加如下信息
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
※如果在系统中不存在/lib/security/pam_userdb.so,可以尝试
ln -s /lib/i386-linux-gnu/security/pam_userdb.so /lib/security/pam_userdb.so
6.建立虚拟用户
groupadd ftpd
useradd -g ftpd ftpguest
mkdir /home/ftpguest
7.设置vsftpd.conf配置文件
guest_enable=YES #激活虚拟用户
guest_username=ftpguest #虚拟用户在linux中的用户名
pam_service_name=vsftpd.vu #虚拟用户数据文件
user_config_dir=/etc/vsftpd/vsftpd_user_conf #指定虚拟用户的配置文件的目录
virtual_use_local_privs=YES #设置为YES时,表示虚拟用户使用与本地用户相同的权限;为NO时,表示虚拟用户与匿名用户权限相同
8.为不同的虚拟用户设置不同的权限
在/etc/vsftpd/vsftpd_user_conf目录中为每个虚拟用户单独的配置文件,配置文件名与虚拟用户名相同。
mkdir /etc/vsftpd/vsftpd_user_conf
vim /etc/vsftpd/vsftpd_user_conf/test3
在文件末尾添加如下配置信息:
local_enable=YES
write_enable=YES
local_root=/home/test3 # 设置虚拟用户登录后的主目录
anon_world_readable_only=NO # 具有浏览FTP目录和下载权限
anon_upload_enable=YES # 具有上传文件权限
anon_mkdir_write_enable=YES # 具有建立和删除目录的权利
anon_other_write_enable=YES # 具有文件改名和删除文件的权利
9.建立用户test3登录时的目录
mkdir /home/test3
※如果没有建立/home/test3目录,那么登录后的默认目录就为/home/ftpguest。
※若在登录的时候,出现了"500 OOPS: vsftpd: refusing to run with writable root inside chroot()",
则需要去掉根目录的写权限。
chmod a-w /home/test3
参考:http://llinux.blog.51cto.com/629640/833668
付:
#启动vsftp:
service vsftpd start
/etc/init.d/vsftpd start
#停止vsftp:
service vsftpd stop
/etc/init.d/vsftpd stop