注意,如果要所有人同时编辑 FTP 上的所有文件,可以将 vsftpd.conf 配置文件中的 local_umask 选项设置为 002,并且在创建用户时通过 -g ftp 将所有的 FTP 用户加入同一个用户组。
yum install -y vsftpd #安装vsftpd服务
rpm -qa | grep vsftpd #查看vsftpd版本信息
vim /etc/selinux/config #更改selinux=disabled
setenforce 0 #关闭selinux
getenforce #查看selinux状态
firewall-cmd –permanent –add-service=ftp #防火墙放行vsftpd
firewall-cmd –reload #防火墙配置立即生效
firewall-cmd –list-all #查看防火墙放行服务
systemctl start vsftpd # 启动vsftpd服务
systemctl enable vsftpd # 开机自启动vsftpd服务
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 的密码。