Wie füge ich einen Benutzer ohne / home hinzu?

79

Ich möchte einen neuen Benutzer erstellen, um einen Dienst auf dem System auszuführen, möchte aber keine /homeweiteren Konfigurationsdateien dafür haben. Als ob es einen Benutzer für postgres gibt, der aber kein /homeVerzeichnis hat.

Owais Lone
quelle

Antworten:

105

Standardmäßig erstellt der Befehl useradd keine Home-Verzeichnisse. Für einen Daemon empfehle ich jedoch, die Systemoption zu verwenden und die Shell in eine nicht vorhandene zu ändern, damit sich niemand mit diesem Konto anmelden kann (z. B. in ssh):

sudo useradd -r -s /bin/false USERNAME

Sie können alle Optionen mit man useraddund anzeigen, man groupaddwenn Sie auch eine Gruppe für den Benutzer erstellen möchten.

sergio91pt
quelle
4
useradd -r erstellt einen Systembenutzer, nicht nur einen Benutzer ohne Homedir.
fromnaboo
2
Beachten Sie, dass useradd -r auch entsprechende Gruppen erstellt.
9
Ich glaube, die beste Methode ist die Verwendung /sbin/nologinals Login-Shell, obwohl die Verwendung /bin/falsekeinen Unterschied macht.
Meow
51

Probieren Sie es aus adduser --system --no-create-home USERNAMEoder schauen Sie sich einfach an, man adduserwas für ein " freundlicheres Front-End für die Low-Level-Tools wie useradd ... " steht.

Clausi
quelle
4
Ich habe tatsächlich nicht bemerkt, dass dies adduservs. ist useradd, und das Ausführen des Befehls useraddmit diesen Optionen führte zu keinem Fehler, sondern erstellte das Konto mit Shell /bin/bash. "Käufer aufgepasst".
Isapir
14

Ich brauchte etwas Ähnliches - einen neuen Benutzer ohne Anmeldeberechtigung und an einen Systemdienst gebunden. Durch die Antwort von Clausi wird jedoch ein Benutzer mit der primären Gruppe 'nogroup' erstellt, was nicht wirklich wünschenswert war.

adduser --system --no-create-home --group USERNAMEerstellt eine Systemgruppe mit demselben Namen wie der Benutzer und ordnet sie dem Benutzer als primäre Gruppe zu. Dies kann dann mit groups USERNAMEdem id USERNAMEBefehl oder überprüft werden .

Daoperator
quelle
2

Zum Hinzufügen eines Benutzers ohne Basisverzeichnis lauten die Befehle:

useradd -M username

oder

useradd --no-create-home username

oder

adduser -M username

oder

adduser --no-create-home username
user477778
quelle
1

versuche diesen Befehl:

sudo useradd vivek

Dadurch wird ein Benutzer erstellt, ohne Ihren Basisordner unter zu erstellen /home/vivek

Vivekananda T
quelle
1
Nein, solange Sie mit diesem Konto angemeldet sind, /home/vivekwird das automatisch erstellt.
Miau