So ändern Sie das Home-Verzeichnis des aktuell angemeldeten Benutzers


16

Ich bin derzeit bei einem CentOS-Server angemeldet und möchte mein Home-Verzeichnis von /home/myuserName/auf ändern/var/www/html/

Ich habe den folgenden Befehl ausprobiert:

> sudo usermod -d /var/www/html myuserName

Aber das gibt mir einen Fehler:

usermod: user myUserName is currently logged in

2
Ich bin mir nicht sicher, was du meinst, HOME=/var/www/htmlwird für die Sitzung dein Heimatverzeichnis ändern .
Archemar

Das hilft, aber ich möchte mein Home-Verzeichnis dauerhaft ändern, nicht nur für die aktuelle Sitzung.
Mohan

Antworten:


17

kurze antwort : du kannst nicht.

lange Antwort :

HOMEdir ist in /etc/passwd, 6. Feld gesetzt. Es wird beim Anmelden gelesen, Ihre Shell wird mit diesem Home-Verzeichnis gestartet.

Der richtige Weg, um das Heimatverzeichnis für Joe zu ändern, ist:

  • habe joe abgemeldet.
  • Verwenden Sie usermod -d /new/home joe diese Option, um das Ausgangsverzeichnis für die nachfolgende Sitzung zu ändern.

Sobald die Sitzung ausgeführt wurde, müssen Sie zwei Dinge tun:

  • Bearbeiten $HOME, um das Ausgangsverzeichnis für die Sitzung zu ändern (wird bei allen aktiven Sitzungen wiederholt).
  • Verwenden Sie sudo vipwdiese Option, um das Home-Verzeichnis für die nächste Sitzung zu bearbeiten

Beachten Sie auch, dass Sie möglicherweise ein Problem mit Berechtigungen / Besitz haben /var/www/html


1
edit / etc / passwd hat immer bei mir funktioniert. Siehe @ 7171u unten
jeffmcneill

/ etc / passwd ohne Abmeldung / Anmeldung bearbeiten?
Archemar

Bearbeiten von / etc / passwd für ein Konto, das angemeldet ist, und Starten einer neuen Sitzung mit demselben Konto, wobei das neue Ausgangsverzeichnis eingehalten wird. Für das bereits angemeldete Konto hat diese Sitzung noch den alten Heimatort in der Umgebung.
Jeffmcneill

8

Der Befehl usermod funktioniert nicht, wenn Sie mit dem Benutzer angemeldet sind, für den Sie Änderungen vornehmen möchten.

Auf der Handbuchseite von usermod heißt es:

Mit CAVEATS usermod können Sie den Namen eines angemeldeten Benutzers nicht ändern. Sie müssen sicherstellen, dass der benannte Benutzer keine Prozesse ausführt, wenn dieser Befehl ausgeführt wird, wenn die numerische Benutzer-ID des Benutzers geändert wird. Sie müssen den Eigentümer aller Crontab-Dateien manuell ändern. Sie müssen den Eigentümer eines Jobs manuell ändern. Sie müssen alle NIS-Änderungen auf dem NIS-Server vornehmen.

Versuchen Sie, sich mit einem anderen Benutzer anzumelden und den Befehl erneut auszuführen.

Wenn dies nicht möglich ist, können Sie die Datei / etc / passwd manuell bearbeiten (genau das tut der Befehl usermod). Wenn Sie dies tun, stellen Sie sicher, dass Sie die Datei sichern, falls Sie versehentlich etwas Dummes tun.


7

Sie müssen die /etc/passwdDatei bearbeiten, um das Ausgangsverzeichnis der aktuell angemeldeten Benutzer zu ändern.

Bearbeiten Sie das /etc/passwdmit sudo vipwund ändern Sie das Home-Verzeichnis des Benutzers.

vipwEs wird dringend empfohlen, andere als vimoder andere Editoren zu verwenden, da vipwdie Sperre gesetzt wird, um eine Beschädigung der Daten zu verhindern.


2

Ein paar mögliche Problemumgehungen, je nachdem, was Sie lösen möchten:

Option 1. Fügen Sie HOME=/var/www/htmlIhrem .bashrc hinzu

Option 2. Benennen Sie um /home/myusernameund erstellen Sie einen Symlink zum gewünschten Verzeichnis.

mv /home/myusername /home/myusername-old
ln -s /var/www/html /home/myusername

schlechte Angewohnheit. Danach kann myusername-old nicht mehr von einem anderen Benutzer verwendet werden
GeoMint

-2

Sie können dies nur vorübergehend tun. Dies bedeutet, dass Sie jedes Mal, wenn Sie sich als dieser Benutzer anmelden, diesen einen Befehl ausführen müssen:

export HOME=/var/www/html

Auf diese Weise können Sie die meisten Anwendungen glauben lassen, dass sich Ihr Ausgangsverzeichnis an dem oben verwendeten Speicherort befindet.

~wird auch anfangen zu zeigen /var/www/html.

Die Anwendungen, mit denen dies für mich funktioniert hat, waren NPM und Maven.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.