Ändern Sie den Speicherort des Stammverzeichnisses von root

10

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.

Kevin S.
quelle
Hardlink / root zu / var / root?
Garrett
Sie können / etc / passwd manuell ändern, denke ich.
billc.cn

Antworten:

11
  1. Das einzige Problem bei der manuellen Bearbeitung /etc/passwdbesteht 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

  2. 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.

  3. 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.

haimg
quelle
5
Verwendung vipwoder sudoeditSchutz gegen # 1. Was # 2 betrifft, führt ein fehlendes Home-Verzeichnis normalerweise nur zu einer Warnung.
user1686
@grawity: Danke für vipw info, ich wusste nichts davon. Ich denke, die Verwendung von vipw ist wahrscheinlich die beste Lösung insgesamt.
Haimg