vsftp 虚拟用户认证

1.建立用户数据库
touch /home/ftpuser.txt
echo test111 >> ftpuser.txt # 账户奇数行
echo pass111 >>ftpuser.txt  # 密码偶数行
echo test222 >> ftpuser.txt

echo pass222 >> ftpuser.txt
# rpm -qf $(which db_load)
db4-utils-4.3.29-9.fc6
rpm -ivh db4_utlis-*.rpm
生成密码文件
db_load -T -t hash -f /home/ftpuser.txt /etc/vsftpd/vsftpd_login.db  与pam认证文件内名称相同
2.建立验证模式文件
mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
vi /etc/pam.d/vsftpd 与 vsftpd.conf 内 pam_service_name= vsftpd 相同
添加
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login 与密码文件名称相同
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login 与密码文件名称相同
3.建立一个所有虚拟用户使用的系统用户
useradd -d /home/vsftp virtual
chmod 755 /home/vsftp
4.修改配置文件启用虚拟用户
guest_enable=YES # 开启虚拟用户功能
guest_username=virtual # 指定虚拟用户使用的系统用户
pam_service_name=vsftpd # 以/etc/pam.d/验证模式文件名相同
5.重新启动后可以用虚拟用户登陆了.
为虚拟用户设置不同权限
virtual_use_local_privs
设置为YES 时,虚拟用户使用与本地用户相同权限,设置为NO 时,虚拟用户使用与匿
名用户相同权限
测试登录 可以用 [username]:[password]@IP地址
为每个用户设置不同权限
1.添加per_user 功能参数,如果开启了此功能,必须为每一个用户都有配置文件
vi /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vsftp_user_conf
2.在/etc/vsftpd/vsftp_user_conf 这个目录下建立与虚拟用户同名的文件,文件中写入用户的私有参数
# echo "write_enable=NO" > /etc/vsftpd/vsftp_user_conf/test111
我们限制test111 禁止上传文件
3.重启动 vsftpd 登录测试.

你可能感兴趣的:(Security,用户,认证,密码,required)