Ändern Sie den Benutzer, um das Basisverzeichnis zu entfernen

340
eponymous

Der passwd-Dateieintrag für einen Benutzer, der einem Dienst (Squeezelite) zugeordnet ist, gibt an, dass der Benutzer über ein Basisverzeichnis (/ home / squeezelite) verfügt. Dieser Ordner existiert nicht (und ich vermute, dass er es nie getan hat).

Der Dienst läuft einwandfrei. Daher neige ich dazu, die passwd-Datei zu ändern, um anzuzeigen, dass der Benutzer kein Basisverzeichnis hat. Gibt es eine Möglichkeit, dies mit usermod zu erledigen, oder sollte ich die passwd-Datei direkt bearbeiten? Wenn ich die passwd-Datei bearbeiten möchte, welche Änderung sollte ich vornehmen? Ersetzen /home/squeezelitedurch/

1

2 Antworten auf die Frage

1
RalfFriedl

Von man usermod

-d, --home HOME_DIR

Das neue Login-Verzeichnis des Benutzers.

Wenn das alte Zuhause keine Rolle spielte, spielte das neue Zuhause wahrscheinlich auch keine Rolle, aber Sie könnten so etwas verwenden, /var/nonexistentum anzuzeigen, dass das Heimatverzeichnis nicht benötigt wird oder vorhanden sein sollte.

0
Fanatique

Sie können entweder die Antwort von @ RalfFriedl verwenden und die -dOption verwenden, die meistens /nonexistentfür diesen Fall verwendet wird, oder Sie können die /etc/passwdDatei bearbeiten :

Einfach löschen /home/squeezelite:
Von so etwas wie:

squeezelite:x:1001:1001::/home/squeezelite: 

Sie können es entweder machen:

squeezelite:x:1001:1001::: 

oder

squeezelite:x:1001:1001::/nonexistent: 

Sie können auch das Stammverzeichnis /für das Basisverzeichnis verwenden. Mein oberster Vorschlag ist jedoch, einfach /home/squeezeliteaus der passwdDatei zu löschen . Dann hat der Benutzer kein Basisverzeichnis.

Wenn Sie `` / nonexistent`` angeben und `` / var / nonexistent`` die `` shadow.service``-Bedingung erfüllen, die mit `` `user 'squeezelite' 'fehlschlägt: Das Verzeichnis' / home / squeezelite 'existiert nicht``. eponymous vor 5 Jahren 0
@ anonym nicht, das geht nicht. Es wird immer noch sagen, dass das Verzeichnis nicht existiert. Deshalb schlage ich das erste Beispiel vor, indem ich es als "Squeezelite: x: 1001: 1001 :::` "mache Fanatique vor 5 Jahren 0
Interessanterweise wandte sich `` shadow.service`` dagegen aus, das Feld leer zu lassen, also gab ich `` / `` ein, was es akzeptierte. Vielen Dank. eponymous vor 5 Jahren 0
Ich denke, Arch akzeptiert das dann nicht. Für mich unter Debian 9 hat es funktioniert. Fanatique vor 5 Jahren 0