通过 PAM 向用户授予功能不适用于 SSH

通过 PAM 向用户授予功能不适用于 SSH

我正在使用 CentOS 8,我想cap_dac_read_search通过 PAM 向用户授予该功能。它似乎可以通过本地登录 和 来工作su,但不能通过ssh.

我遵循了这些步骤,并且只有它们:

  1. 创建了文件/etc/security/capability.conf,并在里面写入:

    cap_dac_read_search user1
    
  2. 编辑/etc/pam.d/sshd

    #%PAM-1.0
    auth       required     pam_cap.so
    auth       substack     password-auth
    auth       include      postlogin
    ...
    
  3. 重新启动 SSH 服务:

    systemctl restart sshd 
    

user1但是,当我使用through登录ssh并使用capsh命令时,我可以看到:

[user1@localhost ~]$ capsh --print
Current: =

/etc/pam.d/login当我用和做类似的事情时/etc/pam.d/su,一切似乎都井然有序。

我确定并检查了sshd配置,并将UsePam其设置为true.

更新:

我在 中收到以下错误audit.log,我认为 SELinux 由于某种原因阻止了我:

type=AVC msg=audit(1621457365.510:253): avc: denied { setcap } for pid=1969 comm="sshd" scontext=system_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=system_u:system_r:sshd_t:s0-s0:c0.c1023 tclas s=process permissive=0 

答案1

[我在这里相对较新,所以没有足够的声誉来添加此评论。所以...]

为了得到答案,我将此处表达的担忧转化为功能要求为了pam_cap.so。这是通过autoauth模块参数在里面libcap-2.51 版本

答案2

sshd需要显式配置它才能使用 PAM

 UsePAM  Enables the Pluggable Authentication Module interface.  If set to
         yes this will enable PAM authentication using
         ChallengeResponseAuthentication and PasswordAuthentication in
         addition to PAM account and session module processing for all
         authentication types.

请注意,这仍然限制身份验证类型;因此,如果您通过 ssh 密钥进行身份验证,则不会为“auth”堆栈调用 PAM。

相关内容