LDAP 및 NFS를 사용하여 중앙 집중식 홈 디렉토리 및 사용자 인증을 설정하는 방법은 무엇입니까?

LDAP 및 NFS를 사용하여 중앙 집중식 홈 디렉토리 및 사용자 인증을 설정하는 방법은 무엇입니까?

LDAP를 사용하여 사용자를 인증하고 해당 홈 디렉터리를 서버의 NFS 디렉터리에 유지하도록 서버를 구성하려고 합니다.

예: 내 서버의 디렉토리를 공유합니다.

/nfsexport      10.0.2.0/24(rw,async,no_subtree_check,fsid=0,crossmnt)\
            *.em(rw,async,no_subtree_check,fsid=0,crossmnt)
/nfsexport/homes    10.0.2.0/24(rw,async,no_subtree_check)\
            *.em(rw,async,no_subtree_check)

다음을 편집하여 클라이언트에 설치했습니다 /etc/fstab.

server1:/homes      /home/users nfs4    bg  0   0

파일 끝에 다음 줄을 추가 /etc/pam.d/login합니다 /etc/pam.d/lightdm.

session required pam_mkhomedir.so skel=/etc/skel umask=0022

이제 로그인 시 홈 디렉토리가 생성되어야 합니다 /home/users/ldapuser. 그런데 로그인이 안되고, 서버에 홈디렉토리가 생성되지 않네요. 나는 다음을 시도했다:

  1. NFS가 아닌 로컬로 홈 디렉터리를 만듭니다. 작동하며 소유자와 그룹이 정확합니다. 하지만 중앙 집중화되어 있지는 않습니다.
  2. /home/users서버의 권한을 777로 변경합니다. NFS에서도 작동하지만 최선의 해결책은 아닙니다... 이후에 권한을 755로 변경하려고 시도했지만 소유자와 그룹이 "nobody" 및 "nogroup"으로 설정되어 있기 때문에 사용자가 자신의 홈 디렉터리에 쓸 수 없습니다.

/home/users그렇다면 첫 번째 로그인 시 사용자 및 그룹 소유권을 기반으로 openLDAP가 자동으로 홈 디렉토리를 생성하도록 하려면 어떻게 해야 할까요 ? 아니면 적어도 권한이 777로 변경된 첫 번째 로그인 후에 변경하시겠습니까?

아니면: 중앙 집중식 홈 디렉토리와 사용자 인증을 달성할 수 있는 다른 방법이 있습니까?

답변1

이는 NFS 프로토콜의 사용자 식별 문제입니다. 작동 방식은 사용 중인 NFS 버전에 따라 다릅니다.

NFSv3에서는 사용자 이름과 비밀번호가 프로토콜의 일부가 아니며 대신 UID 및 GID 번호가 포함됩니다. UID=1000인 사용자가 시스템 A에서 호출되고 bart동일한 uid를 가진 사용자가 시스템 B에서 호출 homer되면 bart시스템 B에서 사용자가 만든 파일을 읽을 수 있습니다 homer. 이것이 NFS를 사용할 때 일반적으로 UID 동기화가 좋은 이유 중 하나입니다.

그러나 NFSv4는 이 모든 것을 변화시킵니다. NFSv4에서 사용자와 그룹은 단순한 UID 번호 그 이상입니다.이름유선으로 전송되었습니다. NFSv4 프로토콜은 제대로 작동하도록 하기 위해 몇 가지 사항을 크게 변경했습니다.

  • 프로토콜을 사용하려면 모든 사용자 이름이 모든 컴퓨터에 있어야 합니다. 즉, 클라이언트에 사용자가 있는 경우 bart서버는~ 해야 하다사용자도 있습니다 bart(UID는 다를 수 있음). 이들 중 해당 사용자가 누락된 경우 해당 nobody사용자 nogroup및 그룹으로 돌아가게 됩니다.
  • 이 프로토콜에는 "도메인"이라는 개념이 있습니다. 기본적으로 도메인 이름(즉, 실행 중인 컴퓨터의 FQDN에서 호스트 이름을 뺀 값)을 기반으로 하지만 임의의 문자열일 수 있습니다. 도메인은 서로 다른 사용자 그룹으로 컴퓨터를 구분하는 데 사용됩니다. 클라이언트의 도메인이 서버의 도메인과 일치하지 않으면 시스템은 bart시스템 a의 사용자가 정확히 동일하다고 가정합니다.다른 bartb 기계에서.

자세한 내용은 rpc.idmapd(8)ID 매핑 프로토콜의 Linux 구현을 설명하는 매뉴얼 페이지를 읽어보세요.

최근까지 대부분의 Linux 배포판은 명시적으로 요청하지 않는 한 NFSv3으로 기본 설정되었습니다. 그러나 수년에 걸쳐 기본값은 NFSv4로 변경되었습니다.

작업을 원활하게 진행하려면 다음 두 가지 옵션이 있습니다.

  1. NFSv3으로 되돌립니다. nfsvers=3설치 옵션을 통해 이 작업을 수행 할 수 있습니다 .
  2. rpc.idmapd예상한 효과가 나타나지 않는 이유를 알아낸 다음 효과가 나타날 때까지 변경하세요.

당연히 저항이 가장 적은 경로는 1입니다. 그러나 NFSv3의 기능 세트와 비교할 때 NFSv4에는 포기하면 잃게 될 유용한 기능이 많이 있습니다.

답변2

LDAP 사용자로 로그인할 수 있습니까? #ldapsearch -x 및 #ldapsearch -d1을 사용하여 확인할 수 있습니다. "d"는 디버그를 의미하고 "1"은 레벨을 의미합니다.

응답을 받지 못하면 /etc/hosts 파일에 IP와 이름을 추가해야 할 수도 있습니다. 또한 /etc/openldap/ldap.conf 파일이 정확하고 올바른 인증서 디렉토리를 가리키는지 확인할 수 있습니다.

LDAP에 연결한 후 autofs 유틸리티를 사용하여 사용자의 홈 디렉토리를 자동으로 마운트할 수 있습니다.

/etc/auto.master 파일을 수정하고 /etc/auto.users를 생성해야 합니다.

여기서는 한 번에 한 단계씩 LDAP를 연결하고 인증한 다음 후속 단계를 수행하는 것이라고 생각합니다.

관련 정보