centos7ftp服务器的搭建

注意,如果要所有人同时编辑 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 的密码。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code