目前正在测试架设虚拟主机系统,需要使用到FTP登录,因为我的系统是Ubuntu,如果使用useradd添加用户修改用户的shell为false或nologin,这样用户是无法使用telnet和ssh,同样ftp也无法登录了,下面有一种解决方法,可以实现禁止用户telnet与ssh登录,但可以使用ftp登录,以vsftpd为例:
1,修改/etc/pam.d/vsftpd的验证模块
# Standard behaviour for ftpd(8).
auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
# Note: vsftpd handles anonymous logins on its own. Do not enable
# pam_ftp.so.
# Standard blurb.
@include common-account
@include common-session
@include common-auth
#auth required pam_shells.so
注销下auth required pam_sheels.so验证
2,修改/etc/vsftpd.conf文件,添加check_shell=NO至vsftpd文件。
3,修改/etc/passwd用户的shell为false或nologin,重启/etc/init.d/vsftpd即可.
当然,也可以修改/etc/passwd中wp26:x:1002:1002::/home/vhost/wp26:/bin/false的最后/bin/false为/usr/bin/passwd,让用户登录系统只能够修改密码。