一、实验环境:
一台安装了centos7的虚拟机(ftp服务器)、一台安装了windows系统/centos系统的机器(客户端),保持联通。本实验示例采用vmnet8的方式搭建拓扑。
二、实验配置步骤:
1、安装并开启ftp服务
#yum install –y vsftpd -----在线安装
#rpm –qa | grep vsftpd -----检测是否安装成功
#systemctl start vsftpd -----开启ftp服务器
#systemctl stop vsftpd -----停止ftp服务
#systemctl restart vsftpd -----重启ftp服务
vsftpd.conf文件备份
mv vsftpd.conf vsftpd.conf.bak
文件过滤掉注释并重新写入
cat vsftpd.conf.bak | grep -v '#' > vsftpd.conf
关闭防火墙 systemctl stop firewalld
关闭selinux: setenforce 0
或vi /etc/selinux/config enforcing=disabled
2、匿名用户访问ftp服务器
vi /etc/vsftpd/vsftpd.conf
ftp_username=ftp
no_anon_password=YES
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=NO
测试:
systemctl restart vsftpd
ftp://服务器IP
更改用户权限(允许创建目录但权限不够,故更改权限)后则可以新建成功文件和文件夹,也可以上传下载,但不可以重命名和删除。
若将anon_other_write_enable=YES,则可以重命名和删除
3、本地用户访问ftp服务器
(1)基本配置,保证普通用户和root用户的正常登录
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
另:删除匿名用户的其它配置,否则会影响其他操作。6dd
systemctl restart vsftpd
①此时可已经可以使用本地的用户账号密码进行登录。
②如果使用root账号登录,需要删除ftpuser和user_list文件中的root账号;
vi /etc/vsftpd/ftpusers
vi /etc/vsftpd/user_list
(2)锁定用户家目录
useradd zhangsan -g ftp
useradd lisi -g ftp
passwd zhangsan
passwd anlisi
systemctl restart vsftpd
先恢复ftpuser和user_list文件中的root账号
vi /etc/vsftpd/vsftpd.conf
chroot_list_enable=YES 设置是否启用chroot_list_file配置项中指定的文件
chroot_local_user=YES 用于指定用户列表文件中的用户,是否允许切换到上级目录。
chroot_list_file=/etc/vsftpd/chroot_list
systemctl restart vsftpd
liyan不能切换目录,但zhangsan可以切换目录
(3)不同用户拥有不同权限
注意:userdel zhangsan,userdel lisi
useradd zhangsan -r -m -g ftp -d /var/ftp/zhangsan
useradd lisi -r -m -g ftp -d /var/ftp/lisi
删除锁定的用户家目录
添加一条命令:
vi /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconfig
通过在mkdir /etc/vsftpd/userconfig 创建一个userconfig目录,在目录里面创建不同用户的设置文件,如:
cd /etc/vsftpd/userconfig
touch liyan zhangjie
(a)vi /etc/vsftpd/userconfig/zhangsan --用户zhangsan配置文件
或直接vi zhangsan
local_root=/var/ftp/zhangsan
write_enable=no ---没有写权限
(b) vi /etc/vsftpd/userconfig/lisi --用户lisi配置文件
或直接vi lisi
local_root=/var/ftp/lisi
download_enable=no ---没有下载权限
添加测试文件
重启服务systemctl restart vsftpd
测试
zhangsan没有写权限,有下载权限
lisi没有下载权限,可以写入