Como você altera o shell padrão para TODOS OS USUÁRIOS bash?


38

Eu quero que cada novo usuário a partir de agora tenha o bash como shell por padrão.

Eu sei que, para alterar seu próprio shell para bash, você usaria o comando "chsh -s / bin / bash", mas como definir automaticamente o shell de todos os futuros usuários como bash por padrão?

Respostas:


63

adicionar usuário

O adduserarquivo padrão é /etc/adduser.conf. O shell padrão definido pela DSHELLvariável é /bin/bashpor padrão.

useradd

Provavelmente você não precisa disso porque o useradd é um utilitário de nível muito baixo e quase nunca é usado diretamente.

Se você usar useradd, edite o /etc/default/useraddarquivo de esqueleto (não se esqueça de fazer um backup).

Defina a SHELLvariável como em /bin/bashvez de /bin/sh.

Agora, toda vez que você usa useraddpara adicionar um novo usuário bashé automaticamente seu shell padrão.

Usuários já existentes

Se você deseja alterar o shell de usuários já existentes, é necessário editar o /etc/passwdarquivo (faça um backup dele).

Aqui está uma descrição das colunas

  1. Nome de acesso
  2. senha criptografada opcional
  3. ID numérico do usuário
  4. ID numérico do grupo
  5. nome de usuário ou campo de comentário
  6. diretório inicial do usuário
  7. intérprete de comando do usuário opcional

Nessa ordem, separados por dois pontos (:) como este.

root:x:0:0:root:/root:/bin/bash

Para mais informações sobre esse arquivo, consulte a página de manual man 5 passwd.


4
Eu acho que uma maneira mais segura de alterar o shell de outro usuário seria algo parecido sudo -u $USER chsh -s $SHELL.
Jack O'Connor

1
@ JackO'Connor, você também deve postar isso como resposta.
Octavian A. Damiean

Isso não parece estar funcionando no Ubuntu 16.04. Alguém sabe a correção.
Harshdeep

26

Como Octavian apontou, a maneira de alterar os padrões depende da maneira como você está criando o usuário. Tentei criar um novo usuário através das minhas Configurações do Gnome agora, e parece seguir /etc/default/useradd, para que essa possa ser sua melhor aposta. Para usuários existentes, a maneira mais segura de alterar o shell de login de outra pessoa é com usermod :

usermod -s /bin/bash $USERNAME

Se você não é root, precisará sudo isso. Uma alternativa é sudo no usuário que você deseja modificar e apenas execute o chsh , assim:

sudo -u $USERNAME chsh -s /bin/bash

É melhor evitar a edição /etc/passwdmanualmente, porque um erro pode quebrar todo tipo de coisa.


1

Se você realmente deseja que todos os usuários no servidor tenham o bash (qual foi a pergunta realmente feita), você pode executar o comando:

sudo dpkg-reconfigure dash

E então escolha NÃO traço. Conforme explicado nesta resposta,

Como posso fazer / bin / sh apontar para / bin / bash?

Isso não apenas define o bash como o shell padrão, mas também indica sh e as páginas de manual corretamente.

Espero que isto ajude.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.