Home-Verzeichnisse automatisch anlegen

HOME-Verzeichnisse, also das „private“ Heimatverzeichnis (in welchem jeder Benutzer in Linux Vollzugriff hat/haben sollte), sollten standardmäßig der Einstiegspunkt eines jeden Logins sein. Unter Umständen kann es hier jedoch zu Schwierigkeiten kommen, beispielsweise wenn das HOME-Verzeichnis zuvor nicht angelegt worden ist. Dies kann explizit dann der Fall sein, wenn die Benutzer nicht lokal verwaltet werden, sondern aus einem Active Directory Verzeichnisdienst ausgelesen werden.
Wie wir mit diesem Problem umgehen und uns auch ohne nachträglichem manuellem Erzeugen des HOME-Verzeichnisses eines automatisch erstellen lassen können, schauen wir uns im folgenden an.

Fehlermeldung

Kommt es beim Login oder dem Wechsel auf einen anderen Benutzer zu einem Fehler wie diesen hier …

… sind wir angeraten die Existenz dieses Ordners zunächst einmal zu überprüfen:

ls -la /home/

Taucht der betreffende Ordner nämlich nicht auf (bzw. sind die Zugriffsrechte falsch gesetzt), stehen uns nun folgende Optionen zur Verfügung:

Manuelles Erzeugen des HOME-Verzeichnisses

Die simpelste aber auch umständlichste Lösung wäre es, das Verzeichnis einfach manuell von Hand anzulegen:

### HOME-Verzeichnis anlegen
sudo mkdir /home/urmel/

### Berechtigungen setzen
sudo chown urmel:urmel /home/urmel/
sdo chmod 700 /home/urmel/

Wichtig ist es nach dem Anlegen des Verzeichnisses natürlich auch, den Besitzer samt Gruppe und die Berechtigungsmaske entsprechend zu setzen (siehe obiger Code-Block).
Anschließend wird der Inhalt des Skeleton-Ordners kopiert. Der folgende Befehl kopiert sämtliche Dateien (versteckte sowie nicht verstecke) von /etc/skel/ nach /home/urmel:

sudo cp -r /etc/skel/. /home/urmel

Die Besonderheit an dem Verzeichnis /etc/skel ist es, dass bei der automatischen Erzeugung eines HOME-Verzeichnisses (beispielsweise durch den Befehl useradd -m) dessen Inhalt mit in das neue Heimatverzeichnis kopiert wird. Dies ist nützlich, um beispielsweise eine bestimmte Konfiguration zu gewährleisten.
Dieser Lösungsansatz ist jedoch dahingehend problematisch, dass er zum einen viel Zeit in Anspruch nimmt und er sich auch nicht automatisieren lässt. Zwei Möglichkeiten der automatischen Erzeugung folgt nun.

Automatische Erzeugung mit /etc/login.defs

Die nächste Methode funktioniert leider nur mit neu anzulegenden Benutzern, bzw. für Benutzer, die noch nie auf der Maschine angemeldet waren.
Hierfür steht uns die Datei /etc/login.defs zur Verfügung. Diese ist eine zentrale Konfigurationsdatei für die Benutzer- und Passwortverwaltung. So lässt sich dort u.a. auch bestimmen, ob und mit welchen Zugriffsberechtigungen HOME-Verzeichnisse angelegt werden. Sucht hierfür den entsprechenden Parameter bzw. tragt ihn folgendermaßen ein (und vergesst hinterher nicht die Datei zu speichern):

### Öffnet die Datei
sudo nano /etc/login.defs

### Sorgt dafür, dass dieser Parameter vorhanden ist
CREATE_HOME     yes

Dadurch, dass diese Datei während der Laufzeit eingelesen wird, muss kein Dienst neugestartet werden.
Wie eingangs erwähnt, funktioniert diese Methode lediglich für Benutzer, die noch nie an dem System angemeldet waren. Bestehende Benutzer sind von dieser Anpassung nicht betroffen.

Automatische Erzeugung mit PAM

Die dynamischste Methode um sowohl noch nie angemeldete, als auch bereits angemeldete Benutzer (die jedoch ohne HOME-Verzeichnis dastehen) ein Heimatverzeichnis zu spendieren, bietet uns PAM. Um PAM die benötigte Funktion zu entlocken tragen wir die folgende Zeile in die Datei /etc/pam.d/common-session ein:

### Öffnet die Datei ...
sudo nano /etc/pam.d/common-session

### ... und fügt dort die folgende Zeile ein
session required pam_mkhomedir.so skel=/etc/skel/ umask=0077

Die Datei common-session ist lediglich für SSH-Logins zuständig. Soll die automatische Erstellung des HOME-Verzeichnisses beispielsweise auch beim Login über GDM stattfinden, müsstet ihr die Zeile unter /etc/pam.d/gdm-password eintragen (oder in die PAM-Datei, die für den Login des jeweiligen Dienstes zuständig ist).

Fazit

Wie wir sehen, gibt einige Möglichkeiten, das HOME-Verzeichnis nachträglich automatisch erstellen zu lassen. Gerade in Umgebungen, in denen mit Verzeichnisdiensten gearbeitet wird, kann man so leicht sicherstellen, dass jeder Benutzer ein, nach den eigenen Anforderungen, eingerichtetes Heimatverzeichnis erhält.

Bildquellen:
Wohnzimmer-Bild von Natalia Lavrinenko auf Pixabay
Tux-Bild von Clker-Free-Vector-Images auf Pixabay

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen