1. 特殊的/sbin/nologin
假如我们在创建用户的时候给用户分配了 /sbin/nologin shell, 那么这个用户就无法通过shell命令登录系统.
可以通过编辑/etc/nologin.txt 来显示无法登陆系统后的提示信息.
2. PAM模块
PAM是插入式验证模块,主要用于统一验证方式,可以提供给不同程序相同的验证,也可以根据需求加载不同的验证模块.
3. 示例
执行 cat /etc/pam.d/login 后 我们可以看到linux登录的PAM的设置
三列分别代表 验证类别,控制标准,PAM模块与参数.
验证类别主要有:
auth 检验用户身份
account 大部分用于授权,检验用户是否具有正确的权限
session 管理用户本次登录期间,PAM所给予的环境设置.
password 修改密码
控制标准主要有:
required 成功返回success,失败 failure,不终止流程.
requisite 成功返回success,并继续后续的验证流程.
sufficient 成功返回success给原程序,并终止后续验证流程.
optional 用于显示信息,不用于验证.
继续看上面login的PAM配置,有个 pam_nologin.so,如果 /sbin/nologin存在,则不允许登录,所以/sbin/nologin;
常用模块可以百度,有点多,就不总结了.
登录还有个pam_securetty.so模块,主要显示root从安全的终端登录,安全的终端名称可以在/etc/securetty中修改.
telnet远程连接属于pts/n的终端接口设备名称,没有记录在/etc/securetty中,所以无法登陆,但是ssh没有/etc/pam.d/sshd模块,所以可以登录.