采用 centos 7 精简安装
一、安装vsftp及ftp
用rpm及yum都可
rpm -ivh vsftpd 或 yum install vsftpd
二、配置
vi /etc/vsftpd/vsftpd.conf
#取消匿名登录
anonymous_enable=NO
#启用本地用户登录
local_enable=YES
#允许上传资料
write_enable=YES
local_umask=002
dirmessage_enable=YES
xferlog_enable=YES
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
#不允许用户变更目录
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
allow_writeable_chroot=YES
use_localtime=YES
listen_port=21
idle_session_timeout=300
data_connection_timeout=120
guest_enable=YES
guest_username=ftpuser
user_config_dir=/etc/vsftpd/vuser_conf
virtual_use_local_privs=YES
#被动连接模式
pasv_min_port=10060
pasv_max_port=10090
accept_timeout=5
connect_timeout=1
三、创建虚拟用户帐号与密码
vi /etc/vsftpd/vftpuser.txt #奇行表示是用户,偶行表示密码
test1
123456
根据明文创建密码DB文件
db_load -T -t hash -f /etc/vsftpd/vftpuser.txt \/etc/vsftpd/vftpuser.db
四、创建vsftpd的本地GUSET帐户
useradd -d /ftp/private -m -s /sbin/nologin vftpuser
#chroot_list加入虚拟用户,禁止变更目录
vi /etc/vsftpd/chroot_list
test1
修改/etc/pam.d/vsftpd
vi /etc/pam.d/vsftpd#注释所有行,添加下面内容
auth required pam_userdb.so db=/etc/vsftpd/vftpuser
account required pam_userdb.so db=/etc/vsftpd/vftpuser
五、设置vsftpd开机启动
systemctl enable vsftpd
防火墙修改
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload
查看SELinu设置ftpd_full_access
getsebool -a | grep ftp
setsebool -P ftpd_full_access on
六、为每个虚拟用户创建独立目录及配置文件
创建虚拟用户配置文件存储位置
mkdir /etc/vsftpd/userconf/
cd /etc/vsftpd/userconf/
每个配置文件名与虚拟用户名一致
vi test1
local_root=/ftp/private/test1/
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
创建虚拟用户的根目录与设置根目录的权限
mkdir -p /home/private/test1/
chmod -R 777 /home/private/test1/
重启服务
systemctl restart vsftpd
七、设定用户目录使用配额
vi /etc/fstab
/dev/mapper/centos-home /home xfs defaults,usrquota,grpquota,prjquota 0 0
#卸载家目录在挂载生效
umount /home
mount -a
查看配额状态
xfs_quota -x -c "state"
#建立项目及编码
echo "11:/home/private/test1" >> /etc/projects
echo "test1:11" >> /etc/projid