내 쉘이 zsh에서 bash로 변경되었음을 나머지 시스템에 어떻게 알릴 수 있나요?

내 쉘이 zsh에서 bash로 변경되었음을 나머지 시스템에 어떻게 알릴 수 있나요?

zsh더 좋을 것 같아서 설치했어요 bash. 복원하지 않았으며 chsh -s /bin/bash직접 제공한 대로 사용했습니다.You may not change the shell for 'cat'.

나는 또한 내 줄을 변경했습니다 /etc/passwd.

cat:x:1000:1000:cat,,,:/home/cat:/bin/zsh

도착하다

cat:x:1000:1000:cat,,,:/home/cat:/usr/bin/bash

( which bash주었기 때문에 /usr/bin/bash).

GNOME 터미널, xterm용어 등은 이제 내 쉘이 bash.

그러나 Enter 키를 누르면 가상 터미널에 Ctrl Alt N숫자 n키가 어디에 있는지 확인하고 나 자신으로 로그인을 시도합니다.

Ubuntu 15.10 mint-kitty ttyN

mint-kitty login: cat
Password:


/bin/zsh: no such file or directory 
exit

나타났다가 로그아웃됐어요.

그래픽 세션에 정상적으로 로그인할 수 있습니다. (MDM + 계피.)

내가 아는 한, 사용자의 로그인 쉘은 에 의해 만들어집니다 . in 또는 /etc/passwd에 대한 언급이 없으며 in 에 대한 언급도 없습니다 .zsh.bashrc.profile/etc/profile

내 쉘이 존재하지 않는다는 것을 시스템의 나머지 부분에 어떻게 알릴 수 있습니까 zsh?

답변1

chsh명령을 사용하면 나열된 쉘에서 로그인 쉘을 변경할 수만 있습니다./etc/shells, 에 나열된 쉘에 /etc/shells. 이는 보안 기능입니다. 계정에 제한된 셸(에 나열되지 않음 /etc/shells)이 있는 경우 다른 셸로 전환하여 액세스 권한을 업그레이드할 수 없습니다. 사용자는 자신이 변경할 수 없는 셸로 전환하여 잠길 수 없습니다. 물론 루트 사용자는 이 제한에서 제외됩니다.

/etc/shells심볼릭 링크와 같이 명명된 파일을 고려하지 않는 대안을 확인하세요 . 로 /etc/shells나열된 경우 /bin/bash사용자 데이터베이스의 항목은 (동일한 파일임) 또는 (에 대한 심볼릭 링크임에도 불구하고 ) /bin/bash이어야 합니다 ./bin/./bash/usr/bin/bash/bin/bash

셸을 종료하는 경우 이전 셸을 제거하기 전에 스위치백을 실행해야 합니다 chsh. 제거하면 에서 셸이 제거되기 때문입니다 /etc/shells.

쉘을 다시 변경하는 것이 좋습니다 /bin/bash. 이를 수행하려면 루트 권한이 필요합니다. 이렇게 하면 chsh나중에 다시 실행할 수 있습니다.

Linux에서는 로컬 계정의 경우 항목에 따라 /etc/passwd사용자의 로그인 셸이 결정됩니다. (호환성을 위해 존재 /etc/passwd하지만 실제 참조가 아니므로 /etc/passwd수정해서는 안되거나 수정 후 일부 동기화 명령을 호출해야 하는 일부 다른 Unix 변형의 경우는 그렇지 않습니다.)

참조가 어디에 있는지 설명할 수 없습니다 /bin/zsh. 길을 잃은 추가 항목이 없는지 확인하십시오 /etc/passwd.

관련 정보