(1)查看是否已经安装了vsfptd:
vsftpd -v
(2)下载安装:
yum -y install vsftpd
(3)创建:chroot_list 文件:
touch /etc/vsftpd/chroot_list
(4)安装 FTP 虚拟用户需要用到的软件及认证模块:
yum install pam* db4* --skip-broken –y
(5)创建一个ftpusers.txt文件:
vim /etc/vsftpd/ftpusers.txt
(6)写入账号及密码,用来保存虚拟用户账号及密码信息,格式是:比如第1行为账号,第2行就是秘密
testftp
12345
(7)修改权限:
chmod 700 /etc/vsftpd/ftpusers.txt
(8)生成虚拟用户数据库文件(注意:以后对虚拟用户的增删操作完之后需要再次执行此命令,使其生成新的数据文件):
db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db
(9)修改权限:
chmod 700 /etc/vsftpd/vsftpd_login.db
(10)设置PAM验证文件,并制定虚拟用户数据库文件进行读取,对原验证文件备份后进行更改:
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.back
(11)修改/etc/pam.d/vsftpd文件:vim /etc/pam.d/vsftpd
在最顶部添加以下两项:
auth sufficient pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient pam_userdb.so db=/etc/vsftpd/vsftpd_login
(12)创建虚拟用户配置目录,用来单独配置不同虚拟用户访问不同目录等。
mkdir /etc/vsftpd/vsftpd_user_conf
(13)创建一个与虚拟用户同名称的文件,用来单独配置这个虚拟用户的访问目录。
vim /etc/vsftpd/vsftpd_user_conf/test1
写入配置内容:
local_root=/home/www/test1 #根据实际来写,目录不存在需创建
write_enable=YES
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
(14) 创建 vsftpd 映射本地用户:
所有的 FTP 虚拟用户需要使用一个系统用户,这个系统用户不需要密码,也不需要登录。 主要用来做虚拟用户映射使用。
useradd -d /home/www -s /sbin/nologin ftpuser
(15) 设置主目录权限(否则无法写入):
chown -R ftpuser:ftpuser /home/www
(16) 备份vsftpd.conf文件:
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.back
清空vsftpd.conf内容:
> /etc/vsftpd/vsftpd.conf
写入以下内容
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO # 禁止匿名登录
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
idle_session_timeout=600
data_connection_timeout=6
listen=YES
listen_port=21
allow_writeable_chroot=YES
local_root=/home/www
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
pasv_enable=YES
pasv_min_port=10240
pasv_max_port=10260
pam_service_name=vsftpd
guest_enable=YES
guest_username=ftpuser
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
reverse_lookup_enable=NO
(17)添加用户,加入组,设置访问目录,不能telnet登录:
useradd -d /opt/test_ftp -g ftp -s /sbin/nologin testftp
(18)允许用户修改密码,但是又没有telnet登录系统的权限:
usermod -s /usr/bin/passwd testftp //用户telnet后将直接进入改密界面
(19)启动服务: service vsftpd start
(20) 加入开机启动: systemctl enable vsftpd.service
(21)测试: ftp ip,根据提示输入用户名和密码
如果修改用户密码:passwd testftp, 记得 db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db