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
.