vsftpd对匿名用户的权限管理不够灵活,如果想对访问FTP的帐户给予更多的权限,就可以用本地帐户来实现,但是,本地帐户默认情况下是可以登录linux系统的,这样对linux系统来说是一个安全隐患。
vsftpd虚拟用户或匿名帐户,既能灵活的赋予FTP用户权限又能保证FTP己整个linux的安全。
分析一下原理:
虚拟用户不是一个合法的linux系统帐户,但可以登录系统上运行的FTP服务器,当用户在连接上FTP服务器后,会被要求输入用户名和密码。FTP服务器拿到这个用户名和密码后,会调用相应的PAM模块,将此用户名和密码与FTP认证文件进行比较,如果相符就通过认证并被映射成一个linux下的本地帐户,然后根据使用本地帐户对FTP资源进行访问,否则断开连接请求。
1.下载软件db4_utils-4.3.29-10.el5
2.建一个本地帐户 useradd -d /etc/vsftpd/ftproot -s /sbin/nologin virtual
3.将目录/etc/vsftpd/ftproot的权限改为755,让虚拟用户有权限可以访问。
4.在建一个文件/etc/vsftpd/user.txt 并写入虚拟用户的用户名和密码,奇数行为用户名,偶数行为密码。
5.用命令db-load 将文件user.txt 转化为数据库文件
Db_load -T -t hash -f /etc/vsftpd/user.txt /etc/vsftpd/user.db
6.在/etc/pam.d/下创建文件vsftpd.vu并编辑文件
Auth required /lib/security/pam_userdb.so /etc/vsftpd/user.db
Account required /lib/security/pam_userdb.so /etc/vsftpd/user.db
7.编辑/etc/vsftpd/vsftpd.conf
8. 重启服务 service vsftpd restart
进行到这里创建虚拟用户的基本过程就做完了。
如果要对不同的虚拟用户进行不同的权限控制可在/etc/vsftpd/vsftpd.conf中加入user_config_dir=/etc/vsftpd/user_config/。/etc/vsftpd/user_config/是虚拟用户自己额外的配置文件的所在目录。
您可能感兴趣的文章:
vsftpd安装及虚拟用户认证的配置方法
ubuntu vsftpd虚拟用户配置
CentOS 6.2 配置vsftpd虚拟用户的方法
vsftpd配置虚拟用户的方法介绍
vsftpd虚拟用户创建实例
vsftpd虚拟用户配置的总结
CentOS 5.3建立Vsftpd虚拟用户
CentOS6.2 x64 下 配置vsftpd虚拟用户服务器
vsftp 虚拟用户高级设置