도메인 계정에서 기본 셸을 변경하는 방법


13

samba4 도메인 계정을 사용하여 랩톱에 로그인합니다. 내가 원했고 zsh알아,하지만 내 사용자에 상주하지 않기 때문에 /etc/passwd그 발견 chsh내 사용자를 찾을 수 없습니다. 누구든지 내가 어떻게 바꿀 수 있는지 조언 할 수 있습니까 login_shell?

나는 아무것도 볼 수없는 ldap.conf, nssswitch.conf또는 아무것도 /etc/pam.d도왔을 ...

도메인 컨트롤러를 살펴보면 아마도 samba-tool을 사용할 수 있다고 생각했지만 올바른 방향을 알려주는 도움은 없었습니다 ...

답변:


24

Freenode의 #suse 채널에서 이것에 대해 물었고 Miuku는 Arul과 동일하게 제안했지만 Windows 도메인을 사용하는 경우 loginShell 속성을 설정할 수있는 두 가지를 언급했습니다.

슬프게도, 나는 삼바 도메인에있어서 도움이되지 않았습니다. 그러나 그의 마지막 제안은 완벽했습니다.

getent passwd USERNAME

이것은 / etc / passwd에있는 사용자에 해당하는 유효한 항목을 가지고, 이것을 가져 가서 / etc / passwd에 붙여넣고 사용하려는 쉘의 유효한 경로 끝에 대해 ​​쉘을 갱신합니다. 이렇게하면 모든 사용자에 대해 변경되지 않으며, 변경하기 전에 셸이 구성중인 시스템에 있는지 확인할 수 있습니다.


복사하여 붙여 넣지 않으려면 다음을 사용할 수 있습니다 getent passwd `id -un` | sudo tee -a /etc/passwd.. 모든 쉘에서 작동하는지 확실하지 않지만 적어도 bash 및 tcsh는 괜찮습니다.
Tom Saleeba

Windows AD 도메인에 연결된 RHEL 7 상자에서이 작업을 수행하면 / etc / passwd 파일에서 줄이 제거 될 때까지 서버에서 잠기 게되었습니다 ...
Taegost

정보 @Taegost에 감사드립니다, 나는 RHEL을 시도하지 않았습니다
Rumbles

5

나는 정확히 같은 문제가 있었다. 내 도메인의 모든 컴퓨터에 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

이것은 우아하지 않을 수 있지만 적어도 작업이 완료됩니다.


내 직장에서 누군가 최근에 비슷한 일을하고 있었으며 .zshrc 파일을로드하지 않는 방법에 문제가있었습니다. 귀하의 방법이 그 점에서 효과가 있는지 모르겠습니다. 시도해 보셨습니까? 또한 SHELL 변수가 zsh bin의 경로와 같지 않습니다. 맞습니까? passwd 파일에서 설정하는 방법으로 설정을 변경했습니다
Rumbles

흥미 롭습니다. 내 .zshrc를 올바르게 읽습니다. 당신의 두 번째 요점에 대해, 그것을 깨워 주셔서 감사합니다, 그것은 내 곁의 실수였습니다. 답변 여기를 참조하십시오 : unix.stackexchange.com/questions/330233/...을
마테오 GIANI에게

글쎄, 그것은 그것을하는 한 가지 방법이지만, 여전히 bash를 호출하지 않고 zsh를 bash와 함께로드 할 때 허용되는 대답과 같이 / etc / passwd 파일에 설정하는 것을 선호합니다 (그리고 ctrl-D를 누르면 그것은 당신이 설치 zsh을 보장하기 위하여 사용자가 필요 않으며, 관리자에 대한 변경하게 - 당신의 설정 당신은) bash 쉘에 삭제됩니다
대두

쉘 프로세스를 쉘 프로세스 로 대체하는 데 /usr/bin/zsh사용 exec /usr/bin/zsh하는 것이 대신을 사용하는 것이 더 좋지 않습니까? bashzsh
Tripp Kinetics

@TrippKinetics가 옳을 것 같습니다.
Matteo Giani

2

samba 도메인 컨트롤러 구성을 편집 할 수있는 권한이 있으면 smb.conf 에서 셸을 설정할 수있는 다음 속성을 설정할 수 있습니다.

template shell    = /bin/zsh

zsh가 설치되지 않은 컴퓨터에 로그인하면 (모든 배포판에 기본적으로 zsh가 설치되어 있지는 않음) 확실하지 않지만 distro 기본 셸을 호출합니다.

단순히 시도하고 싶다면 zsh를 입력하여 이미 알고있는 서브 쉘을 얻으십시오.


고마워,하지만 내 사용자뿐만 아니라 모든 사용자에게 영향을 미치지 않습니까?
럼블

예, 모든 사용자에게 영향을 미치는 전역 매개 변수입니다. 이 경우 zsh설치 한 모든 사용자 특정 사용자로 제한 할 수는 없지만 idmap uid매개 변수를 확인 하면됩니다.
Arul Selvan

고마워,하지만 난 그게 아니야 나는 모든 사람의 껍질을 바꾸고 싶지 않다. 나는 단지 나의 껍질을 바꾸고 싶다. 나는 내 로컬 smb.conf의이 설정을 변경 시도하고 재부팅 후에는 아무런 영향이 없었다
대두
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.