Gemeinsames Homeverzeichnis für mehrere User

Aus

Gemeinsame Home-Verzeichnisse

Normalerweise hat jeder User der Diskstation resp von Linux sein eigenes Homeverzeichnis. Dieses wird dann mit chmod 0600 abgesichert. Zu Hause in unserem Netzwerk hängen 2 verschiedene Kisten mit insgesamt 5 Betriebssystemen (Win XP, Vista, Ubuntu, Sun Solaris und noch ein FreeBSD). Für alle diese verschiedenen User wollte ich nicht ein eigenes Home Verzeichnis, sondern ein gemeinsames für alle (ja ich weiss ich hätte auch allen Usern das gleiche PW und Username geben können).

Solche Änderungen an der Diskstation erfordern teilweise tiefe Eingriffe in das System.
Bei Fehlern kann dies zur Neuinstallation der Diskstation inkl Datenverlust führen.

>>>> Alles folgende macht ihr auf eigenes Risiko. Macht Backups von allen Files bevor ihr irgendetwas daran ändert! <<<<

Do it

Erstmal müssen alle entsprechenden Benutzer via DS-Manager angelegt werden. Dabei sollten diese Benutzer auch einer neu zu erstellenden Gruppe angehören, wo nur SIE Mitglieder sind (nehmen wir mal Home)

Dann sollte man ein Verzeichnis für die Homes auf der Konsole in /volume1 erstellen

# mkdir /volume1/home

In diesem Verzeichnis wird dann für den Hauptuser sein Home angelegt

# mkdir /volume1/home/user1

Dieses ist das einzig existierende Home Verzeichnis. Die restlichen "Verzeichnisse" sind nur Links auf dieses. Also muss man für jeden weiteren User in /volume1/home einen Link erstellen. Und das geht so

# ln -s /volume1/home/user1 /volume1/home/user2

Danach sollte ein

# ls -all /volume1/home

in etwa folgendes ergeben

drwxr-xr-x  2 root    root  4096 Sep  8 21:04 user1
lrwxrwxrwx  1 root    root    19 Sep  8 21:05 user2 -> /volume1/home/user1
lrwxrwxrwx  1 root    root    19 Sep  8 21:07 user3 -> /volume1/home/user1

Das kann man für beliebige weitere User so machen. Jetzt besteht noch das Problem, dass das eigentliche Verzeichnis noch mit falschen Rechten und Eigentümer unterwegs ist. Die Rechte und Eigentümerschaft der Links können nicht geändert werden und sin okay so. Jedoch muss man noch die Rechte von user1 anpassen. Und das geht so:

# touch /volume1/home/user1/test.txt
# chmod -R 0770 /volume1/home/user1
# chown -R user1:Home /volume1/home/user1
# ls -all /volume1/home

danach sollte die Ausgabe so ausschauen

drwxrwx---  2 user1   Home  4096 Sep  8 21:04 user1
lrwxrwxrwx  1 root    root    19 Sep  8 21:05 user2 -> /volume1/home/user1
lrwxrwxrwx  1 root    root    19 Sep  8 21:07 user3 -> /volume1/home/user1

Abschluss

Jetzt müsst ihr noch die /etc/passwd kontrollieren und schauen ob die Homeverzeichnisse für die jeweiligen User korrekt sind. Dabei besteht ein Eintrag aus einer Zeile pro User. Die einzelnen "Felder" eines Users sind durch : abgetrennt. Wichtig ist in diesem Zusammenhang alles rechts des zweitletzten Doppelpunkts Im ersten Zwischenraum steht der Pfad zum Homeverzeichnis und nach dem letzten Doppelpunkt der Pfad zur Login Shell. Als Home für user2 gebt ihr /volume1/home/user2 an und mit den weiteren Usern verfahrt ihr analog mit ihren Benutzernamen im Pfad. Um das ganze zu testen kann man, wenn man eine gültige Shell für den Benutzer angegeben hat, via Telnet oder ssh einloggen und sollte im Homeverzeichnis landen. Ein ls sollte die oben angelegte Datei test.txt zum Vorschein bringen.

Anwendung

Gemeinsame Homeverzeichnisse find ich sehr nützlich. Wenn man sich z.B. Samba via ipkg installiert können die User auf die gemeinsamen Dateien zugreifen. Oder bei einem eigenen POP3-Server, der die E-Mails von externen Accounts sammelt und sie lokal zur Vefügung stellt. Mailboxen befinden sich normalerweise in den Homeverzeichnissen der jeweiligen User und damit ist es sonst nicht ohne weiteres möglich, dass mehrere User auf dasselbe Homeverzeichnis zugreifen können. Ich habe den Dovecot Mailserver auf der DS installiert und der holt die E-Mails ab und sortiert sie in ein gemeinsames Postfach für alle meine eigenen User.