답변:
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
하는 것이 대신을 사용하는 것이 더 좋지 않습니까? bash
zsh
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는 괜찮습니다.