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

3

Tenho uma caixa NAS Synology DS412 + rodando o Busybox, que tem um shell padrão de ash . Anteriormente, ipkg install optware-devel foi executado e instalou bash e definiu como o shell padrão. A execução de ipkg install zsh instalou zsh , mas não o definiu como o shell padrão. chsh não está presente (o Busybox assume um sistema de corte e somente ash será usado), então como eu configuro o shell padrão?

Eu ficaria muito grato por qualquer ajuda ou insight.

    
por Iain 14.05.2014 / 14:44

1 resposta

4

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

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

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

Nota:

Sugiro que não altere o shell de login para raiz (ou qualquer usuário que você precise para fins administrativos) se zsh estiver instalado em um dos discos. Talvez você ainda queira ter acesso root sem discos instalados.

Você sempre pode iniciar zsh automaticamente da configuração do usuário do ash. Algo parecido com isso

[ -x /usr/bin/zsh ] && exec /usr/bin/zsh
    
por 14.05.2014 / 16:18