[[Vorlage (Getestet general)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] [:Autostart: Automatischer Start von Programmen] [:Versteckte_Dateien: Versteckte Dateien anzeigen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(./home.png, 48, align=left)]] 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. Und nur hier sollten Benutzer ihre Daten speichern. Wichtig ist hierbei, dass die Groß-/Kleinschreibung von Ordnern und Dateien unter Linux – im Gegensatz zu Windows – berücksichtigt wird. '''Beispiel.doc''' und '''beispiel.doc''' sind also zwei unterschiedliche Dateien. Einstellungen werden üblicherweise in [:Versteckte_Dateien:versteckten] Dateien und Verzeichnissen gespeichert. Diese erkennt man daran, dass die Namen mit einem Punkt beginnen. '''.bashrc''' oder '''.gnome2''' sind Beispiele für solche Konfigurationsdateien bzw. -verzeichnisse. Daneben können versteckte Dateien oder Verzeichnisse auch sehr sensible Daten wie persönliche Schlüssel oder die verschlüsselten eigenen Dateien enthalten. Im Umgang mit versteckten Dateien und Verzeichnissen sollte man deshalb die gleiche Sorgfalt walten lassen wie mit nicht-versteckten. = 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 Artikel [:Home_umziehen:]. = Das Homeverzeichnis = Das Homeverzeichnis 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". == Das Zeichen '''"~"''' == Oft wird die Kurzform '''~/Ordnername''' verwendet. Die Tilde '''~''' steht für 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: {{{#!vorlage Befehl cd ~/.bogofilter }}} eintippen. Möchte man sich auf das Homeverzeichnis von jemand anderem beziehen, kann man der Tilde auch den Namen desjenigen hinten anstellen: || '''~/.bogofilter''' || das '''.bogofilter'''-Verzeichnis des angemeldeten Benutzers || || '''~anna/.bogofilter''' || das '''.bogofilter'''-Verzeichnis von anna || == Homeverzeichnis verschlüsseln == Das versteckte Verzeichnis '''/home/.ecryptfs''' enthält (bei einer Neuinstallation ab [:Karmic_Koala:Ubuntu 9.10]) die Daten der verschlüsselten Homeverzeichnisse und ihre Schlüsseldateien. Dieser Ordner ist in keinem Fall zu löschen oder leichtfertig zu verändern, sonst droht der Verlust persönlicher Daten. Mehr Informationen zum Thema "Homeverzeichnis verschlüsseln" sowie eine ausführliche Anleitung findet man im Wiki unter [:ecryptfs:]. {{{#!vorlage Warnung Nicht alle Dateien und Verzeichnisse eines Benutzers befinden sich auch tatsächlich in dessen Homeverzeichnis. Wird ein Homeverzeichnis verschlüsselt, so werden diese verschlüsselten Daten unter '''/home/.ecryptfs/BENUTZERNAME''' gespeichert, also nicht in seinem Homeverzeichnis '''/home/''' (auch wenn die entschlüsselten Daten dort angezeigt werden, während er angemeldet ist)! }}} == Verschlüsselung des Homeverzeichnisses entfernen == Wer die Verschlüsselung des Homeverzeichnisses nachträglich entfernen und seine Daten unverschlüsselt auf der Festplatte speichern möchte, findet eine Anleitung hierzu unter [:ecryptfs/Einrichten#Verschluesselung-des-Homeverzeichnisses-entfernen:Verschlüsselung des Homeverzeichnisses entfernen]. = Besondere Verzeichnisse = Im Homeverzeichnis gibt es eine Reihe von wichtigen Ordnern, die von Haus aus angelegt werden. == Der Desktop == [[Bild(./desktop.png, align=right)]] Der Desktop ist nichts anderes als der Inhalt des Verzeichnisses '''~/Schreibtisch''' oder '''~/Arbeitsfläche''' (früher auch '''~/Desktop''') im Homeverzeichnis. Jede Datei, jedes Verzeichnis, das man auf dem Desktop sieht, ist nichts anderes als der Inhalt dieses Verzeichnisses. Ausnahmen sind beispielsweise die Festplatten und Datenträger, die in das System eingebunden werden. Diese Icons sind nur Symbole und repräsentieren die Platten, die an anderer Stelle der [:Verzeichnisstruktur:] eingebunden werden. Auf Wunsch kann man diese Symbole auch [:Desktop-Symbole:ausblenden]. == Der Mülleimer == [[Bild(./trash.png, align=right)]] Dateien werden üblicherweise nicht sofort gelöscht, wenn man sie über einen [:Dateimanager:] löscht. Sie werden stattdessen in den Ordner '''~/.local/share/Trash/files''' verschoben. Erst wenn der Mülleimer geleert wird, werden die Dateien wirklich von der Festplatte entfernt. Mehr dazu im Artikel [:Papierkorb:]. [[Anker(xdg-user-dirs)]] == Vorgegebene Verzeichnisse == [http://www.freedesktop.org/wiki/Software/xdg-user-dirs xdg-user-dirs] {en} ist ein Werkzeug, um gewisse Vorgaben für Programme zu schaffen, wo sie ihre Daten ablegen sollen. So wird hier beispielsweise der Pfad zur Arbeitsfläche (früher Desktop) oder Ordner für Musik oder Video-Dateien definiert. Diese Verzeichnisse gelten über Desktop-Umgebungen hinweg, solange sich diese an die Normen von freedesktop.org halten. Die Verzeichnisse werden über die Konfigurationsdatei '''~/.config/user-dirs.dirs''' festgelegt. So bezeichnen alle Desktop-Umgebungen immer den Ordner '''~/Schreibtisch''' oder '''~/Arbeitsfläche''' (früher auch '''~/Desktop''') als Desktop usw. Die Standardeinstellungen für neu angelegte Benutzer bei [:Precise:Ubuntu 12.04] lauten beispielsweise: {{{ XDG_DESKTOP_DIR="$HOME/Arbeitsfläche" XDG_DOWNLOAD_DIR="$HOME/Downloads" XDG_TEMPLATES_DIR="$HOME/Vorlagen" XDG_PUBLICSHARE_DIR="$HOME/Öffentlich" XDG_DOCUMENTS_DIR="$HOME/Dokumente" XDG_MUSIC_DIR="$HOME/Musik" XDG_PICTURES_DIR="$HOME/Bilder" XDG_VIDEOS_DIR="$HOME/Videos" }}} Die Pfade werden automatisch aktualisiert. Nennt man beispielsweise den Ordner '''~/Bilder''' in '''~/Pictures''' um, so wird der Eintrag in '''user-dirs.dirs''' automatisch aktualisiert. Die Verzeichnisnamen lassen sich auch sehr einfach über die graphische Oberfläche von [:Ubuntu_Tweak:Ubuntu Tweak] festlegen. === Verzeichnisse löschen === Möchte man diese vorgegebenen Ordner nicht im eigenen Homeverzeichnis haben, so kann man sie entweder den eigenen Wünschen anpassen oder auch einfach löschen (nicht empfehlenswert!). Allerdings werden sie dann automatisch bei der nächsten Anmeldung wiederhergestellt. Schuld daran ist das Programm '''`xdg-user-dirs-gtk-update`''', das automatisch beim Anmelden ausgeführt wird. Möchte man diese Verzeichnisse endgültig los werden, so sollte man dieses Programm aus den automatisch zu startenden Programmen im Ordner '''/etc/xdg/autostart/''' entfernen [2]. Bei KDE 4.4.2 (Kubuntu 10.04) oder neuer werden die gelöschte Verzeichnisse nicht neu angelegt, sondern in den Einstellungen im Homeverzeichnis des Nutzers [#xdg-user-dirs eingetragen]. == Konfigurationsdateien == 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 Benutzern 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 [:Versteckte_Dateien:anzeigen] lässt. Falls ein Programm auf seine Ausgangskonfiguration zurückgesetzt werden soll, kann die entsprechende Datei bzw. der entsprechende Ordner umbenannt oder gelöscht werden. Die Konfigurationsdateien werden dann vom Programm neu angelegt. = 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 soll, selbst wenn die Home-Partition aus irgendeinem Grund (z.B. Rettungs-Modus oder Wartungsarbeiten) mal nicht eingehängt ist. Das Verzeichnis kann in '''/etc/passwd''' geändert werden. Üblicherweise legt man unter Ubuntu hier keine Daten ab. = Rechte = Für die Rechteverteilung im Homeverzeichnis ist der Benutzer selbst verantwortlich. Der Benutzer kann selbst 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 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 anmelden 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 einer virtuellen Konsole (über [[Vorlage(Tasten, Strg+Alt+F1)]] ) oder im [:Recovery_Modus:Recovery Modus] eingeben. Wichtig ist, dass man während des Korrigierens der Rechte __nicht__ in der graphischen Desktopumgebung angemeldet ist. {{{#!vorlage Befehl sudo chown -R BENUTZER:BENUTZER /home/BENUTZER sudo chmod -R u+rwX /home/BENUTZER sudo chmod 600 /home/BENUTZER/.dmrc chmod 755 /home/BENUTZER }}} `BENUTZER` muss natürlich durch den __eigenen__ Benutzernamen ersetzt werden. Im ersten Befehl wird das Homeverzeichnis des aktuellen Benutzers wieder diesem [:chown:zugewiesen], der zweite [:chmod:weist] diesem die richtigen Rechte zu. Man bekommt beim Ausführen der oben genannten Befehle die Meldung {{{ chown: Zugriff auf „/home/BENUTZER/.gvfs“ nicht möglich: Permission denied }}} Diese Meldung kann ignoriert werden. Sie würde erst gar nicht auftauchen, wenn man den oben beschrieben Hinweis beachtet hätte, sich abzumelden. == 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 [:Apache: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: {{{#!vorlage Befehl chmod 700 $HOME }}} und lässt sich genauso einfach komplett rückgängig machen: {{{#!vorlage Befehl 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. {{{#!vorlage Befehl (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 selbst aber wieder das x-Bit verliehen, das anderen Benutzern das Betreten des Verzeichnisses – nicht aber das Auflisten oder Betrachten des Inhalts – ermöglicht. {{{#!vorlage Warnung 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 abmelden (man kann sich danach gleich wieder anmelden). Ansonsten ist es möglich, dass bereits geöffnete Programme noch Dateien mit der alten Rechtevergabe speichern und diese somit lesbar bleiben. }}} == Voreinstellung ändern == Wenn man die Voreinstellung so ändern möchte, dass die Dateien aller künftig neu angelegten Benutzer nicht von anderen lesbar sind, so geht das im Terminal [1] mit diesen Befehlen: {{{#!vorlage Befehl 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 selbst 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. Die folgende Befehle [1] {{{#!vorlage Befehl cd cd ~ cd ~otto cd $HOME cd /home/otto }}} bewirken alle dasselbe. Die Tilde '''~''' und die [:Umgebungsvariable:] `$HOME` eignen sind dabei besonders für den Einsatz in Skripten, da sie sich an den jeweiligen Benutzer anpassen und das Skript sich so für alle Benutzer verwenden lässt. {{{#!code sh #!/bin/sh cp ~/foo/bar.txt ~/foo/bar.bak cp $HOME/foo/bar2.txt $HOME/foo/bar2.bak }}} [[Anker(bin-Ordner)]] == 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 [:Umgebungsvariable:PATH] Umgebungsvariable aufgelistet werden. Für Skripte unbekannter Herkunft ist dieser Vorschlag ungeeignet, da er zu einer potentiell gefährlichen Rechte-Eskalation führen kann. Um trotzdem komfortabel 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. Das Verzeichnis '''$HOME/bin''' wird, sofern es existiert, nach der Anmeldung automatisch in der PATH-Umgebungsvariable eingetragen. == 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, dass [:Dateimanager:] wie Nautilus und Konqueror diese Einträge standardmäßig nicht mehr anzeigen. Damit '''.hidden''' berücksichtigt wird, muss man sich abmelden und gleich wieder anmelden. Allerdings ist dies kein echter Schutz, da sich mit der Option ''"versteckte Dateien anzeigen"'' der Dateimanager die verborgenen Einträge wieder sichtbar machen lassen. [[Anker(Aendern)]] == Homeverzeichnis ändern == {{{#!vorlage Hinweis 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:Recovery Modus] booten. }}} Einmal erzeugt lässt sich der Name oder der Ort des Homeverzeichnisses 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. {{{#!vorlage Befehl # 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 {{{#!vorlage Tabelle Optionen für usermod zum Umbenennen eines Benutzerkontos +++ Option Bedeutung +++ `-l` Neuer Login-Name 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 findet man in der [:man:Manpage] von usermod. {{{#!vorlage Warnung Mit usermod werden keine Inhalte von Dateien geändert. So kann z.B. nach einer Umbenennung der Home-Partition das E-Mail-Programm Thunderbird nicht starten, da in '''~/.thunderbird/profiles.ini''' noch der Name des alten Homeverzeichnis steht. Hier muss dann manuell umbenannt werden. }}} = Links = * [:Dateimanager:] {Übersicht} Programmübersicht # tag: Einsteiger, System