没有合适的资源?快使用搜索试试~ 我知道了~
TheLinux-PAM系统管理员指南.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 149 浏览量
2022-06-25
10:40:21
上传
评论
收藏 172KB DOC 举报
温馨提示
试读
63页
TheLinux-PAM系统管理员指南.doc
资源推荐
资源详情
资源评论
系统管理员指南
作者
翻译孙国清 !
"#$%&'(()))*((*+这个文档所涉的是系统管理员须知的关于 库
的知识它涉及了设置 的正确语法并讨论维护一个可靠系统的正确的策略
(介绍
下的可插入式认证模组是一套共享函数库允许系统管理员来决
定应用程式如何识别用户
换句话说就是用不着重写和重新编译一个支援 的程式就可以切换它所用的认
证机制你可以整个的升级你的认证系统而不用去管应用程式本身
传统上当一个应用程序有身份识别的需求它就不得不把某一种验证算法写进去例如
就传统的 ,-./ 系统而言核对使用者身份的方法就是要求用户输入正确的密码这密
码除了开头的两个字符作为0 0剩下的是加密过的经由 1!2 3接著用户被验
证这个加密过的密码是否与他在密码档就是* 1*2 文件中他的那笔记录的第
二栏相符在这样的系统里绝大部份权限的授予是基于这种单一的认证机制权限决定
于个人的识别码和不同群组的成员服务和程式是否可用由个人和群组的识别码决
定传统上群组关系经由* 1*2 文件中的记录来赋予
不幸的是随着计算机速度的不断提高再加上满世界的关于网路计算的介绍使得象这
样曾是安全的验证机制变得易受攻击了面对这样的现实新的验证方法正在持续的开
发中
项目的目标是把赋权部分的开发以可靠的合适的鉴定模式从软件中分离出
来。这目标已经通过提供一组库函数实现了,应用程序可以用这些函数来请求验证某
个用户。这个 由特定的系统文件配置* 1*214或者是在* 1*2*里
的一系列配置文件以经由特定的可用的认证模组来鉴定某个用户的请求。 这些个模
组通常位于**5*1 ! 目录并且以可动态加载的目标文件的形式出现参见
23
6文中的说明
在继续阅读之前请记住本文假定提到的文件位于默认的目录。这个默认的目录我们遵
循 #$7#$7+8&见 552!中的约定。如果你正用一个支持 但是却选
择以不同的方式发布这些文件的发布版的 或是其他的 9#: 就是这样
的发布版那你从文章中直接拷贝例子的时候就要注意一下了
举个例子 21 本文假定 可加载目标文件就是 模块位于这个
目录**5*1 !*可是#: 为遵循 文件系统标准
$-"把这些文件放在*5*1 !在使用本文的例子时请小心的做一些转换的
工作。
3概观
$ ,我们开始于考虑一个例子。我们来说说一个应用程序提供一些
服务给用户; 就是这样的程序。 做两件事,它首先确认提出请求的用户
正是他们自己,第二步提供给他们所请求的服务: 就 而言服务即是一个命令行
外壳(1)如 5, 1,; 之类。以这个用户的身份去跑。
传统上,前一个步骤通过 提示用户输入密码然后确认系统是否同意登入;接着
确认(就系统而言)用户确实是提出要求的那人。这类工作就是 的典型应
用。
从应用程序员的角度看(在这个例子里就是写 程序的人), 处理认
证的工作——确认用户的身份。
的弹性在于,你,系统管理员有权来决定实施怎样的验证方案。你有权来
设定你的系统里的任何支持 的应用程序的验证方案。就是说,你可以将验证方案
设计成单纯的信任<=任何人(2>2 )到像偏执狂似的通过视网膜扫描,声音
识别和一个密码!
举例说明你所面对的弹性,考虑以下情形:系统管理员(家中的父母)希望提高他的
使用者(孩子们)的算术能力。她可以设置他们喜欢玩的“ ?2@(游戏,当
然得支持 )通过提问小于 (6 的一对随机数的乘积的办法来进行认证。很明显不
管游戏本身如何,他们会很快学会乘法表。等他们再大些,认证可以升级到包括多位
除法!(译者:我已经准备用这种办法来教我宝贝女儿学加减乘除了。)
处理四种独立的(管理)工作。它们是: 认证管理; 帐号管理; 会话期
间管理;和密码管理。 1 4 24 1
5%4221 %
1A A管理的功能由配置文件中指定的模块 来完成。这文
件的语法在 5 部分讨论。
下面的插图描述了 的整个组织结构。
BBBBBBCC
BBBBBBD221 /D
BBBBBBCCBBBB*BBCCBBBBCEEEEEEEEEEEEEEEEC
BBBBBBD 1 F<=GHBBDID1AAD
BBBBBBDBBBBCBBBBBBFI*HBBBBBBBBDBBBBDEEEEEEEEEEEEEEEED
BBBBBBDF1% HFCBBGBBDBBBBBBDBBBBD/ D
BBBBBBCCBBDBB*BBCCBBBBD/ 5D
BBBBBBDBBBBBBBBBBDBBDBBBB>>DBBDBBBBBBBBDBBBBBBBB>>>>>*
BBBBBBDBB%1BBDBBBBBBDBBBBDBBBBBBBBD>>>>?
BBBBBBDBBBBBBBBBBDBBDBBBBJBBBBBBBBBBBBBBBBBBBB
BBBBBBCCBBCDDCCC
BBBBBBBBBBBBBBBBBBBBBBCCBBDBBBBDBBBBD
BBBBBBBBBBBBBBBBBBBBBBDBB BBDFHF5HF1H
BBBBBBBBBBBBBBBBBBBBBBCC
BBBBBBBBBBBBBBBBBBBBBBDBB11 BBDF5HFH
BBBBBBBBBBBBBBBBBBBBBBCC
BBBBBBBBBBBBBBBBBBBBBBDBB2BBDF5HF1H
BBBBBBBBBBBBBBBBBBBBBBCC
BBBBBBBBBBBBBBBBBBBBBBDBBBBDFHF1H
BBBBBBBBBBBBBBBBBBBBBBCC
K!!42 图的左边表示一个应用程序/这应用程序有和
库的接口并且在认证方面没有什么特别之处函数库 图的中部查
询 配置文件的内容并且装入适用于程序 /的模块这些模块进入四个管理组图
的中下部中的一个并且以它们出现在配置文件中的顺序堆叠起来 这些模组由
呼叫后为应用程序执行不同的认证工作 需要用户提供或提供给用户的文
本信息可以通过使用应用程序提供的 1% 函数来交换
3(
以下段落由 7 供稿
到现在为止我们描述了 如何工作在一个理想世界里
在这儿所有应用程序都被正确编写
然而到此时())+ 年 (& 月这距离现实还太远
因此在你试图把 用于你的系统时还得考虑一些实际因素
L!5 ! 5MBB
如果你运行 作为单用户系统或者在一个所由用户都可信任的环境那么用
就没什么实际优势
N事实上还是有一个好处你可以令认证变哑就象没有任何认证像 L)O
在网络环境里很显然关于用户你必需多想点 1 !
5 1 1 H
如果运行 作为服务器提供一些不同的服务 经由密码控制的 LLL 区域
限制
那 就有一些实际的和有趣的价值尤其是通过使用使用模块能够使
一个程序经过几个不同的密码库来查找哪怕那个程序没有专为那密码库写的代码
下面有一些例子 :24 25
5
BBBB21有一个模块提供 服务BB认证特定的目录权限可以让 来控制,
BBBB这意味着,所有 能调用的模块都可以被 21 使用,包括
#"P,-P-7
BBBB-7 用来经由 -% 的密码库认证
BBBB222有一个 化了的版本来自 #: BB现在有可能用一系列的数据库来
验证
BBBB222 用户作为对基于 的密码库* 1*2* 1*的扩充你可
以
BBBB用 模块来进行基于 -% 密码库或 --密码库的认证
BBBB以上两则例子可以有组合应用想象一下你办公室*部门的用户已经经过用户名*密
码
BBBB认证登入 -% 或 -如果你想要他在 下的应用也用相同的用户名*密码
BBBB为 登入5 服务或者只是普通的 登入你可以通过 进行基于这
些已
BBBB存在的数据库译者注-% 的或者 - 的的用户认证而无须在 和 -
服务器里
BBBB各自维护独立的数据库
我可以让所有需要有用户认证的程序都来用 吗M
有的可以有的不行可以的是那些你能得到源代码并且可以加入适当的 函数的程
序
不行的是那些你无法得到源代码并且可执行程序没有加入 的功能
也就是说如果一个程序打算要用 那么它必须在程序里直接的包含 函数
不这样做就不可能用
我怎么知道程序是否已经含有 的代码了呢M
一个快速的但不总是可靠的方法是执行 I程序<=
如果 52和 52>1不在程序所需的函数库之列那么它将不会用
然而这两个函数库还是可能已经包含进程序了不过问题依然存在因为把
写死在程序不会如你期望的工作所以一个更可靠的方法是做一下的测试
在* 1*2 目录里需要为程序设有一个配置文件具体的文件名是写死在程序里的
通常和程序名一样但却不总是这样为举例说明假设程序名字叫0220配置文件
是* 1*2*22
在* 1*2*22 里写这两行
BBQBB2>2
BBQBB2>
现在试着执行 22配置文件的第一行是说所有用户都被允许第二行会在你的
!文件或者其它你的 ! 会写的文件里写一个
如果这测试是成功的那么你就知道你有一个0懂02 的程序并且你可以开始更有趣
的工作
决定如何在你的* 1*2*22 里堆彻 模块
R 的设定档
给系统管理员提供了相当大的弹性来设定系统里程式的权限赋予由
控制的系统安全的本地配置可以包含在以下两个地方或者是一个单一的系统文件
* 1*214=或者是* 1*2*目录下的文件本章我们来讨论这些文件的语法
和一般的选项
R(设定档的语法
请注意在这些文件里 特有的符号是不区分大小写的而模块的路径是大
小写敏感的因为它标识的是 下的文件的名字而任何模块参数的大小写分别由
各个模块定义
除以下的行之外为系统管理员方便还有两个特殊的字符注解由?S?开头结束于行结
束另外模块的描述行可以以 ?G?脱字符延续到下一行
通常* 1*214 里的每一行有以下格式
%1BB !2BB1 TBB2 BB
接下来我们来解释每个栏位的意思另一种也是常被采用的设置 的方法
是通过* 1*2*里的文件来实现在我们解释完上面的那行之后我们就来讨论这种
方法
%1
BB这笔记录相关的服务名称通常这服务名称是特定应用程序的名字比如U4 2?
U?和 U?这些
BB有一个保留的服务名称它是用来定义默认的认证机制的它就是U9:N#?大小写
无关注意当已经有为指定服务定义了模块那么 U9:N#?记录会被忽略
!2
BB模块的四种目前是类型这四种类型是
BBBBBB. =这种模块类型确定有关用户认证的两方面第一它确认用户就是他们自
己这通过指示应用程序提示用户输入密码或者其它证实身份的方法第二这类模块会
剩余62页未读,继续阅读
资源评论
智慧安全方案
- 粉丝: 3679
- 资源: 59万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功