$ HOME ist für root-Benutzer unter Ubuntu 14.04 nicht definiert

575
Byron Hawkins

Bei einer neuen Ubuntu 14.04-Installation wurde die bash-Umgebung für den Root-Benutzer nicht $HOMEdefiniert. Ich muss einige Apps von einer Root-Shell aus ausführen, zum Beispiel:

gdb /usr/sbin/apache2 

Ohne ein Arbeitsverzeichnis ist dies schwierig $HOME, da Apps die Umgebung mögen vimund gdbbenötigen $HOMEund ohne sie etwas kaputt sind. Hinzufügen

export HOME=/root 

In den /root/.bashrcWerken (obwohl ich das bemerkte apache2Umgebungsskript ständig entsticht $HOME).

Was ist der richtige Weg HOME=/root, um in der Root-Umgebung definiert zu werden? Gibt es einen Grund, warum es überhaupt nicht definiert wurde? Sollte $HOMEnicht für den root-Benutzer definiert werden?

1

1 Antwort auf die Frage

2
chaos

Die HOME-Variable ist in / etc / passwd definiert. Die Zeile des root-Benutzers sollte normalerweise so aussehen:

root:x:0:0:root:/root:/bin/bash 

Das sechste Feld (durch Doppelpunkt getrennt :) definiert das Basisverzeichnis und wird von PAM in die Umgebungsvariable HOME kopiert . der Mechanismus von Linux zur Authentifizierung von Benutzern.

Danke - obwohl ich `/ root` an der normalen Stelle in / etc / password habe. Bedeutet das, dass etwas den Befehl "unset HOME" ausgegeben hat? Es scheint, als müsste die Variable irgendwann absichtlich nicht gesetzt worden sein. Byron Hawkins vor 9 Jahren 0
Scheint so. Sie könnten in Konfigurationsdateien und RC-Skripten nach `HOME` suchen:` grep HOME / etc / * `und` grep HOME ~ /.* `. Möglicherweise werden dadurch einige Skripts angezeigt, die die Variable nicht setzen / zurücksetzen. chaos vor 9 Jahren 0
Anscheinend war es nur das Umgebungsskript `apache2`, das ich ein paar Mal ausgeführt habe, ohne es zu merken. Also nichts ist falsch mit meiner Benutzer-Konfiguration ... Byron Hawkins vor 9 Jahren 0