目前正在测试架设的 Linux 虚拟主机。为安全考虑,需要禁止用户使用 telnet 与 ssh 登录,但可以使用 ftp 登录。
之前的思路是:使用 useradd 添加用户,同时指定用户的 shell 为 false 或 nologin。但这样一来 ftp 也无法登录了。后来找到一种解决方法。以vsftpd 为例:
- 修改 /etc/pam.d/vsftpd 的验证模块:123456789# 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 验证。 - 修改 /etc/vsftpd.conf,添加:1check_shell=NO
- 修改 /etc/passwd,指定用户的 shell 为 false 或 nologin:1234# 修改前wp26:x:1002:1002::/home/vhost/wp26:/bin/base# 修改后wp26:x:1002:1002::/home/vhost/wp26:/bin/false # 或者 nologin
当然,也可以让用户登录系统只能够修改密码:1wp26:x:1002:1002::/home/vhost/wp26:/usr/bin/passwd - 重启 vsftpd :1/etc/init.d/vsftpd restart
发表回复