네트워크에서 멀리 떨어져있을 때 LDAP 사용자 인증 및 NFS 홈 디렉토리 공유는 어떻게됩니까?


9

현재 홈 네트워크에는 정적 데스크톱과 랩톱이 혼합 된 여러 대의 컴퓨터가 있습니다. 나에게는 관리가 불가능하고 모든 사람들이 로컬 홈 디렉토리, 설정 및 보안을 갖는 것은 실용적이지 않으므로 일반적인 사용자 관리를 위해 LDAP을 사용하고 공유 홈 디렉토리를 위해 NFS를 사용하는 것을 고려하고 있습니다.

랩탑 중 하나가 도로에있을 때 어떻게됩니까? 홈 네트워크에 연결할 수 없으므로 인증이 실패하고 로컬 스토리지로 대체됩니까? 또한 랩톱이 돌아올 때 홈 스토리지를 NFS 서버와 재 동기화하는 방법이 있습니까?

답변:


6

NFS 또는 LDAP는 연결이 끊긴 작업을 지원하지 않습니다. 즉, 랩톱이 서버에 도달 할 수 없으면 NFS 마운트 디렉토리에 액세스 할 수 없으며 사용자 조회를 수행 할 수 없습니다. 기본적으로 멈출 것입니다.

몇 가지 해결 방법은 다음과 같습니다.

대신 NFS를 통해 홈 디렉토리를 mouting, 당신은 로컬 디렉토리에게 사용 유지할 수 조화를 중앙 서버에 하나와 동기화 할 수 있습니다. 서버에 도달 할 수없는 경우 작업을 중단시키는 테스트로 보호되는 cron에서 한 번에 실행할 수 있습니다. AskUbuntu에이 게시물이이 다른 하나는 동기화의 주제와 몇 가지 유용한 제안에 대한 토론을 제공합니다.

사용자 인증 / 권한 문제와 관련하여 솔루션은 다음 libnss-db과 같이 사용자 정보의 소스로 사용됩니다.

  • 다음을 설치 libnss-db한 다음 정기적으로 소스 /etc/nsswitch.conf를 찾도록 구성하십시오 .dbfiles

    passwd : 파일 db 그룹 : 파일 db shadow : 파일 db

    db소스 파일의 위치는 /var/lib/misc ( /var/lib/misc/passwd.db등). 그런 다음이 파일의 마스터 사본을 중앙 서버에 보관하고 클라이언트를 rsync+ 와 동기화 할 수 있습니다 cron. 단점 : 서버에서 DB 파일 (내가 아는 것)을 관리 할 수있는 기성 관리 스크립트가 없으며 동기화 지연이 발생 rsync하여 마스터 서버에 연결 하는 방법을 설정해야 합니다.

  • nss-updatedblibpam-ccreds함께 : 패키지가 최대를 설정하는 청소기 방법을 제공 nss-updatedb로컬로를 다시 만들 수 있습니다 passwd.dbgroup.db반면, shadow정보에 의해 관리됩니다 libpam-ccreds. 이를 설정하는 방법 README은 패키지와 함께 제공되는 파일 에서 찾을 수 있습니다 .


@ 조지 :이 제안에 대해 많은 감사합니다! 답변 텍스트를 업데이트했습니다.
Riccardo Murri

2

파일

파일의 경우 공통 파일 (예 : Ubuntu One 또는 Dropbox ) 에 대한 순 기반 동기화를 수행 한 다음 더 큰 파일 (음악, 사진, 비디오 및 Ubuntu ISO)에 대한 공유 폴더를 갖습니다. 이것은 NFS 마운트 일 수 있으며, 실패 할 때 그다지 중요하지 않거나 Samba 공유 또는 다른 여러 기술 중 하나 일 수 있습니다.

LDAP

LDAP가 실패하면 확실히 문제가 발생합니다. 일반적으로 알지 못하는 모든 종류의 시스템 계정은 변환 할 수 없으며 (이름 <-> id 번호), LDAP 서버의 응답을 기다리는 동안 시스템은 한 번에 1 분 동안 반복적으로 정지됩니다. 다시 로컬 시스템으로 넘어갑니다. 또는 시스템이 잠기고 완전히 실패 할 수 있습니다.

이것 주위몇 가지 방법이 있습니다. 로컬 사본을 설정하고 다양한 방법으로 동기화 할 수 있습니다.이 질문과 링크 된 질문에 대한 다른 답변을 참조하십시오. LDAP 디렉토리에서 시스템 파일을 가져 오지 말고 로컬 파일에서 시스템 사용자를 가져 오도록 LDAP에 지시 할 수도 있습니다. 우리 서버의 끝에 우리는 다음을 넣었습니다.ldap.conf

# We need to ensure that various things can work without LDAP being available
# for example: booting, ssh in as root, apache ...
nss_initgroups_ignoreusers avahi,avahi-autoipd,backup,bin,daemon,dhcp,dhcpd,games,gdm,gnats,haldaemon,hplip,irc,klog,libuuid,list,lp,mail,man,messagebus,munin,mysql,nbd,news,ntp,nut,polkituser,proxy,pulse,root,sshd,statd,sync,sys,syslog,uucp,www-data

모든 시스템 사용자가 해당 목록에 있는지 확인하려고합니다. 그럼에도 불구하고 랩톱 사용에는 충분하지 않을 수 있습니다.

로부터 위해서는 nss_ldap 사람 페이지

nss_initgroups_ignoreusers <user1,user2,...,userN>
          This option directs the nss_ldap implementation of initgroups(3)
          to return NSS_STATUS_NOTFOUND if called with a listed  users  as
          its argument.

따라서 기본적으로 LDAP는 마스터 서버에 접속하지 않고도 해당 사용자를 알지 못하는 것처럼 보이므로 NSS는 로컬 사용자에게로 넘어 가고 시스템은 제대로 작동합니다.

마지막 아이디어는 LDAP를 배우는 데 시간을 할애한다면 기본 퍼펫을 배우고 모든 사용자에서 모든 사용자를 동일하게 유지하는 데 사용할 수 있다는 것 입니다. 예를 들어이 퍼펫 레시피 를 참조하십시오 . 꼭두각시를 사용하면 일반적인 패키지 설치, 다양한 측면의 공통 설정 ...

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