ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

Homeverzeichnis

Fehlendes Makro

Das Makro „Getestet“ konnte nicht gefunden werden.

 * [1]: [:Terminal: Ein Terminal öffnen]
 * [2]: [:Autostart: Automatischer Start von Programmen]

./home.png

Das Homeverzeichnis ist der Ort, an dem Benutzer ihre Daten ablegen können und an dem Programme ihre benutzerspezifischen Einstellungen hinterlegen. Nur hier hat der einzelne Benutzer volle Schreib- und Leserechte. Nur hier sollten Benutzer ihre Daten ablegen.

Einstellungen werden üblicherweise in versteckten Dateien und Verzeichnissen gespeichert. Diese erkennt man daran, dass die Namen mit einem Punkt beginnen. .gnome2 oder .bashrc sind z.B. solche Konfigurationsdateien bzw. Verzeichnisse.

Die Home-Partition

Üblicherweise wählt man für /home eine eigene Partition. So gehen Einstellungen und persönliche Dateien bei einer Neuinstallation nicht verloren bzw. müssen vorher nicht aufwändig gesichert werden. Daher spricht man beim Verzeichnis /home auch oftmals von der "Home-Partition". Von der Größe sollte man /home so groß wie möglich erstellen. Hier werden ja alle privaten Daten abgelegt. Mehr Informationen zur Partitionierung des Systems findet man hier im Wiki unter Partitionierung.

Home umziehen

Hat man das /home Verzeichnis bei der Installation nicht auf einer eigenen Partition angelegt, so ist es möglich dies im Nachhinein zu korrigieren. Dazu muss eine eigene Partition angelegt, in das System eingebunden und die Daten verschoben werden. Mehr Informationen hierzu findet man im Wiki unter Home umziehen.

Das Home-Verzeichnis

Das Home-Verzeichnis ist das Verzeichnis des jeweiligen Benutzers innerhalb der Home-Partition. Heißt der Benutzer also z.B. "otto", so heißt das Verzeichnis logischerweise /home/otto. Dies ist das Verzeichnis, das im allgemeinen Sprachgebrauch gemeint ist, wenn gesagt wird "Im Homeverzeichnis dieses und jenes machen".

~/

Oft steht irgendwo nur ~/Ordnername. ~/ ist eine Shell-Extension, also quasi eine Abkürzung die immer auf /home/Benutzername/ verweist. Heißt der Benutzer also z.b. "otto" und will in das Verzeichnis /home/otto/.bogofilter kann er anstelle des ganzen Pfades auch einfach:

cd ~/.bogofilter

eintippen.

Besondere Verzeichnisse

Im Homeverzeichnis gibt es eine Reihe von wichtigen Ordnern, die von Haus aus angelegt werden. Wichtig ist hierbei, dass die Groß-/Kleinschreibung von Ordnern und Dateien unter Linux wichtig ist.

Der Desktop

./desktop.png Der Desktop ist nichts anderes als der Inhalt des Verzeichnisses ~/Desktop im Homeverzeichnis. Jede Datei, jedes Verzeichnis das man auf dem Desktop sieht, ist nichts anderes als der Inhalt dieses Verzeichnisses. Einzige Ausnahme sind die Festplatten und Datenträger, die in das System eingebunden werden, diese Icons sind nur Symbole und repräsentieren die Platten, die an andere Stelle des Dateisystems eingebunden wurde. Auf Wunsch kann man diese Symbole auch ausblenden.

Der Mülleimer

./trash.png Dateien werden üblicherweise nicht sofort gelöscht, wenn man sie über einen Dateimanager löscht, sie werden nur in den Ordner ~/.Trash bei GNOME bzw. ~/.local/share/Trash/files bei Xfce und KDE verschoben. Erst wenn man die Dateien aus dem Mülleimer löscht werden die Dateien wirklich von der Festplatte entfernt. Mehr dazu findet man unter GNOME Mülleimer.

⚓︎

Vorgegebene Verzeichnisse

xdg-user-dirs 🇬🇧 ist ein Werkzeug um gewisse Vorgaben für Applikationen zu schaffen, wo sie ihre Daten ablegen sollen. So wird beispielsweise der Pfad zum Desktop hier bestimmt oder Ordner für Musik oder Video Dateien definiert.

Diese Verzeichnisse gelten über Desktopumgebungen hinweg, solange diese sich an die Normen von freedesktop.org halten. Die Verzeichnisse werde über die Konfigurationsdatei ~/.config/user-dirs.dirs bestimmt. Die Standardeinstellungen für neu angelegte Benutzer sind hier. So zeichnen alle Desktopumgebungen immer den Ordner ~/Desktop als Desktop usw.

XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Desktop"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/Pictures"
XDG_VIDEOS_DIR="$HOME/Videos"

Die Pfade werden autmatisch aktualisiert. Nennt man Beispielsweise den Ordner ~/Pictures in ~/Bilder um, so wird der Eintrag in der user-dirs.dirs automatisch aktualisiert.

Verzeichnisse löschen

Möchte man diese Ordner nicht in seinem Homeverzeichnis haben, so kann man sie einfach löschen. Allerdings werden sie automatisch beim nächsten Einloggen wiederhergestellt. Schuld daran ist das Programm "user-folders-update", das automatisch beim Einloggen ausgeführt wird. Möchte man diese Verzeichnisse endgültig los werden, so sollte man dieses Programm aus den automatisch zu startenden Programmen entfernen [2].

⚓︎

Konfigurationen

./versteckter_ordner.png Ubuntu ist von Haus aus als Mehrbenutzersystem ausgelegt. Legt ein Programm individuelle Einstellungen oder Informationen ab, so werden diese immer im Homeverzeichnis gespeichert. So kann jeder Benutzer ein Programm benutzen ohne dass Einstellungen von anderen Benutzer geändert werden. Diese Dateien oder Verzeichnisse beginnen meist mit einem Punkt also ~/.gnome2 oder ~/.gaim und werden daher erst in Dateimanagern angezeigt, wenn man "versteckte" Dateien anzeigen lässt.

Das Homeverzeichnis von Root

Eine Ausnahme stellt das Verzeichnis /root dar. Dies ist das Homeverzeichnis des administrativen Root-Kontos. Das Verzeichnis stellt eine Ausnahme dar, da es als einziges Homeverzeichnis nicht unter /home abgelegt wird. Der Grund dafür ist, dass das Homeverzeichnis von Root immer erreichbar sein muss, selbst wenn die Home-Partition aus irgendeinem Grund (Rettungs-Modus, Wartungsarbeiten) mal nicht eingehängt ist. Üblicherweise legt man unter Ubuntu hier keine Daten ab.

⚓︎

Rechte

Für die Rechteverteilung im Homeverzeichnis ist der Benutzer selber verantwortlich. Der Benutzer kann selber entscheiden, welche Dateien oder Verzeichnisse für andere Benutzer les- oder schreibbar sein sollen. Hierzu sei auf weiterführende Artikel wie Rechte im Wiki verwiesen. Die Tipps richten sie sich hierbei an Heimanwender. Mitglieder eines Netzwerkes sollten sich stattdessen an ihren Administrator wenden.

Im folgenden werden Tipps gegeben, wie Rechte schnell und effektiv gesetzt werden können. Dabei gehen zuvor individuell gesetzte Rechte verloren, so sollten beispielsweise Dateien nicht von Haus aus ausführbar sein. Wendet man die genannten Tipps an, so sind alle Dateien - auch eigene Skripte und Programme im Homeverzeichnis - nicht ausführbar.

⚓︎

Rechte korrigieren

Im Forum kommt es immer wieder vor, dass Benutzer sich nicht mehr einloggen können oder dass Programme keine Einstellungen mehr speichern können usw. Daran sind so gut wie immer falsch gesetzte Rechte im Homeverzeichnis des Benutzers schuld. Dies passiert oftmals unabsichtlich durch die Benutzer beim Umgang mit sudo oder beim Ausführen von Anwendungen mit den falschen Rechten.

Die Rechte kann man relativ einfach korrigieren. Folgende Befehle sollte man dazu in einem Terminal [1] oder in einer virtuellen Konsole (über

Fehlendes Makro

Das Makro „Tasten“ konnte nicht gefunden werden.

) eingeben. Sie sollten exakt - am besten über Copy&Paste - übernommen werden.

sudo chown $USER:$USER $HOME -R
chmod -R u+rwX $HOME

Im ersten Befehl wird das Homeverzeichnis des aktuellen Benutzers wieder diesem zugewiesen, der zweite weist diesem die richtigen Rechte zu.

Homeverzeichnis nur für den eigenen Benutzer lesbar

In den Standardeinstellungen darf jeder Benutzer alle Daten anderer Benutzer lesen, aber nicht schreiben. Möchte man dies nicht, so kann man mit den folgenden Befehlen [1] die Rechte zuverlässig einschränken.

Variante 1: Kurz und schmerzlos

Diese erste Möglichkeit verhindert effektiv jeglichen Zugriff anderer Benutzer auf das komplette Homeverzeichnis (natürlich abgesehen von Root). Das ist aber auch schon der größte Nachteil, denn mit dieser Lösung gibt es keine Möglichkeit mehr, einzelne Dateien doch freizugeben. Auch die Freigabe eines public_html-Verzeichnisses für einen Webserver ist z.B. so nicht mehr möglich. Dafür besteht diese Lösung nur aus einem einzigen Befehl ...

chmod 700 $HOME

... und lässt sich genauso einfach komplett rückgängig machen:

chmod 755 $HOME

Variante 2: Etwas differenzierter

Diese Variante ist etwas komplizierter, weil sie aus den o.a. Gründen die anderen Benutzer nicht komplett ausschließt. Stattdessen wird dafür gesorgt, dass alle Objekte im Homeverzeichnis an sich für andere Leute unerreichbar gemacht werden. Das gilt ebenfalls für alle zukünftig angelegten Dateien und Verzeichnisse. Der Vorteil dieser Variante ist, dass man, wenn man möchte, einzelnen Objekten nachträglich erweiterte Rechte vergeben kann um Ausnahmen zu definieren.

(echo; echo "umask 027") | tee --append ~/.bash_profile >> ~/.profile
chmod -R o-rwx $HOME
chmod o+x $HOME 

Durch die Verankerung des umask-Befehls in den beiden angegebenen Dateien wird festgelegt, dass in Zukunft angelegte Dateien keine Schreib-, Lese- oder sonstigen Rechte für die übrigen Benutzer des Systems erhalten. (~/.bash_profile steuert das Terminal, ~/.profile den Rest vom Desktop.) Der folgende chmod-Befehl nimmt dann rekursiv allen bereits existierenden Dateien und Verzeichnissen diese Rechte weg.

Abschließend wird dem Homeverzeichnis selber aber wieder das x-Bit verliehen, dass anderen Benutzern das Betreten des Verzeichnisses - nicht aber das Auflisten oder Betrachten des Inhalts - ermöglicht.

Während man diese Umstellung vornimmt, sollten nach Möglichkeit keine anderen Programme geöffnet sein und nachdem man diese Befehle ausgeführt hat, sollte man sich sofort ausloggen. (Man kann sich danach gleich wieder einloggen.) Ansonsten ist es möglich, dass bereits geöffnete Programme noch Dateien mit der alten Rechtvergabe speichern und diese somit lesbar bleiben.

Voreinstellung ändern

Wenn man die Voreinstellung ändern möchte, so dass die Dateien aller künftig neu angelegten Benutzer nicht von Anderen lesbar sind, so geht das im Terminal [1] mit diesen Befehlen:

sudo sed -ie 's/^umask.*$/umask 027/' /etc/profile
sudo dpkg-reconfigure adduser

Die Frage "Wünschen Sie systemweit lesbare Heimatverzeichnisse" muss mit einem "Nein" beantwortet werden.

Diese Befehlsfolge macht effektiv das, was im vorherigen Abschnitt als "Variante 2" beschrieben wurde. Allerdings betrifft das nur zukünftige, neue Benutzer und nicht die bereits existierenden. Diese müssen selber die o.a. chmod-Befehle ausführen. Die "umask" wird allerdings durch den sed-Befehl wirklich global gesetzt und gilt für alle Benutzer nach dem nächsten Login, sofern sie nicht ihre eigene private "umask" in ihren Konfigurationsdateien setzen.

Tipps

Abkürzungen

Es gibt zum schnellen Wechsel in das Homeverzeichnis eine Reihe von Abkürzungen. Alle diese Befehle [1]

cd
cd ~
cd ~otto
cd $HOME
cd /home/otto

bewirken z.B. das Selbe. In einer Konsole wechselt man in das Homeverzeichnis. Die Tilde ~ und die Umgebungsvariable $HOME sind dabei besonders praktisch für den Einsatz in Skripten, da sie sich an die jeweilige Umgebung anpassen und sich das Skript so für alle Benutzer des Systems eignet.

#!/bin/bash
cp ~/foo/bar.txt cp ~/foo/bar.bak
cp $HOME/foo/bar2.txt $HOME/foo/bar2.bak

Aber auch in Foren oder Anleitungen ließt man des öfteren cd ~.

⚓︎

Benutzer-Programme wie Root-Programme starten

Möchte man Anwendungen oder Skripte starten, die man direkt im Homeverzeichnis abgelegt und nicht "korrekt" installiert hat, so muss man zum Starten den Pfad angeben. Dies liegt daran, dass nur eine Reihe von Verzeichnissen in der so genannten PATH Umgebungsvariable aufgelistet werden.

Um trotzdem komfortable eigene Programme oder Skripte starten zu können kann man im Homeverzeichnis ein Verzeichnis mit dem Namen bin erstellen und dort Skripte oder Anwendungen ablegen bzw. verlinken. bin steht von Haus aus in der PATH Umgebungsvariable.

Dateien und Verzeichnisse verstecken

Möchte man einige Dateien oder Ordner permanent verstecken, so ist (in dem jeweiligen Verzeichnis, in dem sich die zu versteckenden Einträge befinden) eine Datei .hidden zu erstellen [3], in der die gewünschten Dateien und Verzeichnisse aufgelistet werden.

Datei1
Verzeichnis1
Datei2

Dies bewirkt also, dass Dateimanager wie Nautilus und Konqueror diese Dateien standardmäßig nicht mehr anzeigen.

⚓︎

Homeverzeichnis ändern

Diese Aktion lässt sich nicht für den Benutzer, der gerade angemeldet ist durchführen. Sollte man keinen zweiten Benutzer mit [:Administrator:Administrator-Rechten] angelegt haben, so muss man in den [:Recovery Modus:] booten.

Einmal erzeugt lässt sich der Name oder der Ort des Homeverzeichnis eines Benutzers nicht so einfach ändern. Auf keinen Fall sollten Konfigurationsdateien von Hand manipuliert werden. Linux bringt für solche Operationen das Werkzeug usermod mit. In einem Terminal [1] kann man damit den Namen eines Benutzers und weitere Details ändern.

# Allgemein
sudo usermod -l <neuer_benutzername> -d </home/neuer_benutzername> -m <alter_benutzername>
# Beispiel, nennt den Benutzer bernd in otto um und verschieb das Homeverzeichnis
sudo usermod -l otto -d /home/otto -m bernd

Hierbei bedeuten die einzelnen Optionen

Optionen für usermod zum Umbenennen eines Benutzerkontos
OptionBedeutung
-l Neuer Login des Benutzers
-d Neues Homeverzeichnis des Benutzers, gibt man diesen Parameter nicht an, so bleibt das Alte erhalten.
-m Nur sinnvoll, wenn mit -d ein neues Verzeichnis angegeben wurde. Wird der Schalter -m gesetzt, so werden die Daten aus dem alten Homeverzeichnis gleich in das Neue verschoben.
Weitere Optionen zu usermod findet man in der man-Page man usermod von usermod.

Fehlendes Makro

Das Makro „Diskussion“ konnte nicht gefunden werden.


Diese Revision wurde am 5. Februar 2008 21:50 von Chrissss erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: System, Einsteiger, Datenträger