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. 提供的模块类型

提供了所有模块类型(authaccountpasswordsession)。

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]>编写。