Come si modifica la shell predefinita per TUTTI GLI UTENTI in bash?


38

Voglio che ogni nuovo utente da ora in poi abbia bash come shell di default.

So che per cambiare la tua shell in bash, dovresti usare il comando "chsh -s / bin / bash", ma come posso impostare automaticamente la shell di tutti i futuri utenti su bash di default?

Risposte:


63

Aggiungi utente

Il adduserfile predefinito è /etc/adduser.conf. La shell predefinita definita dalla DSHELLvariabile è /bin/bashdi default.

useradd

Molto probabilmente non ti serve perché useradd è un'utilità di livello molto basso, e non viene quasi mai usata direttamente.

Se usi useradd, modifica il /etc/default/useraddfile skeleton (non dimenticare di fare un backup).

Impostare la SHELLvariabile su /bin/bashinvece di /bin/sh.

Ora ogni volta che usi useraddper aggiungere un nuovo utente bashè automaticamente la sua shell predefinita.

Utenti già esistenti

Se si desidera modificare la shell di utenti già esistenti, è necessario modificare il /etc/passwdfile (assicurarsi di averne un backup).

Ecco una descrizione delle colonne

  1. nome di login
  2. password crittografata opzionale
  3. ID utente numerico
  4. ID gruppo numerico
  5. nome utente o campo dei commenti
  6. directory home dell'utente
  7. interprete di comandi utente opzionale

In quell'ordine separato da due punti (:) come questo.

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

Per maggiori informazioni su quel file consultare la pagina man man 5 passwd.


4
Penso che un modo più sicuro per cambiare la shell di un altro utente sarebbe qualcosa di simile sudo -u $USER chsh -s $SHELL.
Jack O'Connor,

1
@ JackO'Connor dovresti pubblicare anche questa come risposta.
Ottaviano A. Damiano,

Questo sembra non funzionare in Ubuntu 16.04. Qualcuno conosce la correzione.
Harshdeep,

26

Come ha sottolineato Ottaviano, il modo in cui cambiare le impostazioni predefinite dipende dal modo in cui stai creando l'utente. Ho provato a creare un nuovo utente tramite le mie Impostazioni di Gnome proprio ora, e sembra seguire /etc/default/useradd, quindi potrebbe essere la soluzione migliore. Per gli utenti esistenti, il modo più sicuro per modificare la shell di accesso di qualcun altro è con usermod :

usermod -s /bin/bash $USERNAME

Se non siete root, avrete bisogno di sudo che. Un'alternativa è sudo nell'utente che si desidera modificare ed eseguire semplicemente chsh , in questo modo:

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

È meglio evitare le modifiche /etc/passwda mano, perché un errore potrebbe rompere qualsiasi cosa.


1

Se vuoi davvero che tutti gli utenti sul server abbiano bash (che era la domanda effettivamente posta), puoi eseguire il comando:

sudo dpkg-reconfigure dash

E quindi scegli NON trattino. Come spiegato in questa risposta,

Come posso fare / bin / sh puntare a / bin / bash?

Non solo imposta bash come shell predefinita, ma reindirizza correttamente sh e le pagine man.

Spero che sia di aiuto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.