FTP 服务器搭建(基于 CentOS 7)
参考资料:
檔案伺服器之三: FTP 伺服器
用 vsftpd 配置FTP服务器
vsftpd 的所有选项
注意,如果要所有人同时编辑 FTP 上的所有文件,可以将 vsftpd.conf
配置文件中的 local_umask
选项设置为 002,并且在创建用户时通过 -g ftp
将所有的 FTP 用户加入同一个用户组。
1. 安装 ftp 服务端软件
yum install vsftpd
2. 配置 vsftpd.conf 配置文件
vsftpd 只需要设置这个文件即可,所有设置项的等号两边不能有空白!!
vim /etc/vsftpd/vsftpd.conf
常见的设置如下,所有的可用设置可以通过 man 5 vsftpd.conf
查看:
#FTP 用户新建文件和目录的默认权限,022 对应 755 只有自己可以修改,002 对应 775 同一个用户组的都可以修改
local_umask=002
#禁止匿名访问
anonymous_enable=NO
#接受本地用户
local_enable=YES
#允许上传
write_enable=YES
#用户只能访问限制的目录
chroot_local_user=YES
#设置所有的 FTP 用户使用同一个目录,不然所有用户默认使用各自的家目录。
local_root=/home/ftp
#支持 PAM 服务的管理,为 vsftpd 使用配置文件
pam_service_name=vsftpd
3. 创建 FTP 目录并调整权限
这个是避免“500 OOPS: vsftpd: refusing to run with writable root inside chroot()”
mkdir /home/ftp
chmod a-w /home/ftp
mkdir /home/ftp/data
4. 添加ftp用户
-M
不自动建立用户的家目录,-d <登入目录>
指定用户登入时的启始目录,-g ftp
将所有用户添加到同一个用户组,-s /sbin/nologin
使这些用户只能使用 FTP 无法登陆系统:
useradd -d /home/ftp -M -g ftp -s /sbin/nologin xiaoming
passwd xiaoming
5. 修改 pam.d/vsftpd
这时候登录 ftp 会报错: 530 login incorrect
vim /etc/pam.d/vsftpd
注释掉下面一行:
#auth required pam_shells.so
6. 启动 vsftpd
systemctl start vsftpd
现在可以登录了,看到的是 /home/ftp
,并且限制在该目录。
可以在浏览器用 ftp://xxx.xxx.xxx.xxx
访问,也可以用 ftp 软件比如 FileZilla,密码就是 xiaoming 的密码。