Ich möchte den Speicherort des Stammverzeichnisses von root von / root in / var / root ändern. Früher konnte ich das mit usermod machen:
usermod -d /var/root root
Mit der neuesten Version von usermod können Sie jedoch das Verzeichnis des aktuell angemeldeten Benutzers nicht ändern. Ich versuche, das Ausgangsverzeichnis von root beim Booten in einem System-Setup-Skript zu ändern, das beim ersten Start eines Systems ausgeführt wird, sodass ich eigentlich kein anderer Benutzer sein kann.
Gibt es eine andere Möglichkeit, das Home-Verzeichnis des aktuell angemeldeten Benutzers zu ändern (in diesem Fall root)?
Ich könnte wahrscheinlich / etc / passwd sed, aber das scheint schlampig.
linux
user-accounts
home-directory
Kevin S.
quelle
quelle
Antworten:
Das einzige Problem bei der manuellen Bearbeitung
/etc/passwd
besteht darin, dass möglicherweise ein Rennen stattfindet, wenn ein anderer Benutzer oder ein anderes Programm diese Datei ändert, während Sie sie in Ihrem Editor geöffnet lassen. In diesem Fall geht diese Änderung verloren, wenn Sie die Datei speichern. Wenn Sie sicher sind, dass dieses Problem nicht auf Sie zutrifft (keine anderen angemeldeten Benutzer usw.), können Sie fortfahren und es bearbeiten/etc/passwd
Stellen Sie sicher, dass das Home-Verzeichnis des Roots verfügbar ist, wenn Sie im Einzelbenutzermodus booten, z. B. sollte es sich in einem Root-Dateisystem befinden.
Verschiedene Tricks wie das Erstellen eines sekundären Benutzers mit UID 0, das Wechseln zu UID und das Ändern des Home-Verzeichnisses von root funktionieren nicht. Die Überprüfungen für den aktuell angemeldeten Benutzer basieren auf UID.
quelle
vipw
odersudoedit
Schutz gegen # 1. Was # 2 betrifft, führt ein fehlendes Home-Verzeichnis normalerweise nur zu einer Warnung.