Podemos configurar diferentes shells para diferentes usuários em uma única distribuição Linux/Unix?

Podemos configurar diferentes shells para diferentes usuários em uma única distribuição Linux/Unix?

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 chshdesde que esteja no /etc/shellsarquivo.

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/loginnormalmente 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 chshcomando. 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/passwdarquivo 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

informação relacionada