Como definir o shell padrão quando o chsh não está presente

Como definir o shell padrão quando o chsh não está presente

Eu tenho uma caixa Synology DS412+ NAS executando o Busybox, que possui um shell padrão de ash. Anteriormente, ipkg install optware-develfoi executado e instalado bashe definido como shell padrão. Running ipkg install zshfoi instalado zsh, mas não o definiu como shell padrão. chshnão está presente (o Busybox assume um sistema reduzido e apenas ashserá usado), então como defino o shell padrão?

Eu ficaria muito grato por qualquer ajuda ou insight.

Responder1

Você pode alterar o shell de login editando o arquivo /etc/passwd. Cada linha é uma lista de valores separados por dois pontos, o último dos quais é o shell de login:

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

Se /etc/shellsexistir, você deve adicionar zsh (caminho completo), caso contrário, alguns serviços podem não funcionar para o seu usuário.

Observação:

Eu sugiro não alterar o shell de login do root (ou de qualquer usuário necessário para fins administrativos) se zshestiver instalado em um dos discos. Você pode querer ainda ter acesso root sem discos instalados.

Você sempre pode iniciar zshautomaticamente a partir da configuração do usuário do ash. Algo parecido

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

Responder2

Outro método desta postagem no fórum Synoloogy:

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

No editor de sua preferência (por exemplo, nano), adicione as seguintes linhas a: ~/.profile

exportar SHELL=/bin/bash exec /bin/bash

onde /bin/bash é o caminho para o shell escolhido

informação relacionada