원격으로 로그인 할 때 그룹이 로컬 그룹과 다릅니다


14

우리는 서로 다른 시스템 (을 포함한 조직 역할 wheel)에서 의미가있는 일부 그룹과 함께 사용자를 LDAP에 저장합니다 . 이 예를 들어 워크 스테이션에 로컬 그룹은 또한 audio또는 videoLDAP에 넣어하는 것이 바람직되지 않습니다. 이제 로컬로 로그인하면 해당 로컬 그룹을 얻지 만 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-login( system-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

무엇이 문제이고 어떻게 해결할 수 있습니까? 필요한 다른 정보를 제공해 드리겠습니다.


당신은 무엇을 /etc/nsswitch.conf좋아 group합니까? 출력은 getent YOURUSERNAME무엇입니까? 않습니다 /etc/pam.d/sshd@include 커먼 {세션, 인증, 비밀번호, 계정}?
eppesuig 2016 년

클라이언트 쪽에서 어떤 프로세스 / 단계를 설정합니까?
Rahul Patil

1
@Aurelien, "shadow ldap"이 있으면 pam_unix는 nss에서 비밀번호 정보를 검색하는 인증을 수행합니다.
Stéphane Chazelas

1
나는 당신이 PAM을 의심하고 있다고 생각합니다. NIS 문제 일 가능성이 큽니다. PAM은 그룹에 대해 전혀 모릅니다. sshd가 initgroup을 호출하면 libc를 통해 수행됩니다.
니콜라스 윌슨

1
실제로, 나는 약간 수정합니다 : 분명히 일부 모듈은 사용자 그룹을 설정하기 위해 pam_setcred 호출을 후크하여 sshd가 pam_setcred 이전에 initgroups 호출하는 이유 입니다. 흠.
Nicholas Wilson

답변:


3

나는 오늘 마음을 잡고 마침내 해결했습니다. pam chain은 다음과 같이 작동합니다

  • /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다음이 작동합니다.


1

로그인 프로그램 (UID, GID 및 보조 그룹을 포함하여 환경을 설정)은 일종의 데이터베이스에서 사용자 이름 <-> UID, GID 및 사용자 이름이 속한 보조 그룹에 대한 데이터를 가져옵니다. 일반적으로 / etc / passwd 및 / etc / groups 파일에서 오늘날 LDAP에서도 사용됩니다. 데이터 소스에 따라 할당 된 그룹이 다를 수 있습니다.

다른 소스가 혼합되어 있으면 이름은 같지만 다른 UID (시스템은 실제로 내부적으로 UID를 사용함) 또는 다른 그룹 세트를 가진 계정으로 끝날 수 있습니다. 결과는 일반적으로 캐주얼 구경꾼에게 매우 재미있는 반면, 담당자의 광범위한 머리 풀림으로 인해 조기 대머리로 이어집니다. (거기에 갔다)


0

nsswitch.conf:

    그룹 : compat ldap

afaik 이것은 getgrent를 호출하여 그룹 (그룹 항목)을 가져옵니다.

편집 : 또 다른 것은 다음을 추가하는 것입니다 /etc/pam.d/common-auth .

인증 필수 pam_group.so use_first_pass

자세한 내용은 여기를 참조하십시오 : 로컬 그룹을 사용자에게 할당 하고 어쩌면이 새로운 grp 및 그룹 할당-pam-group-so


그 라인은 이미 그런 식으로 존재합니다.
Max

귀하의 질문에 "nsswitch.conf의 관련 항목"에 추가하십시오.
xx4h

편집이 불행히도 도움이되지 않았습니다.
최대

당신은 pam-auth-update하고 nscd를 다시 시작 했습니까?
xx4h

0

ssh를 사용하여 로그인하면 일부 그룹이 누락되었습니다. /etc/nsswitch.conf를 변경하여 해결되었습니다.

group:      compat  -> group:      files nis
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.