chsh가 없을 때 기본 쉘을 설정하는 방법

chsh가 없을 때 기본 쉘을 설정하는 방법

저는 Busybox를 실행하는 Synology DS412+ NAS 상자를 가지고 있는데, 기본 셸은 ash. 이전에는 ipkg install optware-devel실행하여 설치 bash하고 기본 쉘로 설정했습니다. 실행 중이 ipkg install zsh설치되었지만 zsh기본 셸로 설정되지 않았습니다. chsh존재하지 않습니다(Busybox는 축소 시스템을 가정하고 ash사용됩니다). 그러면 기본 쉘을 어떻게 설정합니까?

도움이나 통찰력을 주시면 매우 감사하겠습니다.

답변1

을 편집하여 로그인 셸을 변경할 수 있습니다 /etc/passwd. 각 줄은 콜론으로 구분된 값 목록이며, 그 중 마지막 값은 로그인 셸입니다.

user:x:1000:1000:User:/home/user:/usr/bin/zsh

존재 하는 경우 /etc/shellszsh(전체 경로)를 추가해야 합니다. 그렇지 않으면 일부 서비스가 사용자에게 작동하지 않을 수 있습니다.

메모:

zsh디스크 중 하나에 설치된 경우 루트(또는 관리 목적으로 필요한 사용자)의 로그인 셸을 변경하지 않는 것이 좋습니다 . 설치된 디스크 없이도 여전히 루트 액세스 권한을 갖고 싶을 수 있습니다.

언제든지 zshAsh의 사용자 구성에서 자동으로 시작할 수 있습니다. 그런 것

[ -x /usr/bin/zsh ] && exec /usr/bin/zsh

답변2

다른 방법 Synology 포럼의 이 게시물에서:

https://community.synology.com/enu/forum/1/post/150323

선택한 편집기(예: nano)에서 ~/.profile에 다음 줄을 추가합니다.

SHELL=/bin/bash exec /bin/bash 내보내기

여기서 /bin/bash는 선택한 쉘의 경로입니다.

관련 정보