配置使用虚拟用户登录的FTP服务器,可以避免使用操作系统帐号作为FTP用户带来的一些安全问题,也便于通过数据库或其它程序来进行管理。本文以Linux下的vsftpd这个FTP服务器软件为例,描述配置FTP的详细过程。
1 安装必备软件
yum install vsftpd
yum install db4#Berkeley DB数据库,用来存储虚拟FTP用户名、密码
2 初始化安装环境
mkdir -p /data/vsftpd #这个目录存放所有虚拟用户的目录和文件
useradd -d /data/vsftpd -s /sbin/nologin vsftpd#创建vsftpd用户,禁止登录
chown -R vsftpd:vsftpd /data/vsftpd
mkdir -p /etc/vsftpd/vsftpd_user_conf#这个目录下存放各个虚拟用户的配置文件(可以为空)
3 修改vsftpd配置文件
vi /etc/vsftpd/vsftpd.conf,内容如下:
vi /etc/pam.d/ftp, 内容如下:
3 新建用户
i 修改用户名密码文件
vi /etc/vsftpd/logins.txt,在这个文件中新增用户名密码,logins.txt中奇数行为账户名,偶数行为密码
db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_login.db #生成用户名、密码的数据库文件
ii 创建用户的目录
mkdir /data/vsftpd/$new_user_name
chown -R vsftpd:vsftpd /data/vsftpd/$new_user_name
4 启动FTP服务
service vsftpd start
chkconfig vsftpd on#设置开机自动启动
5 删除用户
i 修改用户名密码文件
vi /etc/vsftpd/logins.txt,在这个文件中删除用户名密码,logins.txt中奇数行为账户名,偶数行为密码
db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_login.db
ii 删除用户目录
删除/data/vsftpd下的用户目录
常见故障:
登录失败
解决方法
通常为SELinux导致,解决步骤如下:
vi /etc/selinux/config#将selinux=enforcing或permissive改成disabled,关掉selinux,
setenforce 0#使关掉selinux策略立即生效
/etc/init.d/vsftpd restart#重启FTP服务
文章来源:http://www.hulian.top,转载请注明!