插入式验证模块(Pluggable Authentication Module,PAM)API 将公开一组功能,应用程序程序员可以使用这些功能来实现与安全性相关的功能,例如用户验证、数据加密、LDAP 等。
PAM 的主要特征表现为通过 /etc/pam.d目录下面的文件中的设置体现的。
系统中可支持的pam模块可以在/lib/security/中找到。
pam_succeed_if可以对用户登陆做一些限制,如果满足pam_succeed_if所定义的条件,那么接受。这个模块没有配置文件。直接修改需要配置的模块就可以。
此模块的使用方式如下:
pam_succeed_if.so [flag...] [condition...]
其中flag可以是debug、use_uid、quiet、quiet_fail、quiet_success。其中quiet表示不记录日志信息,详见man。
condition可以是如下格式
field < number field = string field in item:item user ingroup group
其中field可以是user, uid, gid, shell, home 或者 service,比如:
uid < 500
gid eq 500
user = root
user ingroup admin
下面是一个详细的例子
auth required pam_succeed_if.so uid < 500
## 注: 只能允许uid小于500的用户登陆到系统。
在/etc/pam.d/system-auth和/etc/pam.d/kde文件中添加如上行,然后使用uid大于等于500的work用户登录系统,系统拒绝,root可以登录系统。从日志/var/log/secure中可以看到如下信息:
Jul 6 17:26:18 DC5 kdm: :0[5382]: pam_succeed_if: requirement "uid < 500" not met by user "work"
Jul 6 17:26:32 DC5 kdm: :0[5382]: pam_succeed_if: requirement "uid < 500" was met by user "root"
只在/etc/pam.d/system-auth文件中添加如下行,则只拒绝root用户,ssh登录、本地登录和su都是如此
auth required pam_succeed_if.so user != root
从日志/var/log/secure中可以看到如下信息:
Jul 6 17:59:14 DC5 su: pam_succeed_if: requirement "user != root" not met by user "root"
Jul 6 17:59:35 DC5 sshd[5869]: pam_succeed_if: requirement "user != root" not met by user "root"
Jul 6 18:02:15 DC5 login: pam_succeed_if: requirement "user != root" not met by user "root"
在此可以使用quiet参数,不记录日志到secure之中。具体参数见如下man文档:
阅读(2480) | 评论(0) | 转发(0) |