Bem, isso não é algo que eu queira fazer, mas faço esta pergunta para saber mais sobre a configuração do Shell em sistemas Unix/Linux. Então, a situação para a qual quero uma resposta é a seguinte -:
Como temos diferentes shells disponibilizados por um sistema Unix/Linux é possível configurarmos um shell diferente para cada usuário autorizado a acessar o sistema. Então, digamos que Tom, Dick e Harry são 3 usuários autorizados a usar o sistema “Unix” e eu quero que “Tom” use o shellzsh, Dick para usartcshe Harry para usar ofestaconcha. Como posso fazer isso e isso é possível?
Responder1
Primeiro de tudo, os shells válidos estão listados em /etc/shells
. Qualquer usuário pode alterar seu shell padrão usando chsh
desde que esteja no /etc/shells
arquivo.
Segundo, se você quiser adicionar um shell /etc/shells
, se você remover uma entrada de lá, especialmente /bin/sh você provavelmente irá estragar o sistema, porque /bin/login
normalmente NÃO iniciará um shell que não esteja listado lá.
Mais informações estão disponíveis emchsh(1),login.defs(5), esenha(5) páginas de manual.
Essa habilidade já existe há muito tempo (acredito que BSD 4.x)
Responder2
Sim, usuários diferentes podem ter configurações de shell diferentes. Você pode alterá-los, por exemplo, com o chsh
comando. Para alterar o shell do usuário atual para bash (assumindo que esteja em /bin/bash):
chsh -s /bin/bash [username]
Você também pode modificar seu /etc/passwd
arquivo manualmente e alterar a parte que especifica o shell para aquele usuário. Por exemplo:
root:*:0:0:System Administrator:/var/root:/bin/sh
A última parte de cada linha do seu /etc/passwd, que será semelhante à linha acima, após o last :
, especifica o shell para aquele usuário.
Responder3
Você pode usar chsh
!
chsh -s /bin/sh user_name