安装:
yum -y install vsftpd
修改配置文件:
配置文件地址:/etc/vsftpd/vsftpd.conf
1.关闭匿名用户登录
anonymous_enable=NO
2.允许本地系统用户登录
local_enable=YES
3.用户写的权限
write_enable=YES
4.用户上传的权限
anon_upload_enable=YES
5.用户创建删除重命名文件夹的权限
anon_mkdir_write_enable=YES
6.所有用户都只能访问指定目录(第一种方式)
chroot_local_user=YES
chroot_list_file=/etc/vsftpd/chroot_list
注意:凡是加在文件vsftpd.chroot_list中的用户都是不受限止的用户
7.限制用户只能访问指定目录(第二种方式)
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
注意:凡是加在文件vsftpd.chroot_list中的用户都是受限止的用户
注意:这个chroot_list需要自己创建,格式如下
#命令
sudo vi chroot_list
#写入内容为指定用户名称
test
xiaoming
8.防止报错:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
allow_writeable_chroot=YES
9.配置白名单和黑名单
userlist_enable=YES(只有为YES时,白名单才会生效)
userlist_deny=NO (NO时为设置白名单;YES时为设置黑名单)
注意:设置黑名单即可(提前将root用户或操作用户放入user_list中,通过ftp的方式既不能登录)
错误处理:
1.用户操作文件回报550 create dir fail
解决方法:
修改 /etc/selinux/config
将 SELINUX=enforcing 改为SELINUX=disabled
执行命令:setenforce 0 就生效了
2.500 OOPS: vsftpd: refusing to run with writable root inside chroot()
解决方法:修改配置文件
allow_writeable_chroot=YES
创建用户:
useradd -d /opt/tool test
passwd test
abc123
abc123
修改文件的操作权限
chmod 777 /opt/tool/
修改用户权限只能ftp
usermod -s /sbin/nologin test
删除用户:
userdel test
动态传参脚本:
一.新建增加用户和规定用户只能访问指定目录并且只能ftp的方式连接的脚本
1.创建并编辑脚本
sudo vi add-ftp-user.sh
2.脚本内容
#!/bin/bash
useradd -d /opt/test/$3 $1
chmod 777 /opt/test/$3/
usermod -s /sbin/nologin $1
echo $1:$2|chpasswd
#用户名$1 密码 $2 目录$3
3.使脚本具有执行权限
chmod +x ./add-ftp-user.sh
二。删除用户和当前文件夹的shell脚本
1.创建并编辑脚本
sudo vi add-ftp-user.sh
2.脚本内容
#!/bin/bash
userdel $1
rm -rf /opt/test/$2/
#用户名$1 用户目录名称$2
3.使脚本具有执行权限
chmod +x ./add-ftp-user.sh