답변:
Freenode의 #suse 채널에서 이것에 대해 물었고 Miuku는 Arul과 동일하게 제안했지만 Windows 도메인을 사용하는 경우 loginShell 속성을 설정할 수있는 두 가지를 언급했습니다.
슬프게도, 나는 삼바 도메인에있어서 도움이되지 않았습니다. 그러나 그의 마지막 제안은 완벽했습니다.
getent passwd USERNAME
이것은 / etc / passwd에있는 사용자에 해당하는 유효한 항목을 가지고, 이것을 가져 가서 / etc / passwd에 붙여넣고 사용하려는 쉘의 유효한 경로 끝에 대해 쉘을 갱신합니다. 이렇게하면 모든 사용자에 대해 변경되지 않으며, 변경하기 전에 셸이 구성중인 시스템에 있는지 확인할 수 있습니다.
나는 정확히 같은 문제가 있었다. 내 도메인의 모든 컴퓨터에 zsh가 설치되어 있지 않고 모든 사용자에게 영향을 미치지 않기 때문에 .bashrc를 넣었습니다.
if [ -x /usr/bin/zsh ]; then
echo 'starting zsh'
# export SHELL=/bin/zsh #edit: this is probably not what you want, see the comment.
exec /usr/bin/zsh
fi
이것은 우아하지 않을 수 있지만 적어도 작업이 완료됩니다.
/usr/bin/zsh사용 exec /usr/bin/zsh하는 것이 대신을 사용하는 것이 더 좋지 않습니까? bashzsh
samba 도메인 컨트롤러 구성을 편집 할 수있는 권한이 있으면 smb.conf 에서 셸을 설정할 수있는 다음 속성을 설정할 수 있습니다.
template shell = /bin/zsh
zsh가 설치되지 않은 컴퓨터에 로그인하면 (모든 배포판에 기본적으로 zsh가 설치되어 있지는 않음) 확실하지 않지만 distro 기본 셸을 호출합니다.
단순히 시도하고 싶다면 zsh를 입력하여 이미 알고있는 서브 쉘을 얻으십시오.
zsh설치 한 모든 사용자 특정 사용자로 제한 할 수는 없지만 idmap uid매개 변수를 확인 하면됩니다.
getent passwd `id -un` | sudo tee -a /etc/passwd.. 모든 쉘에서 작동하는지 확실하지 않지만 적어도 bash 및 tcsh는 괜찮습니다.