Wie ändere ich die Standard-Shell für ALL USERS auf bash?

38

Ich möchte, dass jeder neue Benutzer von nun an standardmäßig Bash als Shell verwendet.

Ich weiß, dass Sie zum Ändern Ihrer eigenen Shell in bash den Befehl "chsh -s / bin / bash" verwenden würden, aber wie setze ich die Shell aller zukünftigen Benutzer standardmäßig auf bash?

Kaffeemühle
quelle

Antworten:

63

Benutzer hinzufügen

Die adduserStandarddatei lautet /etc/adduser.conf. Die durch die DSHELLVariable definierte /bin/bashStandardshell ist standardmäßig.

useradd

Dies ist höchstwahrscheinlich nicht erforderlich, da useradd ein sehr einfaches Dienstprogramm ist und kaum direkt verwendet wird.

Wenn Sie useradd verwenden, bearbeiten Sie die Skelettdatei /etc/default/useradd(vergessen Sie jedoch nicht, eine Sicherungskopie zu erstellen).

Setzen Sie die SHELLVariable auf /bin/bashanstelle von /bin/sh.

Jetzt ist jedes Mal useradd, wenn Sie einen neuen Benutzer hinzufügen, bashautomatisch dessen Standard-Shell.

Bereits vorhandene Benutzer

Wenn Sie die Shell bereits vorhandener Benutzer ändern möchten, müssen Sie die /etc/passwdDatei bearbeiten (stellen Sie sicher, dass Sie eine Sicherungskopie davon haben).

Hier ist eine Beschreibung der Spalten

  1. Benutzername
  2. optionales verschlüsseltes Passwort
  3. numerische Benutzerkennung
  4. ID der numerischen Gruppe
  5. Benutzername oder Kommentarfeld
  6. Benutzer-Ausgangsverzeichnis
  7. optionaler Benutzerbefehlsinterpreter

In dieser Reihenfolge durch Doppelpunkte (:) wie folgt getrennt.

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

Weitere Informationen zu dieser Datei finden Sie in der Manpage man 5 passwd.

Octavian Damiean
quelle
4
Ich denke, ein sicherer Weg, die Shell eines anderen Benutzers zu ändern, wäre so etwas wie sudo -u $USER chsh -s $SHELL.
Jack O'Connor
1
@ JackO'Connor du solltest das auch als Antwort posten.
Octavian Damiean
Dies scheint in Ubuntu 16.04 nicht zu funktionieren. Kennt jemand das Update.
Harshdeep
26

Wie Octavian ausführte, hängt die Art und Weise, wie die Standardeinstellungen geändert werden, davon ab, wie Sie den Benutzer erstellen. Ich habe gerade versucht, über meine Gnome-Einstellungen einen neuen Benutzer zu erstellen, und es scheint /etc/default/useradd, als ob dies der beste Weg wäre. Für bestehende Benutzer ist der sicherste Weg, die Login-Shell einer anderen Person zu ändern, mit usermod :

usermod -s /bin/bash $USERNAME

Wenn Sie nicht root sind, müssen Sie das sudo . Eine Alternative besteht darin, den Benutzer, den Sie ändern möchten, mit sudo zu versehen und chsh wie folgt auszuführen :

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

Vermeiden Sie es am besten, /etc/passwdvon Hand zu bearbeiten , da ein Fehler darin alles Mögliche kaputt machen kann.

Jack O'Connor
quelle
1

Wenn Sie tatsächlich möchten, dass alle Benutzer auf dem Server Bash haben (was die Frage war, die tatsächlich gestellt wurde), können Sie den folgenden Befehl ausführen:

sudo dpkg-reconfigure dash

Und dann wählen Sie NICHT Bindestrich. Wie in dieser Antwort erklärt,

Wie kann ich / bin / sh auf / bin / bash verweisen lassen?

Damit wird nicht nur bash als Standardshell festgelegt, sondern sh und die Manpages werden auch korrekt neu positioniert.

Hoffe das hilft.

MontyThreeCard
quelle