사용자가 설치한 쉘을 사용하시겠습니까?

사용자가 설치한 쉘을 사용하시겠습니까?

내 쉘을 홈 디렉토리에 설치된 쉘로 어떻게 변경합니까? 내 홈 디렉토리에 새 zsh를 설치했습니다.

>> which zsh
>> /home/myname/bin/zsh

/etc/shells에 나열되어 있지 않습니다(권한이 부족하므로 나열되지 않습니다). 그러면 어떻게 설치합니까?

chsh -s $(which zsh) myname
Changing shell for myname
Password: 
chsh: "/home/myname/bin/zsh" is not listed in /etc/shells
chsh: use -l option to see list

답변1

요점은 /etc/shells관리자가 사용자가 쉘로 설정한 것을 제어할 수 있다는 것입니다. 따라서 목록에 없는 쉘을 설정하면 /etc/shells보안상의 허점이 발생합니다. 가장 좋은 해결책은 관리자에게 시스템 전반에 걸쳐 zsh를 설치하도록 요청하는 것입니다. 그러나 이것이 가능하지 않은 경우 유일한 옵션은 사용자 지정 쉘을 실행하도록 현재 쉘(bash로 가정)을 구성하는 것입니다. 다음을 추가하여 이를 수행할 수 있습니다 ~/.bash_profile(이것은 로그인 쉘에만 영향을 미치며, ~/.bashrc스크립트를 손상시킬 수 있는 비로그인 쉘에도 영향을 미칩니다).

exec ~/bin/zsh

관련 정보