1、本地用户基本配置档设置如下
vim /etc/vsftpd/vstfpd.conf
local_enable=YES -------允许本地用户登陆
write_enable=YES -----允许执行FTP命令,如果禁用,将不能进行上传、下载、删除、重命名等操作
local_umask=022 ---------本地用户上传umask值
注:默认为登录帐号的家目录。
2、创建自定义的登录ftp目录
mkdir /tmp/ftp
设置selinux上下文
semanage fcontext -a -t public_content_rw_t '/tmp/ftp(/.*)?'
restorecon -Rv /tmp/ftp/
3、在配置档中加入以下参数,修改用户登录的目录
vim /etc/vsftpd/vstfpd.conf
local_root=/tmp/ftp ------设置本地用户的FTP根目录
chroot_local_user=YES ------把用户限制到指定目录或主目录,即开启用户目录限制
allow_writeable_chroot=YES -------用户被限制在主目录,充用户对主目录写权限,否者登录报错。
anon_other_write_enable=yes ------允许查看、删除文件和目录,客戶端ls報425 Failed to establish
reverse_lookup_enable=NO 关闭DNS反向解析,提高登录速度,默认为开启
4、重启生效
systemctl restart vsftpd
5、创建ftp测试帐号
useradd test #创建测试帐号
echo redhat | passwd --stdin test #设定相关密码
groupadd tg #创建tg组
gpasswd -a test tg #把创建本地用户添加tg组中
chown root:tg /tmp/ftp #修改目录的所属组
chmod 775/tmp/ftp #修改目录权限
注:按上面操作后,本地用户才能正常上传文件,6-7步骤为特殊设置,可根据需要配置。
6、排除特殊用户不受限制
开启用户目录限制后,排除特殊用户不受限制,方法如下:
vim /etc/vsftp.conf
Chroot_list_enable=YES
Chroot_list_file=/etc/vsftpd/chroot_list ----写入些文件的用户,可以访问任何目录。
注:vim /etc/vsftpd/chroot_list需手动创建chroot_lis文件,如果不创建,其他用户也将不能使用。
7、通过文件限制用户访问
7.1通过白名限制
7.2、通过黑名限制