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

7

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 que eu quero uma resposta é a seguinte -:

Como temos shells diferentes disponibilizados para nós por um sistema Unix / Linux, é possível configurar um shell diferente para cada usuário autorizado a acessar o sistema. Então, vamos dizer que Tom, Dick e Harry são 3 usuários autorizados a usar o sistema "Unix" e eu quero "Tom" usar o shell zsh , o Dick usar tcsh e Harry para usar o shell bash . Como posso fazer isso e isso é possível?

    
por AnkitSablok 22.06.2014 / 01:07

3 respostas

8

Primeiro, as shells válidas são listadas em /etc/shells . Qualquer usuário pode alterar seu shell padrão usando chsh , contanto que esteja no arquivo /etc/shells .

Em segundo lugar, se você quiser adicionar um shell a /etc/shells , se remover uma entrada de lá, especialmente / bin / sh, provavelmente vai estragar o sistema, porque /bin/login NÃO será lançado normalmente fora de um shell que não está listado lá.

Mais informações estão disponíveis nas páginas man chsh (1), login.defs (5) e passwd (5) man.

Essa habilidade existe há muito tempo (acredito que o BSD 4.x)

    
por 22.06.2014 / 01:17
1

Sim, diferentes usuários podem ter diferentes configurações de shells. Você pode alterá-los com, por exemplo, o comando chsh . Para alterar o shell do usuário atual para bash (supondo que esteja em / bin / bash):

chsh -s /bin/bash [username]

Você também pode modificar seu arquivo /etc/passwd manualmente e alterar a parte que especifica o shell para esse usuário. Por exemplo:

root:*:0:0:System Administrator:/var/root:/bin/sh

A última parte em cada linha do seu / etc / passwd, que será parecida com a linha acima, após o último : , especifica o shell para esse usuário.

    
por 22.06.2014 / 01:10
1

Você pode usar chsh !

chsh -s /bin/sh user_name
    
por 22.06.2014 / 01:10