Centos 安装配置FTP

这里假定你了解FTP和centos的基础知识,就不废话了。这里用的是vsftpd以下操作需要在root权限下进行。

1 安装FTP 服务器

  1. 安装vsftpd在终端中运行
# yum install vsftpd
  1. 安装完成后,该服务会先被禁用,所以我们需要暂时手动启动它,并使其在下次系统启动时自动启动。
# systemctl start vsftpd 
# systemctl enable vsftpd
  1. 接下来,为了允许从外部系统访问 FTP 服务,我们必须打开21端口,FTP 守护进程正在监听如下:
# firewall-cmd --zone=public --permanent --add-port=21/tcp 
# firewall-cmd --zone=public --permanent --add-service=ftp 
# firewall-cmd --reload

2 配置FTP服务器

  1. 现在我们将继续执行一些配置来设置和保护我们的 FTP 服务器,让我们首先备份原始配置文件/etc/vsftpd/vsftpd.conf:
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig

接下来,打开上面的配置文件并使用这些相应的值设置以下选项:

anonymous_enable=NO
local_enable=YES	
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES	
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO	
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
  1. 这里配置用户文件对用户访问的控制,在此配置下只有vsftpd.userlist文件内的用户可以访问。该文件后面会生成。
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
  1. 现在添加以下两个选项以将 FTP 用户限制到他们的主目录
chroot_local_user=YES 
allow_writeable_chroot=YES

3 使用 SELinux 保护 FTP 服务器

如果你把SELinux关了请忽略。如果是严格/宽松模式继续设置。

  1. 允许 FTP 读取用户主目录中的文件,下面俩都试一下,第一个不行第二个
# setsebool -P ftp_home_dir on
# semanage boolean -m ftpd_full_access --on

然后重新启动 vsftpd

# systemctl restart vsftpd

4 测试

  1. 加个用户
# useradd -m -s /bin/bash ftpuser
# passwd ftpuser

然后把用户加入/etc/vsftpd.userlist里

# echo "ftpuser" | tee -a /etc/vsftpd.userlist
# cat /etc/vsftpd.userlist
  1. 测试一下,这里用的WinSCP
    Centos 安装配置FTP_第1张图片

5 配置不同用户的根目录

  1. 为用户创建备用本地根目录
mkdir -p /home/ftpuser/ftp
chown nobody:nobody /home/ftpuser/ftp
chmod aw /home/ftpuser/ftp
  1. 在根目录下创建文件夹,分配权限
mkdir /home/ftpuser/ftp/files 
chown ftpuser:ftpuser /home/ftpuser/ftp/files 
chmod 0700 /home/ftpuser/ftp/files/

然后使用这些值在 vsftpd 配置文件中添加以下选项:

user_sub_token=$USER
local_root=/home/$USER/ftp

保存,重启服务

# systemctl restart vsftpd

如果需要添加其他用户也是类似操作。
到这基本就行了。

注意

配置文件里,句尾不要有多余的空格

参考:

https://www.tecmint.com/install-ftp-server-in-centos-7/

你可能感兴趣的:(centos,linux,bash)