vsftpd中的userlist_enable和chroot_list_enable配置
一、需求
1.只想让指定的账户能登陆ftp,其它本地账户不允许登陆ftp。
2.只想让指定的账户不限制在其主目录,其它账户都限制在其主目录。
二、让指定的账户能登陆ftp,其它本地账户不允许登陆ftp。
为验证效果我们建两个用户TOM和JIM,并且只把TOM添加到user_list列表里面,并且设置anonymous_enable=NO 拒绝匿名登录。配合使用userlist_enable 和userlist_deny ,每次更改完配置文件后都要重启服务 /etc/init.d/vsftpd restart。现在我们来进行访问测试。
1.userlist_enable=YES,userlist_deny=YES
1
2
|
窗口(有登录框,TOM不允许登录,JIM允许登录)
命令(tom输入用户名后被拒绝,jim允许登录)
|
2.userlist_enable=NO,userlist_deny=NO
1
2
|
窗口(TOM和JIM都允许登录)
命令(TOM和JIM都允许登录)
|
3.userlist_enable=YES, userlist_deny=NO
1
2
|
窗口(无登录框,直接拒绝)
命令(tom允许登录,jim不允许登录)
|
4.userlist_enable=NO,userlist_deny=YES
1
2
|
窗口(TOM和JIM都允许登录)
命令(TOM和JIM都允许登录)
|
根据以上测试,发现测试3符合我的要求。下面给出我的vsftpd的配置:
1
2
3
|
userlist_enable=YES userlist_deny=No userlist_file= /etc/vsftpd/user_list_only
|
user_list_only的文件内容如下:
1
2
3
|
# cat user_list_only hunk hunkzhu |
经测试,只有hunk和hunkzhu可以登录ftp,其它本地账户均拒绝(输入账户名直接拒绝)。以后新增ftp账户只需将该账户加入到/etc/vsftpd/user_list_only中,确保安全,满足个人需求。
三、只想让指定的账户不限制在其主目录,其它账户都限制在其主目录。
对于chroot_local_user与chroot_list_enable的组合效果,可以参考下表:
chroot_local_user=YES |
chroot_local_user=NO | |
chroot_list_enable=YES | 1.所有用户都被限制在其主目录下 2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,不受限制 |
1.所有用户都不被限制其主目录下 2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,受到限制 |
chroot_list_enable=NO |
1.所有用户都被限制在其主目录下 2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户 |
1.所有用户都不被限制其主目录下 2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户 |
根据以上测试,发现chroot_local_user=YES,chroot_list_enable=YES符合我的要求,下面给出我的vsftpd得配置:
1
2
3
|
chroot_list_enable=YES chroot_list_file= /etc/vsftpd/nochroot_list
chroot_local_user=YES |
nochroot_list的文件内容如下:
1
2
|
# cat nochroot_list hunk |
经测试,只有hunk在登陆后,不被限制在其主目录下。
四、总结
同时配置以上两种之后,该ftp服务器只有hunk和hunkzhu能登陆,而且hunkzhu被限制在其主目录下,hunk不被限制在其主目录下。
本文转自独弹古调 51CTO博客,原文链接:http://blog.51cto.com/hunkz/1759184,如需转载请自行联系原作者