在CentOS8搭建FTP文件服务

在服务器搭建FTP中出现了用户无法登录的bug,最后发现是设置nologin后没有修改/etc/shells导致的

  1. 安装并启动FTP服务

安装vsftpd
1
yum install vsftpd -y
启动vsftpd
1
systemctl start vsftpd
设置vsftpd开机启动
1
systemctl enable vsftpd.service
  1. 配置FTP

    匿名访问和切换根目录都会给服务器带来安全风险,我们把这两个功能关闭。
编辑 /etc/vsftpd/vsftpd.conf
1
vim /etc/vsftpd/vsftpd.conf

禁用匿名用户

1
anonymous_enable=NO

禁止切换根目录

1
chroot_local_user=YES
  1. 创建FTP用户

创建用户
1
useradd 用户名
设置密码
1
echo "密码" | passwd 用户名 --stdin
限制用户

设置ftp用户不能直接登录服务器

1
usermod -s /sbin/nologin 用户名

编辑 /etc/shells

1
vim /etc/shells

最后一行添加

1
/sbin/nologin
  1. 为用户分配主目录

为用户 ftpuser 创建主目录

/data/ftp 为主目录, 该目录不可上传文件

/data/ftp/pub 文件只能上传到该目录下

1
mkdir -p /data/ftp/pub
创建登录欢迎文件
1
echo "Welcome to use FTP service." > /data/ftp/welcome.txt
设置访问权限
1
chmod a-w /data/ftp
1
chmod 777 -R /data/ftp/pub
设置为用户的主目录
1
usermod -d /data/ftp ftpuser