web-dev-qa-db-ja.com

リモートでログインする場合、グループはローカルグループとは異なります

ユーザーは、さまざまなシステム間で意味を持ついくつかのグループ(wheelを含む組織の役割)とともにLDAPに保存されます。ワークステーションにローカルなグループもあります。 LDAPに入れるのが望ましくないaudioまたはvideo。ローカルにログインすると、それらのローカルグループが取得されますが、SSH経由で同じマシンにログインすると、それらが不足します。もちろん、すぐにsuを使用すると、戻ってきます。私は間違った方向に進んでいるかもしれませんが、PAMを疑っています。

nsswitch.confからの関連エントリ

passwd:      compat ldap
shadow:      compat ldap
group:       compat ldap

Pamに関しては、常にauth行ですが、他の行は同じです

/etc/pam.d/sshd

auth            include         system-remote-login

/etc/pam.d/system-remote-loginsystem-local-loginと同じです)

auth            include         system-login

/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

/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

/etc/pam.d/common-auth:

auth    required     pam_group.so use_first_pass

何が問題で、どうすれば解決できますか?必要なその他の情報を提供させていただきます。

14
Max

今日は心を込めて解決しました。 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

/etc/pam.d/system-loginに挿入すると機能します。

3
Max

ログインプログラム(UID、GID、および補足グループを含む環境をセットアップする)は、ある種のデータベースから、ユーザー名<-> UID、GID、およびユーザー名が属する補足グループに関するデータを取得します。従来は/ etc/passwdファイルと/ etc/groupsファイルから、今日もLDAPから。データソースに応じて、割り当てられるグループは異なります。

異なるソースが混在している場合、同じ名前で異なるUID(システムは実際には内部でUIDを使用します)または異なるグループのセットを持つアカウントになってしまう可能性があることに注意してください。結果は通常非常にカジュアルな見物人にとっては面白いものですが、担当者の広範囲にわたる髪の毛の引っ張りによる時期尚早の禿げにつながります。 (行ったことがある。)

1
vonbrand

nsswitch.confに:

グループ:compat ldap 

afaikこれはgetgrentを呼び出し、グループ(グループエントリ)を取得します

編集:別のことは、/etc/pam.d/common-authに以下を追加することです:

auth required pam_group.so use_first_pass

詳細については、こちらをご覧ください: ローカルグループをユーザーに割り当てる そして多分これ newgrp-and-groups-assigned-via-pam-group-so

0
xx4h

ほぼ同様の問題がありました。sshを使用してログインすると、一部のグループが欠落していました。 /etc/nsswitch.confを変更することで解決されました:

group:      compat  -> group:      files nis