关闭防火墙
#systemctl stop firewalld
#systemctl disable firewalld
关闭SELINUX
#vi /etc/selinux/config
修改为 SELINUX=disabled
安装vsftpd服务
#yum -y install vsftpd
启动
systemctl start vsftpd
设置开机启动
systemctl enable vsftpd
由于刚刚设置了SELINUX,所以需要重启一下
#reboot
使用匿名 用户登陆
打开windows的文件管理器
输入 ftp://ftp服务器的IP地址
匿名用户登陆可创建 修改等权限
修改FTP目录权限
#chmod -R 757 /var/ftp/*
修改/etc/vsftpd/vsftpd.conf文件
修改第29行和33行,去除前面#注释符
anon_upload_enable=YES
anon_mkdir_write_enable=YES
在末行添加如下代码
anon_other_write_enable=YES 允许匿名用户修改目录名或删除目录
重启ftp
#systemctl restart vsftpd
再次使用windows资源管理器进行访问并创建文件夹
限制用户切换到主目录外
修改第101行和103行,将其前面#注释符去除
在/ect/vsftpd/vsftpd.conf末行添加
创建/etc/vsftpd/chroot_list文件
#vi /etc/vsftpd/chroot_list
输入一个用户 这里使用 testuser
添加用户并设置用户密码,重启vsftpd服务后,使用 CMD窗口进行用户登陆 如下图
测试是否能够切换:
将“chroot_list_enable=YES”配置项修改为“chroot_list_enable= NO”,重启vsftpd,再次进行测试
使用虚拟用户登陆FTP服务器
1、创建FTP虚拟用户数据库
#vi /etc/vsftpd/vuser.list 输入测试用户,格式如下
test1 #username
000000 #password
test2
000000
②调用db_load命令,运行哈希算法对原始文件进行加密运算生成新的db文件
db_load -T -t hash -f /etc/vsftpd/vuser.list /etc/vsftpd/vuser.db
(可选)为安全起见,删除原有的虚拟用户文件
修改新生成的用户数据文件的权限为root用户读写权限
2、创建FTP根目录以及虚拟用户映射的系统用户
#useradd -d /var/ftproot -s /sbin/nologin virtual
修改其用户组以及其他用户权限
#chmod -Rf 755 /var/ftproot/
3、创建虚拟用户的PAM认证文件
注意:参数db用于指向刚刚生成的vuser.db文件,但不要写后缀。
4、修改vsftpd配置文件,以支持虚拟用户模式
修改/etc/vsftpd/vsftpd.conf文件
修改,加上#注释符
在文件末行修改,添加
5、赋予虚拟用户权限
#mkdir /etc/vsftpd/vusers_dir/ //创建用户独立的权限配置文件存放的目录。
#修改FTP的配置文件 vi /etc/vsftpd/vsftpd.conf //指定用户独立的权限配置文件存放的目录。
在文件末行添加如下内容
创建虚拟用户test1的权限配置文件,不输入内容则无任何权限
创建虚拟用户test2的权限配置文件,并添加上传,创建文件夹,和写入权限
重启vsftpd服务
#systemctl restart vsftpd
6、验证虚拟用户登陆,以及权限测试
在windows端打开CMD命令提示符,输入
ftp 192.168.100.20(你的FTP服务器地址)。如下
测试虚拟用户test1
测试虚拟用户test2