Fedora 34를 설치했고 회사 로그인(도메인 사용자)이 있었습니다.
chsh
사용자가 존재하지 않기 때문에 사용자 기본 쉘을 zsh로 변경할 수 없습니다 . ( /etc/passwd
로컬 사용자가 아니기 때문에 존재하지 않습니다 )
/etc/passwd
추가할 사용자 문자열을 가져오려고 했지만 문자열에 기호가 getent passwd $USER
있고 로그인이 중단되기 때문에 작동하지 않습니다 .@
어떤 아이디어가 있나요?
답변1
사용자가 서버에 조인된 Active Directory에 있는 경우 사용자에게 기본 셸을 직접 할당할 수 없습니다. 적절한 명령을 사용하여 서버에서 이를 변경하거나 재정의하려고 시도할 수 있지만 이는 모든 사용자에게 영향을 미칩니다. 통합을 위해 SSSD를 사용하는 경우 Fedora 시스템에서 /etc/sssd/sssd.conf를 편집하고 추가할 수 있습니다.
[domain/YOUR_DOMAIN]
override_shell = /bin/zsh
도메인이 위치한 서버에서 항상 변경하는 것이 좋습니다. 이렇게 하면 앞으로 많은 문제가 해결될 것입니다.
답변2
사용자의 비밀번호를 변경하려면 서버에 지시해야 합니다. 내가 아는 한, LDAP/AD의 경우 chsh
명령은 이 작업을 수행하는 방법을 모르므로 다음을 호출해야 합니다.개별 포장주문하다chsh.ldap
.
이렇게 하면 이 네트워크 계정을 사용하는 모든 시스템의 쉘이 변경됩니다. 즉, zsh가 설치되지 않은(또는 다른 위치에 설치되어 있는) 시스템에 로그인할 수 없다는 의미입니다.
/bin/sh
다른 로그인 셸을 선택하는 또 다른 방법은 실제 로그인 셸(어디에나 존재함)을 유지 하면서 ~/.profile
.
# ~/.profile
…
if [ -x /bin/zsh ]; then
export SHELL=/bin/zsh
exec $SHELL
fi