%EB%A5%BC%20%EB%A7%88%EC%9A%B4%ED%8A%B8%ED%95%98%EB%8A%94%20%EC%A4%91%20%EC%98%A4%EB%A5%98%EA%B0%80%20%EB%B0%9C%EC%83%9D%ED%96%88%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
Samba AD 도메인 컨트롤러에 Ubuntu 21.10 PC가 연결되어 있습니다. 모든 것이 완벽하게 작동합니다. Kerberos가 작동하고(kinit로 티켓을 얻을 수 있음) winbind가 작동하고(사용자 및 그룹에 대한 정보를 얻을 수 있음) 도메인 자격 증명을 사용하여 시스템에 로그인할 수 있습니다.
또한 Kerberos 및 ntlmssp 인증을 사용하여 수동으로 공유를 마운트할 수도 있습니다.
sudo mount -t cifs //server/path /mount/point -o username=USER,domain=DOMAIN,sec=ntlmssp
sudo mount -t cifs //server/path /mount/point -o username=USER,domain=DOMAIN,sec=krb5
username=USER@DOMAIN과 같은 사용자 이름 설정도 작동합니다.
문제는 사용자가 gnome을 통해 로그인할 때 pam_mount를 작동시킬 수 없다는 것입니다!
pam_mount.conf.xml에서 krb5를 이와 같이 사용하십시오.
<volume
fstype="cifs"
server="server"
path="path"
mountpoint="mount/point"
options="sec=krb5"
/>
auth.conf에서 오류가 발생합니다.
(mount.c:72): mount error(126): Required key not available
이와 같이 pam_mount.conf.xml에서 ntlmssp를 사용하면
<volume
fstype="cifs"
server="server"
path="path"
mountpoint="mount/point"
options="sec=ntlmssp"
/>
auth.conf에서 다른 오류가 발생합니다.
(pam_mount.c:173): conv->conv(...): Conversation error
pam_mount에서 디버깅을 활성화한 후 auth.log에서 실행 중인 정확한 마운트 명령도 볼 수 있으며 수동으로 실행할 때 작동하는 위의 명령과 동일합니다.
나는 다음을 시도했습니다 :
- 다양한 조합의 마운트 옵션으로 재생: vers=3.0, _netdev,user,sec
- pam_winbind 구성을 사용하여 Kerberos가 /tmp/krb5cc_%u의 파일에 티켓을 저장하도록 강제했습니다.
- 수많은 포럼을 읽어보세요
어떤 아이디어가 있나요?
답변1
나는 마침내 그것을 알아 냈습니다. 작동 중인 pam_mount 볼륨 구성은 다음과 같습니다.
<volume sgrp="DOMAIN\domain users" fstype="cifs" server="my.server.com" path="path/to/share" mountpoint="/mount/point" options="sec=krb5,cruid=%(USERUID),noexec,rw,nofail" />
중요한 요구 사항은 다음과 같습니다.
- 서버 도메인 이름. Kerberos는 ip에 대한 티켓을 발행할 수 없으므로 도메인 이름을 지정해야 합니다.
- 크루즈=%(USERUID)옵션. Mount는 루트로 실행되며 기본적으로 루트에 속한 티켓 파일을 찾기 때문에 실제 티켓 소유자의 사용자 ID를 설정해야 합니다.
- sgrp="DOMAIN\도메인 사용자"기인하다. pam_mount는 gdm과 같은 시스템 사용자를 포함하여 모든 새로운 인증 세션에서 실행됩니다. 공유 마운트에 실패한 로그인 시도가 있으면 공유를 캐시하고 인증된 사용자에 대해서도 실패하는 것 같습니다. 따라서 공유를 마운트하려는 사용자를 명시적으로 정의해야 합니다. pam_mount에서 사용할 수 있는 다양한 사용자 제어 속성을 사용하여 수행할 수 있습니다.