chsh를 실행해도 쉘이 변경되지 않습니다


19

쉘을 bash에서 zsh로 변경하고 싶습니다.

사용자 zol로 로그인 한 상태에서 다음을 실행하려고했습니다.

$ chsh -s /bin/zsh
$ sudo chsh -s /bin/zsh zol
$ su -c 'chsh -s /bin/zsh zol'
# The above all results with:
$ password:
$ chsh: Shell not changed.

# zsh exists in /etc/shells.. 
chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/bin/zsh

무엇이 잘못 될 수 있습니까? 어떻게 고칠 수 있습니까?


zol과 같은 인수없이 'chsh'를 실행하려고 했습니까?
George M

ldap / nis 등과 같은 것을 사용하고 있습니까?
Ulrich Dangel

훨씬 더 중요한 : 왜 더 많은 정보를 제공하지 않습니까? 이 메시지는 노련한 sysop에게는 좋을 수 있지만 대부분의 사람들에게는 무례합니다. 나는 5 년 동안 같은 문제에 직면했으며 사람들은 왜 리눅스가 지난 20 년 동안 데스크탑이 아닌지 궁금해합니다.
flurbius

쉘이 즉시 바뀔 것으로 예상 했습니까? 로 로그인 셸 을 변경 chsh하면 다시 로그인해야합니다.
Kusalananda

답변:


17

정보를 변경하려고 할 때 / etc / passwd (vim / etc / passwd)를 열면 사용자 계정 수정 사항이 저장되지 않습니다.

대안 : usermod (zol)를 사용해보십시오.

$ usermod -s /bin/zsh 

또는

$ sudo usermod -s /bin/zsh zol

이것이 작동하지 않으면 /etc/passwd손으로 편집하십시오 .

sudo vipw
# set zol's shell to /bin/zsh
:wq

6
적절한 파일 잠금을 설정하는 vipw대신 사용하십시오 vim.
Ulrich Dangel 2016 년

"/ etc / passwd를 열면 사용자 계정 수정 사항이 저장되지 않습니다"– 왜?
Thanatos

작동하지 않습니다. Linux 가상 머신 (centos7)을 다시 시작해도 괜찮습니다.
WeizhongTu

1

다음과 같은 경우 "chsh -l"을 실행하는시기 :

/usr/bin/zsh
/bin/zsh

그런 다음 사용하십시오.

chsh -s /usr/bin/zsh

경고 : 명령은 Fedora 25에서 실행되었습니다. ubuntun 에서 "-l"옵션이 없습니다.


-l나를 위해 잘못된 옵션입니다. 나는 Ubuntu 16.04에있다
byxor

명령이 작동하는 배포판에 대한 정보를 제공하지 않습니다. 필자의 경우 Fedora 25에서 테스트했습니다. 우분투에서 시도하고 "-l"옵션이 있는지 확인합니다.
lourencoccc

어쨌든 chsh -s완벽하게 작동했습니다. 감사.
byxor

이 옵션은 Manjaro에서 유효하지만 여전히 쉘 변경을 거부합니다.
flurbius

0

이 표시 chsh: Shell not changed.되면 쉘이 이미 변경되었음을 의미 할 수 있습니다.

나열된 쉘을 확인하십시오.

cat /etc/passwd | grep `cd; pwd`

올바른 경우, 로그 아웃했다가 다시 로그인하여 변경 사항을 적용하십시오.


0

이것에 부딪쳤다. 내가 로그인하고 로그 아웃 한 내용에 관계없이 내 쉘은 변경되지 않았지만 / etc / shells 및 / etc / passwd에 나열되었습니다.

드디어 다른 세션에 로그인했을 수 있습니까?

그래서 나는

# who

그리고 실제로 다른 컴퓨터에서 열린 다른 세션이 있는지 확인했습니다.

dom  pts/0        Nov 6 13:53 (10.1.6.121)
dom  pts/1        Nov 5 12:30 (10.1.6.165)
dom  pts/2        Nov 4 12:33 (10.1.6.197)

나는 그랬다.

pkill -KILL -u dom

나는 즉시 로그 아웃했다가 다시 로그인 한 후 : Voila! 쉘이 변경되었습니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.