Homeverzeichnis als Softlink

Hinweis: In dem Thema Homeverzeichnis als Softlink gibt es 13 Antworten auf 2 Seiten. Der letzte Beitrag () befindet sich auf der letzten Seite.
  • Hallo allerseits.


    Ich verzweifle gerade beim Einrichten meines Rechners und benötige vielleicht eure Hilfe.


    Was möchte ich machen?
    Einen Rechner mit OpenSuse Leap 42.1 aufsetzen, bei dem das Verzeichnis /home nur ein Softlink ist, entweder
    * auf eine lokale Partition, die als /localhome eingehängt wird, oder
    * auf ein Verzeichnis, welches per NFS freigegebene Homeverzeichnisse von einem Server mountet.


    In diesem Thread soll es zunächst um den ersten Punkt gehen. Der scheitert nämlich schon.


    Bisher habe ich auf diesem Rechner Ubuntu 14.04 verwendet und da hat das super funktioniert. Darum bin ich zuversichtlich, dass openSuse das auch kann.


    Was habe ich gemacht?
    Leap per USB-Stick installiert. Dabei eine Root-Partition (/) und eine Home-Partition (/localhome) angelegt. Installation hat super funktioniert. Leap gestartet, alles läuft.
    Als root in der Konsole habe ich dann folgendes gemacht:


    Bash
    mkdir /local_home/local_admin
    cp -r /home/local_admin/* /local_home/local_admin
    chown local_admin:users /local_home/local_admin
    chown -R local_admin:users /local_home/local_admin/*
    
    
    rm -r /home
    ln -s /local_home /home


    Was ist der Fehler?
    Ich habe anschließend das System neugestartet, der Login-Screen vom SDDM kommt, und mein local_admin wird noch angezeigt (der holt sich die user vermutlich aus /etc/passwd).
    Anschließend das Passwort eingegeben. Daraufhin wird aus dem Mauszeiger ein Kreuz (ich kann es noch bewegen) und sonst passiert nichts. Ein schwarzer Bildschirm.


    Den Fehler Rückgängig machen...
    Ich kann die Änderungen wieder Rückgängig machen und alles funktioniert wieder:

    Bash
    # als root
    rm /home
    mkdir /home
    mkdir /home/local_admin
    chown local_admin:users /home/local_admin
    #als local_admin
    cp -R /etc/skel/* /home/local_admin/

    Ich finde den Fehler einfach nicht. Die Berechtigungen sollten stimmen.


    Sonstige Bemerkungen

    Ich bin in Yast auf ein Menü gestoßen, welches das Einrichten von NIS-Usern und NFS-Homes anbietet, quasi genau das was ich vor habe. Das habe ich auch mal versucht, aber es wurde mit einem unbekannten Fehler abgebrochen. Hat jemand Erfahrungen damit gemacht? Ist das die zu bevorzugende Variante für mein Vorhaben?


    Besten Dank schonmal.

    Für den Inhalt des Beitrages 97691 haftet ausdrücklich der jeweilige Autor: max3000

  • Du hast kein "/home" Verzeichnis gemountet. Linux/openSuse erwartet beim Start aber ein gemountetes "/home" Verzeichnis.


    Hier mal mein Laptop:

    Code
    NB01:~ # df -h
    Filesystem      Size  Used Avail Use% Mounted on
    devtmpfs        3.9G  4.0K  3.9G   1% /dev
    tmpfs           3.9G   51M  3.9G   2% /dev/shm
    tmpfs           3.9G  2.3M  3.9G   1% /run
    tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
    /dev/sdb3       114G   11G   97G  11% /
    /dev/sda1       459G  1.1G  434G   1% /home
    /dev/sdb1       156M  128K  156M   1% /boot/efi
  • Danke für die Antwort mit Bild. Ich war allerdings auf dem Stand, dass wenn man kein Home-Verzeichnis mountet, automatisch ein Home-Verzeichnis auf der Root-Partition (/) angelegt wird. Oder hat sich das geändert?
    Was bei dir als /home gemountet wird, wird bei mir im Prinzip nur als /localhome gemountet und per Softlink wollte ich so tun, als wäre /localhome tatsächlich /home.

    Für den Inhalt des Beitrages 97695 haftet ausdrücklich der jeweilige Autor: max3000

  • Das "Heimatverzeichnis" ist immer ein Verzeichnis auf "/home". Ohne weitere Angaben werden dann die Eigentlichen Benutzerverzeichnisse dort gespeichert.
    Fall 1:

    • Mountpunkt "/" ist /dev/sda1
    • Mountpunkt "/home" ist /home

    /home/Nutzer1/ ist also eigentlich /dev/sda1/home/Nutzer1


    Fall 2:

    • Mountpunkt "/" ist /dev/sda1
    • Mountpunkt "/home" ist /dev/sda2

    /home/Nutzer1/ ist eigentlich /dev/sda1/dev/sda2/Nutzer1 (zugegeben, ausgeschrieben siehts doof aus, aber ich hoffe Du verstehst, was ich ausdrücken will)


    Im Prinzip brauchst Du nur Deine NFS Freigabe in der fstab als "/home" mounten.

  • Das ist falsch.


    Es ist völlig egal, wo die Homes der einzelnen User liegen.
    Die können sogar von User zu User in völlig verschiedenen Teilen des Verzeichnisbaumes sein, und von egal wo egal wie gemountet sein.


    Einzig und alleine erreichbar müssen sie sein.


    Die jeweiligen Homeverzeichnisse werden in der /etc/passwd zugeordnet.
    Das Format dieser Datei ist in man 5 passwd erklärt.
    ( die Fünf bezeichnet den Katalog/Kapitel der Manuals; in 5 stehen die Formate von Conf und ähnlichen Dateien; man man zu lelsen lohnt auch. (Das MANual zu MAN )


    Es genügt also für die jeweiligen User obige Datei entsprechend zu ändern.


    Ich mache das immer mit vi (Natürlich tut es jeder andere Editor auch)
    Es gibt aber natürlich auch einen Befehl dafür usermod
    man usermod gibt Auskunft


    Am Rande: Deinem Code:

    Code
    chown local_admin:users /local_home/local_admin
    chown -R local_admin:users /local_home/local_admin/*


    kannst du zusammenfassen zu:

    Code
    chown -R local_admin:users /local_home/local_admin/

    Wir werden doch nicht freiwillig eine Zeile zu viel tippen?!
    Da sei unsere intelligente Faulheit vor!

  • Ich denke, das Problem dürfte sein, dass "/home" ein richtiges Verzeichnis und kein symbolischer Link sein darf. Aber die Unterverzeichnisse (Also die Anmeldenamen/User) dürfen dann wieder symbolische Links sein.
    Man sieht ja zB auch in Dolphin einen Unterschied zwischen einem "realen Verzeichnis" und einem Verzeichnis, das nur ein symbolischer Link ist.

  • Nein. Das ist falsch.


    Du kannst das gerne mit einem neuen User einfach ausprobieren.
    Es ist völlig egal.


    Es gibt nur sehr, sehr wenige Sonderfälle, in denen der kernel zwischen einem Link und einem echten File unterscheidet. Das sind i.d.R. Programme, die Links selbst bearbeiten, lesen oder analysieren.
    Für Otto-Normal-Aktionen gibt es keinen Unterschied zwischen einem Link und einem echten File.
    Getreu dem Grundsatz Everything is a file! sind sogar Geräte "ganz normal" lesbare Dateien.


    Zu dem Problem in diesem Thread steht Lösung und Erklärung in meinem vorigen Post.


    Nicht irgendwas denken und glaube.
    Lesen und ausprobieren.

  • Offenbar scheint es aber mit symbolischen Links nicht zu funktionieren, denn dass hat er ja schon gemacht. Er müsste statt symbolischer Links also nur die "/etc/passwd" entsprechend editieren.


    Code
    USER01:x:1000:100:Der erste Benutzer:/local_home/USER01:/bin/bash
    USER02:x:1001:100:Der zweite Benutzer:/local_home/USER02:/bin/bash
    USER03:x:1002:100:Der dritte Benutzer:/local_home/USER03:/bin/bash