目的
建立一个ftp服务器
-
禁止匿名登录
-
允许team1账号对/var/ftp/data进行管理和操作
-
而其他所有账号(team2,team3)只能对/var/ftp/data/data1进行管理和操作,意思是这些账号的根目录锁死在data1目录下
安装
- 安装vsftpd
yum -y install vsftpd
- 创建两个用户team1 team2,并设置密码
useradd -s /sbin/nologin team1
useradd -s /sbin/nologin team2
echo "123456" | passwd --stdin team1
echo "123456" | passwd --stdin team2
- 修改配置文件
vim /etc/vsftp/vsftp.conf
修改说明:
anonymous_enable=NO #禁止匿名登录
local_root=/var/ftp/data/data1 #锁定用户根目录的路径
chroot_local_user=YES #所有的用户有锁定在这个根目录
chroot_list_enable=YES #开启,则chroot_list_file下的用户不受限制
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES #开启write的权限
- 创建/etc/vsftpd/chroot_list文件
vim /etc/vsftpd/chroot_list
写入一行team1
- 创建/var/ftp/data/data1目录
mkdir -p /var/ftp/data/data1
chmod -R o+w /var/ftp/data/data1 赋予用户写的权限
- 重启服务
systemctl restart vsftpd
访问方式
浏览器直接访问验证,要求输入的用户名密码:team1/123456
可能遇到的错误处理
centos7 ftp报错 530 Login incorrect
tail -f /var/log/secure
查看错误信息,根据相应信息修改
如果没有信息,则修改/etc/pam.d/vsftpd文件,注释掉auth required pam_shells.so
重启vsftpd服务器即可