Vsftpd服务的虚拟用户访问及虚拟用户家目录的独立设定
1、虚拟用户访问
只有本地用户可以登陆的话,那其他的访问的用户怎么办,难道都给申请一个本地用户吗,太多了不合适,我们想创建虚拟用户,只是登陆ftp的时候用就行了,本地查不到这个用户。做法如下,首先建立认证文件模板/etc/vsftpd/ftp_auth
,写出虚拟用户的名称和密码,加密认证文件。
然后,在/etc/pam.d/ftp_auth
认证策略文件中写出读取的规则,包括账户,配置一致才能通过原则,谁执行该操作,文件模板在哪里。
最后,去/etc/vsftpd/vsftpd.conf
主配置文件指定认证策略文件为ftp_auth
,开启虚拟用户功能,指定虚拟用户在ftp服务器上的用户身份是ftp。重启服务
测试效果,user1,user2和user3都可以登陆,但是本地用户根本查不到
注意:现在lee和westos用户都无法登陆了,因为我们不读vsftpd那个原来的认证文件了。
2、虚拟用户家目录的独立设定
现在虚拟用户都用同一个家目录,这样显然不合适,所以想独立每个虚拟用户的家目录,首先建立三个家目录,
在主配置文件中添加local_root=/ftphomedir/$USER
,表示不同的用户家目录不同,但是这个$
命令只有shell中识别,所以要加user_sub_token=$USER
,使在vim中识别$USER
。重启服务,就好了,独立虚拟用户的家目录
测试效果如下图,家目录独立了
3、虚拟用户配置独立
如果我们chmod 775 /ftphomedir/user{1..3}/pub
,chgrp ftp /ftphomedir/user{1..3}/pub
把三个子目录的权限的都设定后,三个用户都可以上传文件。
假如只允许user2上传,不允许user1和user3上传,也就是说想独立用户的配置,怎么办呢?
首先mkdir /etc/vsftpd/user_conf
建立用户配置目录,建立配置文件vim /etc/vsftpd/user_conf/user2
(文件名字必须和用户名字一致),内容写anon_upload_enable=YES
即允许user2可以上传文件,其他两个用户不允许上传。
注意要把之前在主配置文件的允许所有匿名用户上传的权限关闭,否则影响实验效果
最后,在主配置文件添加user_config_dir=/etc/vsftpd/user_conf
,重启服务
测试效果,生效了,user2可以上传文件,其他两个用户不允许上传。