chdir() 대신 올바른 홈 디렉토리(AD/realmd/sssd)에 로그인하십시오.

chdir() 대신 올바른 홈 디렉토리(AD/realmd/sssd)에 로그인하십시오.

저는 강제로 여러 Linux 시스템을 하나의 도메인에 가입시켜야 했습니다. 저는 현재 데비안 안정 버전을 사용하고 있으며 제가 작성한 연결 스크립트(위치:https://rbmj.github.io/join.sh참고용). 이 설정에서는 영역과 sssd를 사용하여 모든 연결 마법을 수행하고 pam_mkhomedir을 사용하여 홈 디렉터리를 만듭니다. 기계는 데비안에서 안정적입니다.

getent passwd $USER올바른 uid/gid 및 홈 디렉토리 설정을 그대로 표시합니다 /home/$DOMAIN/$USER.

문제는 로그인할 때 pam_mkhomedir.so가 올바른 위치( )에 /home/$DOMAIN/$USER홈 디렉터리를 생성 하지만 로그인 시도가 chdir()들어가는 경우입니다 /home/$USER.

현재 사용 중인 해결 방법은 /home/$DOMAIN에 심볼릭 링크하는 것입니다 /home.보기 흉한 심볼릭 링크 루프지만 지금은 제대로 작동합니다. 이 사실을 파악하고 나면 시스템 계정이 한두 개뿐이므로 스크립트를 통해 나머지를 이동할 수 있으므로 마이그레이션이 매우 간단할 것입니다.

이것은 최근에 설치된 데비안 안정 머신이기 때문에 표준 로그인 데몬이 systemd-logind 또는 유사한 cruft로 대체되었다고 믿기 때문에 이것이 시스템 문제라고 생각합니다. 로그인이 nsswitch에 표시된 대로 사용자의 올바른 홈 디렉토리로 디렉토리를 변경하려고 시도해야 하기 때문에 이것이 어딘가의 버그라고 생각하지만 전문가는 아닙니다.

답변1

여기서 systemd가 잘못될 가능성은 거의 없습니다. Logind는 홈 디렉터리와 관련된 작업을 수행하지 않습니다(로컬 로그인에 로컬 하드웨어에 대한 액세스 권한을 부여하는 역할을 하지만 원격 로그인에는 부여하지 않으므로 SSH를 통해 로그인하는 사람들은 웹캠을 엿볼 수 없습니다).

대신, 모든 일을 제대로 하고 있지 않을 가능성이 더 높습니다.

스크립트를 실행한 후 PAM 구성 파일의 내용을 표시합니다. 아마도 당신은 요점을 놓치고 있을 것입니다.

nscd캐시 문제가 아닌지 확인하려면 비활성화해 보세요 .

/etc/skel에 대한 하드코딩된 참조가 포함되어 있지 않은지 확인 하세요 /home/$USER.

관련 정보