安装 FTP 上传 PHP 代码进行运行
[root@localhost ~]# yum install -y vsftpd
编辑 vsftpd 配置文件vi /etc/vsftpd/vsftpd.conf
chroot_local_user=YES
user_config_dir=/etc/vsftpd/vsftpd_user_config
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=10001
pasv_max_port=10100
pasv_promiscuous=YES
seccomp_sandbox=NO
file_open_mode=0777
打开 21 端口
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=21/tcp
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]#
[root@localhost ~]# firewall-cmd --permanent --zone=public --query-port=21/tcp
yes
[root@localhost ~]#
打开 10001 至 10100 端口
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=10001-10100/tcp
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]#
[root@localhost ~]# firewall-cmd --permanent --zone=public --query-port=10001-10100/tcp
yes
[root@localhost ~]#
创建 vsftpd_user_config 目录
[root@localhost ~]# ll /etc/vsftpd/
total 20
-rw-------. 1 root root 125 Oct 31 2018 ftpusers
-rw-------. 1 root root 361 Oct 31 2018 user_list
-rw-------. 1 root root 5329 Nov 24 17:20 vsftpd.conf
-rwxr--r--. 1 root root 338 Oct 31 2018 vsftpd_conf_migrate.sh
drwxr-xr-x. 2 root root 6 Nov 24 17:25 vsftpd_user_config
[root@localhost ~]#
[root@localhost ~]#
创建 www 用户家目录,使用 www 目录是为了保证通过 FTP 上传的代码可以被以 www 用户运行的 nginx 和 php 执行
[root@localhost ~]# mkdir /home/www
[root@localhost ~]# chown -R www:www /home/www/
[root@localhost ~]#
添加 FTP 用户
[root@localhost ~]# useradd -d /home/www/www.jason.com -s /sbin/nologin -g ftp www.jason.com
[root@localhost ~]#
[root@localhost ~]# passwd www.jason.com
Changing password for user www.jason.com.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]#
useradd生成的目录 /home/www/www.jason.com 的权限为 700,修改为 755
[root@localhost ~]# chmod 755 /home/www/www.jason.com
[root@localhost ~]#
最后限制 www.jason.com 用户访问上层目录,在 /etc/vsftpd/vsftpd_user_config
目录下创建 www.jason.com 文件,文件中指定 local_root=/home/www/www.jason.com
[root@localhost ~]# vi /etc/vsftpd/vsftpd_user_config/www.jason.com
[root@localhost ~]#
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]#