ftp的用户分为匿名用户,普通用户 和虚拟用户,我们一般是禁止匿名用户登录的,同时又不想让普通用户登录,因为访问ftp需要知道普通用户的名称和密码,这样可以通过用户名和密码直接登录服务器,这样也是不安全的,为此我们创建虚拟用户。该用户只负责ftp访问,无法登录服务器。这样保证了安全性。
虚拟用户访问的7步:
- 添加虚拟用户口令文件
- 生成虚拟用户口令认证文件
- 编辑vsftpd的PAM认证文件
- 建立本地映射用户并设置宿主目录权限
- 修改配置文件
- 重启vsftpf服务,并测试
- 调整虚拟用户权限
下面具体讲解
第一步
vim /etc/vsftpd/vuser.txt
按
按照一行用户名一行密码添加虚拟用户。
第二步:
yum -y install db4-utils 安装口令认证命令
db_load -T -t hash -f vuser.txt vuser.db 把文档转换为认证的数据库,二进制文件
第三步:
vim /etc/pam.d/vsftpd
把第2行至第8行注释掉(注释掉之后本地用户无法登录,因为本地用户登录需要验证该文件的这些行) ,添加第10,11行,注意如果自己的机子是64位的,用lib64,32位用lib
第四步:
虚拟用户登录需要登录的默认目录/home/vftproot
,我们这样创建,并且跟虚拟用户进行关联映射
useradd -d /home/vftproot -s /sbin/nologin vuser
chmod 755 /home/vftproot 改变目录的权限 ,允许上传
第五步:
vim /etc/vsftpd/vsftpf.confg
开启虚拟用户
FTP虚拟用户对于的系统用户
PAM认证文件(默认存在)
第六步:
systemctl restart vsftpd.service
注意关闭防火墙,配置文件加上一句allow_writeable_chroot=YES
(版本问题)
这时登录ftp
本地用户无法登录,虚拟用户可以登录,可以查看,下载,无法上传。
要想上传,必须配权限,打开配置文件,添加下面三行:
,重启登录ftp,这时可以上传
而且上传的目录就行宿主目录下
第七步如何给每个虚拟用户单独配置权限:
首先修改配置文件:
添加一句话:
同时把允许匿名上传的那三句话注释掉
然后在etc/vsftpd/目录下创建一个新的文件夹vuser_dir
进入该文件夹下,想要对哪个用户进行配置,就建立那个用户的文件,没有创建配置文件的用户根据主配置文件vsftpd.conf规定的权限来操作,我实验中对bols用户进行权限配置 ,所以就建立一个bols文件,文件里写上允许上传的三句话:
重启服务,连接,发现cnangls无法上传文件,而bols可以上传文件