转自: http://www.infoq.com/cn/articles/linux-pam-two
pam_access.so模块主要的功能和作用是根据主机名(包括普通主机名或者FQDN)、IP地址和用户实现全面的访问控制。pam_access.so模块的具体工作行为根据配置文件/etc/security/access.conf来决定。该配置文件的主体包含了三个字段——权限、用户和访问发起方。格式上是一个用“:”隔开的表。
第一个字段:权限(permission),使用“+”表示授予权限,用“-”表示禁止权限。
第二个字段:用户(user),定义了用户、组以及用“@”表示的在不同主机上的同名用户和同一主机上不同名用户。
第三个字段:访问发起方(origins),定义了发起访问的主机名称、域名称、终端名称。
而且该文件提供了很多范例供修改时参考,并且都给出了具体的说明,例如:
#禁止非root用户通过tty1访问相关服务
#-:ALL EXCEPT root:tty1
#禁止除了wheel、shutdown以及sync之外的所有用户访问相关服务
#-:ALL EXCEPT wheel shutdown sync:LOCAL
#禁止wheel用户通过.win.tue.nl之外的其它它终端访问相关服务
#-:wheel:ALL EXCEPT LOCAL .win.tue.nl
# 禁止下面的用户从任何主机登录。其它用户可以从任意地方访问相关服务
#-:wsbscaro wsbsecr wsbspac wsbsym wscosor wstaiwde:ALL
# root用户允许通过cron来使用tty1到tty6终端访问相关服务
#+ : root : cron crond :0 tty1 tty2 tty3 tty4 tty5 tty6
# 用户root允许从下面的地址访问相关服务
#+ : root : 192.168.200.1 192.168.200.4 192.168.200.9
#+ : root : 127.0.0.1
# 用户root可以从192.168.201.网段访问相关服务
#+ : root : 192.168.201.
# 用户root可以从.foo.bar.org中任何主机访问相关服务
#+ : root : .foo.bar.org
# 用户root不允许从任何主机访问相关服务
#- : root : ALL
# 用户@nis_group和foo可以从任何主机访问相关服务
#+ : @nis_group foo : ALL
# 用户john只能从127.0.0.0/24来对本机相关服务进行访问
#+ : john : 127.0.0.0/24
# 用户john可以通过ipv4和ipv6的地址对本机相关服务进行访问
#+ : john : ::ffff:127.0.0.0/127
# 用户john可以通过ipv6的地址访问本机相关服务
#+ : john : 2001:4ca0:0:101::1
# 用户john可以通过ipv6的主机IP地址来访问本机
#+ : john : 2001:4ca0:0:101:0:0:0:1
# 用户john可以通过ipv6的IP地址和掩码来访问相关服务
#+ : john : 2001:4ca0:0:101::/64
# 开放所有用户对本机所有相关服务的访问
#- : ALL : ALL