远程登录时组别与本地组别

Max*_*Max 15 ssh ldap authentication pam group

我们将我们的用户存储在 LDAP 中,以及一些跨不同系统(包括组织角色wheel)有意义的组。也有工作站本地的组,例如audio或video不希望放入 LDAP 的组。现在,如果我在本地登录,我会得到那些本地组,但是如果我通过 SSH 登录到同一台机器,我就缺少它们。如果我su之后直接使用,它们当然会回来。我可能在错误的轨道上,但怀疑 PAM。

相关条目来自 nsswitch.conf

passwd:      compat ldap
shadow:      compat ldap
group:       compat ldap
Run Code Online (Sandbox Code Playgroud)

至于 pam,总是 auth 行,但其他行是相同的

/etc/pam.d/sshd

auth            include         system-remote-login
Run Code Online (Sandbox Code Playgroud)

/etc/pam.d/system-remote-login(与system-local-login我可能添加的相同)

auth            include         system-login
Run Code Online (Sandbox Code Playgroud)

/etc/pam.d/system-login

auth            required        pam_tally2.so onerr=succeed
auth            required        pam_shells.so 
auth            required        pam_nologin.so 
auth            include         system-auth
auth            optional        pam_gnome_keyring.so

account         required        pam_access.so 
account         required        pam_nologin.so 
account         include         system-auth
account         required        pam_tally2.so onerr=succeed 

password        include         system-auth
password        optional        pam_gnome_keyring.so

session         optional        pam_loginuid.so
session         required        pam_env.so 
session         optional        pam_lastlog.so 
session         include         system-auth
session         optional        pam_gnome_keyring.so auto_start
session         optional        pam_motd.so motd=/etc/motd
session         optional        pam_mail.so
Run Code Online (Sandbox Code Playgroud)

/etc/pam.d/su

auth       sufficient   pam_rootok.so
auth       required     pam_wheel.so use_uid
auth       include              system-auth

account    include              system-auth

password   include              system-auth

session    include              system-auth
session    required     pam_env.so
session    optional             pam_xauth.so
Run Code Online (Sandbox Code Playgroud)

/etc/pam.d/common-auth:

auth    required     pam_group.so use_first_pass
Run Code Online (Sandbox Code Playgroud)

可能是什么问题,我将如何解决?我很乐意提供所需的其他信息。

Max*_*Max 3

今天我鼓起勇气,终于解决了。pam链的工作原理是这样的

  • /etc/pam.d/sshd包括:
    • /etc/pam.d/system-remote-login包括了:
      • /etc/pam.d/system-login包括了:
        • /etc/pam.d/system-auth其中有一个可选要求

显然最后一个包含由于某种原因不起作用。到目前为止我如此困惑的原因是我相信这些包含内容会起作用,但事实并非如此。如果有人能解释为什么我会非常感激。我知道这一点是因为如果我添加这一行

auth    optional  pam_group.so
Run Code Online (Sandbox Code Playgroud)

然后/etc/pam.d/system-login它就可以工作了。