因业务需要,在centos服务器上配置了FTP服务,做此随笔以记录。配置是以实现多用户多工作目录为目标而配置。
- 首先在服务器安装ftp:
yum install -y vsftpd
2. 一些vsftpd的相关命令:
查看服务状态:systemctl status vsftpd.service
开启服务:systemctl start vsftpd.service
设置服务开机自启:systemctl enable vsftpd.service
3. 设置SELinux。
查看SELinux策略: getsebool -a | grep ftp
开启full_access和home_dir:
setsebool -P ftpd_full_access on
setsebool -P tftp_home_dir on
4. 设置vsftpd.conf文件。
放开一些配置:local_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
在文件底部加入配置:
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
allow_writeable_chroot=YES
reverse_lookup_enable=NO
# 系统用户登录后的根目录
local_root=/var/ftp/pub
# 匿名用户登录后的根目录
anon_root=/var/ftp/test
# 设置用户独立配置文件保存目录
user_config_dir=/etc/vsftpd/userconfig/
5. 创建ftp账户。
执行命令:
echo -e "\n/sbin/nologin" >> /etc/shells
ftp根目录账号
useradd -d /var/ftp/pub/ -s /sbin/nologin -g ftp ftpadmin
passwd ftpadmin yourpassword
赋权:chown -R ftpadmin:ftpgroup /var/ftp/pub/
chmod /var/ftp/pub/
添加用户账号(chroot_list)
useradd -d /var/ftp/pub/train -s /sbin/nologin -g ftp trainuser
passwd trainuser yourpassword
同样进行赋权,跟文件夹授权。
6. 在user_list文件中添加ftpadmin、trainuser
并在chroot_list文件中添加trainuser
在/etc/vsftpd/下添加userconfig文件夹,并在文件夹下新建与用户同名的文件,配置用户根目录。
新建trainuser文件,并在文件中添加:local_root=/var/ftp/pub/train/ 保存退出。
7. 重启vsftpd服务
systemctl restart vsftpd
重启成功后,使用ftp协议连接测试