Linux 名称解析服务与

Linux名称解析服务(nss)与验证机制(pam)

名称解析服务

nsswitch:网络服务转换开关

配置文件/etc/nsswitch.conf,这个配置文件可以为众多的名称解析机制提供名称解析库。

例如:

hostname:file dns

 当解析主机名时有两种手段,先去文件中去找,当找不到了才去dns

root解析到UID必须通过应用程序查找文件找到对于的id号,这些应用程序就是库文件。

现在看看库文件

cd /usr/lib , ubuntu 为 /lib/x86_64-linux-gnu

ls | grep nss可以得到:

Linux名称解析服务(nss)与验证机制(pam)

上面例子中指定为file就可以到libnss_files.so库文件中查找。

 下面看下/etc/nsswitch.conf里面的内容:

文件nsswitch.conf中的每一行配置都指明了如何搜索信息,比如用户的口令。nsswitch.conf每行配置的格式如下:

信息:方法[动作项]。。。。。

例如 hosts:          dns [!UNAVAIL=return] files   信息为hosts  方法为dns 动作项为[!UNAVAIL=return] files是另一个方法。

信息内容可查看man nsswitch.conf

方法有:

files       搜索本地文件,如/etc/passwd和/etc/hosts

nis         搜索NIS数据库,nis还有一个别名,即yp

dns         查询DNS(只查询主机)

compat      passwd、group和shadow文件中的±语法

动作项:

STATUS

 STATUS的取值如下。

l    NOTFOUND——方法已经执行,但是并没有找到待搜索的值。默认的动作是continue。

l    SUCCESS——方法已经执行,并且已经找到待搜索的值,没有返回错误。默认动作是return。

l    UNAVAIL——方法失败,原因是永久不可用。举例来说,所需的文件不可访问或者所需的服务器可能停机。默认的动作是continue。

l    TRYAGAIN——方法失败,原因是临时不可用。举例来说,某个文件被锁定,或者某台服务器超载。默认动作是continue。

action

 action的取值如下:

l    return——返回到调用例程,带有返回值,或者不带返回值。

l    continue——继续执行下一个方法。任何返回值都会被下一个方法找到的值覆盖。

** 认证服务**

认证服务也是由库文件完成,库文件在/lib/security或者/lib64/security下

配置文件在/etc/pam.d下以login举例,可以看到如下内容

Linux名称解析服务(nss)与验证机制(pam)
auth:认证用户所输入的帐号密码是否匹配

account:审核用户帐号是否有效

password:用户修改密码是否被允许,密码是否符合要求。

session:会话定义操作过程相关属性

多行是指每一种认证有多种手段。

/etc/pam.d/service(必须小写)格式

type  control  module-path  module-arguments

type:有auth、account、password、session

control :当某一种类型有多个时,多行之间如何建立关系(require:必须的过,如果没通过则不通过但是还要一定要检查同组其他的,requisite如果不过,后面不需在检查,一定不过,sufficient:如果过了则过来,后面不需要检查,optional:可选,include:权利移交给其它)

module-path:完成功能的模块

几个常用模块

1、pam_unix在password,shadow验证用户时用到,选项nullok(运行为空)shadow(基于shadow格式密码) md5(加密算法)

2、pam_permit:运行访问

3、pam_deny:拒绝访问

4、pam_cracklib.so:检查密码通过字典查看是否容易破解,选项minlen:密码最短长度,difok:密码与此前是否相同,dcredit=N,包含记为数字,ucredit=N,包含几位大写字母 lcredit=N,小写字母 ocredit=N,特殊字符,retry=N,最多尝试多少次

5、pam_shell:用户登录默认shell为/etc/shells,检测合法shell

6、pam_securetty:限定管理员只能特殊设备登陆, 设备在/etc/securetty中写明

7、pam_listfile:到某一文件验证某一服务用户帐号的允许与拒绝item=tty/user/ruser/group/shell/rhost

sense=allow/deny  file=/path/filename onen(出现故障)=[succeed(通过)/fail(不通过)] [apply=[user/@group]][quiet]

8、pam_rootok:只要root用户就可以

9、pam_limits:一次会话里面能够使用系统资源的限定。配置文件在/etc/security/limits.conf或者是/etc/security/limits.d/,普通用户只能软限制,普通用户用命令ulimit来调整 -u用户所能打开最大进程数,-n修改打开最大文件数

10、pam_env在用户登录根据/etc/security/pam_env.conf来为用户设置环境变量。

11、pam_wheel用来设定哪些用户可以su到root,只要wheel中用户才可以

12、pam_succeed_if:检查用户的特性来看用户是否可以登录

13、pam_time:根据用户设定登录系统的时间,配置文件/etc/security/time.conf,格式:服务 终端 用户 时间

module-arguments:模块参数

/etc/pam.d下还有个other文件,定义默认规则(没有对应文件)

实验:

/etc/pam.d/login只对本地管用。

先备份下/etc/pam.d/system-auth-ac文件

在第二行加入

auth        required      pam_listfile.so item=group sense=allow file=/etc/pam_allowgroups

建立文件,并添加内容

vim /etc/pam_allowgroups

Linux名称解析服务(nss)与验证机制(pam)
      groupadd allowgrp

查看hxk这个用户

[root@hxk pam.d]# id hxk

uid=2527(hxk) gid=2527(hxk) 组=2527(hxk)

不在allowgrp这个组里,试着让hxk登录

Linux名称解析服务(nss)与验证机制(pam)
       现在将hxk加入到组中去

usermod -a -G hxk allowgrp

可以登录。

转载于:https://my.oschina.net/innovation/blog/3064083

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值