四、 虚拟用户的个人目录设置
从上面的实验大家可能感觉出来了,无论哪个用户登录FTP后大家都访问同一个地方,即/home/ftpsite目录。这样的结果当然不是我们所想要的。我们想要的是一个用户一个目录,并且有不同的权限控制。解决方法:
1、 修改FTP配置文件/etc/vsftpd/vsftpd.conf,在其中加入一行代码
user_config_dir=/etc/vsftpd/vsftpd_user_conf
2、 生成/etc/vsftpd/vsftpd_user_conf目录,并在该目录下建立与特定虚拟用户同名的文件
mkdir /etc/vsftpd/vsftpd_user_conf
touch lyjjr1
touch lyjjr2
以上的操作为虚拟用户lyjjr1 lyjjr2建立了个人配置文件/etc/vsftpd/vsftpd_user_conf/lyjjr1 和/etc/vsftpd/vsftpd_user_conf/lyjjr2。接下来,在他们的个人配置文件中将lyjjr1的自家目录修改为/home/lyjjr1,在他们的个人配置文件中将lyjjr2的自家目录修改为/home/lyjjr2,配置选项类似为:
local_root=/home/lyjjr1
3、 接下来建/home/lyjjr1 和/home/lyjjr2目录,并设置相应权限
#chown virtual.virtual /home/lyjjr1
#chown virtual.virtual /home/lyjjr2
#chmod 700/home/lyjjr1
#chmod 700 /home/lyjjr2 这里值得大家注意的是,一定要把X的权限给U,否则没有X权限不能打开目录,就无法登录FTP了。
4、 综上所述,建议两个配置文件的内容如下:
/etc/vsftpd/vsfptd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_world_readable_only=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
guest_enable=YES
guest_username=virtual
listen=YES
listen_port=21
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30999
virtual_use_local_privs=NO
pam_service_name=vsftpd
user_config_dir=/etc/vsftpd/vsftpd_user_conf
大家可以看到有四处anon,我们默认先让每个虚拟用户禁止所有这些权限,然后在每个虚拟用户的个人配置文件中设置,这样比较灵活。
virtual_use_local_privs=NO这句是关键。这样设置是虚拟用户与匿名用户相同的权限 ,这样才会使个人用户配置文件中的anon的相关配置生效。
(virtual_use_local_privs参数,
当该参数激活(YES)时,虚拟用户使用与本地用户相同的权限。所有虚拟用户的权限使用local参数。
当此参数关闭(NO)时,虚拟用户使用与匿名用户相同的权限,所有虚拟用户的权限使用anon参数。
这两者种做法相比,后者更加严格一些,特别是在有写访问的情形下。默认情况下此参数是关闭的(NO)。)
/etc/vsftpd/vsftpd_user_conf/lyjjr1
anon_world_readable_only=NO YES时不能显示FTP空间的内容
write_enable=YES 控制是否可写
anon_upload_enable=YES 控制是否可以上传
anon_mkdir_write_enable=YES 控制是否可以建目录
anon_other_write_enable=YES 控制是否可以删除文件及目录
local_root=/home/lyjjr1 lyjjr1这个虚拟用户的主目录
以后凡要增加用户,只要在vsftpd数据库的users表中加用户,然后配置用户个人的配置文件及目录就可以了。添加用户无需重启FTP,只有当修改了/etc/vsftpd/vsftpd.conf文件才要求重启FTP服务。