6.16. pam_listfile-拒绝或允许基于任意文件的服务
pam_listfile.so
item = [tty | user | rhost | ruser | group | shell] sense = [允许|拒绝] file = * /path/filename
* onerr = [成功|失败] [apply = [* +13+
* | * +14+
*]] [安静]
6.16.1. DESCRIPTION
pam_listfile 是 PAM 模块,它提供了一种基于任意文件拒绝或允许服务的方法。
模块获取指定类型的item
-* user 指定用户名 PAM_USER ; tty 指定发出请求的终端的名称 PAM_TTY ; rhost 指定发出请求的远程主机(如果有)的名称 PAM_RHOST ;和 ruser 指定发出请求的远程用户的名称(如果有) PAM_RUSER -并在file=filename
中查找该项目的实例。 filename
列出的每个项目包含一行。如果找到该项目,则如果返回sense=allow
,则 PAM_SUCCESS ,导致授权请求成功;否则,返回sense=deny
, PAM_AUTH_ERR *,导致授权请求失败。
如果遇到错误(例如,如果filename
不存在,或者遇到了构造错误的参数),那么如果* onerr = succeed ,则返回 PAM_SUCCESS ,否则,如果 onerr = fail ,则 PAM_AUTH_ERR 或 PAM_SERVICE_ERR *(视情况而定)将被返回。
附加参数apply=
可用于将以上内容限制为特定用户(apply=username
)或给定组(apply=@groupname
)的应用。仅当与* tty , rhost 和 shell *项一起使用时,此附加限制才有意义。
除了最后一个之外,还应指定所有参数。不要指望任何默认行为。
此模块不授予任何凭据。
6.16.2. OPTIONS
-
item=[tty|user|rhost|ruser|group|shell]
- 文件中列出的内容,应进行检查。
-
sense=[allow|deny]
- 如果在文件中找到要采取的操作,如果在文件中找不到该项目,则请求相反的操作。
-
file=/path/filename
- 每行包含一项的文件。该文件必须是纯文件,并且不可在世界范围内写入。
-
onerr=[succeed|fail]
- 如果发生一些奇怪的事情,例如无法打开文件,该怎么办。
-
apply=[user|@group]
- 限制适用该限制的用户类别。请注意,对于
item=[user|ruser|group]
,这没有任何意义,但对于item=[tty|rhost|shell]
,则具有含义。
- 限制适用该限制的用户类别。请注意,对于
-
quiet
- 不要将服务拒绝或列表文件丢失视为需要记录的错误。
6.16.3. 提供的模块类型
提供了所有模块类型(auth
,account
,password
和session
)。
6.16.4. 返回值
-
PAM_AUTH_ERR
- Authentication failure.
-
PAM_BUF_ERR
- 内存缓冲区错误。
-
PAM_IGNORE
- 该规则不适用于
apply
选项。
- 该规则不适用于
-
PAM_SERVICE_ERR
- 服务模块中的错误。
-
PAM_SUCCESS
- Success.
6.16.5. EXAMPLES
可以使用/etc/pam.d/ftpd
中的此项来实现经典的“ ftpusers”身份验证:
#
# deny ftp-access to users listed in the /etc/ftpusers file
#
auth required pam_listfile.so \
onerr=succeed item=user sense=deny file=/etc/ftpusers
请注意,(违反直觉)不允许 /etc/ftpusers
文件中列出的用户访问 ftp 服务。
要仅允许某些用户登录,可以使用/etc/pam.d/login
条目,如下所示:
#
# permit login to users listed in /etc/loginusers
#
auth required pam_listfile.so \
onerr=fail item=user sense=allow file=/etc/loginusers
为了使该示例正常工作,应在文件/etc/loginusers
中列出所有被允许使用登录服务的用户。除非您明确尝试锁定 root 用户,否则请确保在执行此操作时,通过在/etc/loginusers
中列出 root 或通过列出能够将* su *锁定为 root 的用户,为 root 登录提供一种方法。帐户。
6.16.6. AUTHOR
pam_listfile 由 Michael K. Johnson<[email protected]>和 Elliot Lee<[email protected]>编写。