NFS Share direkt als Video_Dir

  • Hab in der vdr.default das Video- Verzeichnis auf /video gelegt.
    Auf /video wird via fstab (NFS) das Videoverzeichnis des Servers eingehängt.
    Das Einhängen gelingt. Aber der Vollständigkeit halber:

    Code
    /video0 clientIP(rw,no_subtree_check,sync)
    serverIP:/video0                    /video                  nfs              tcp,rw,soft    0       0


    So sieht das im Filesystem aus:

    Code
    drwxr-xr-x  92 haldaemon netdev  4096 2008-09-16 19:03 video


    Wenn ich den VDR nun starten möchte kommt:

    Code
    runvdr: stopping after fatal fail (vdr: can't access video directory /video)


    Vorher habe ich das über Samba gemacht und das Verzeichnis und die Gruppe des VDR angegeben.
    Auf Grund des Wiedergabe/Timeshift Problems möchte ich nun aber auf NFS umsteigen.



    Wie löse ich dieses Problem?

    Ubuntu/Jaunty (Kernel 2.6.28-15) VDR 1.7.9 (im Aufbau), xineliboutput 1.0.90-CSV mit Xine-VDPAU r284 + durchflieger Patch | ASUS M3N78-EM, DVB-S Nexus 2.1, PSOne TFT, IR-Einschalter, Atmolight

  • Scheint nur ein Problem der Zugriffsrechte zu sein.
    Rechte auf dem nfs-server (/etc/exports) auf RW für das Videoverzeichnis Freigeben
    Am besten dann auf der Console prüfen, ob du auf dem NFS-Client auch schreibrechte hast, und dann den VDR wieder starten.


    Gruß
    Hego

    VDR-Sever: ct-VDR 6 und vdrdevel 1.7.0, AthlonXP1600+,256MB RAM, 1.7TB HDD, DVB-S Technotrend 1.6
    VDR-Client:VDR-1.4.4,Sarge, VIA EP ML-6000EA Mini-ITX Motherboard 677MHz, 512MB RAM, 1050GB HDD, DVB-S Technotrend 1.6; Kernel 2.6.16-ct-1
    NFS-File-Server; openSuse10.2: Atholon 3400+, 1GB RAM, 4.0TB HD, :P
    Server: SuSE9.3, Kernel 2.6.11.4-21-7

  • Zitat

    Original von hegoAm besten dann auf der Console prüfen, ob du auf dem NFS-Client auch schreibrechte hast...


    Hmm krass, ich kann wirklich nicht in /video am Client schreiben... aber warum nur??

    Ubuntu/Jaunty (Kernel 2.6.28-15) VDR 1.7.9 (im Aufbau), xineliboutput 1.0.90-CSV mit Xine-VDPAU r284 + durchflieger Patch | ASUS M3N78-EM, DVB-S Nexus 2.1, PSOne TFT, IR-Einschalter, Atmolight

  • Rechte prüfen!

  • Zitat

    Original von magicdragon67
    Rechte prüfen!


    Wessen Rechte?


    Root kann auf dem Client nicht in das Share schreiben...

    Ubuntu/Jaunty (Kernel 2.6.28-15) VDR 1.7.9 (im Aufbau), xineliboutput 1.0.90-CSV mit Xine-VDPAU r284 + durchflieger Patch | ASUS M3N78-EM, DVB-S Nexus 2.1, PSOne TFT, IR-Einschalter, Atmolight

  • Moin,

    Zitat

    Original von BlueIcE
    Root kann auf dem Client nicht in das Share schreiben...


    dafür bräuchtest Du dann auch noch no_root_squash in der /etc/exports des Servers.

  • Zitat

    Original von Delaney
    ...dafür bräuchtest Du dann auch noch no_root_squash in der /etc/exports des Servers.


    Ok, du hast recht. So kann Root jetzt in dem eingehängten Verzeichnis auf dem Client schreiben.
    Aber mein 0815 User, geschweige denn vdr können immer noch nicht schreiben.
    Und VDR startet natürlich auch noch nicht.


    Wie kann ich die Berechtigungen auf das Verz. ändern?
    Die werden doch durch das Einhängen automatisch gesetzt...

    Ubuntu/Jaunty (Kernel 2.6.28-15) VDR 1.7.9 (im Aufbau), xineliboutput 1.0.90-CSV mit Xine-VDPAU r284 + durchflieger Patch | ASUS M3N78-EM, DVB-S Nexus 2.1, PSOne TFT, IR-Einschalter, Atmolight

  • Auf Seite Client muss das /video Verzeichnis für den VDR alles zulassen (rwx)
    Am einfachsten das video Verzeichnis dem vdr zuordnent
    chown vdr:vdr /video
    und dann die Rechte setzten
    chmod ug+rwx /video

    VDR-Sever: ct-VDR 6 und vdrdevel 1.7.0, AthlonXP1600+,256MB RAM, 1.7TB HDD, DVB-S Technotrend 1.6
    VDR-Client:VDR-1.4.4,Sarge, VIA EP ML-6000EA Mini-ITX Motherboard 677MHz, 512MB RAM, 1050GB HDD, DVB-S Technotrend 1.6; Kernel 2.6.16-ct-1
    NFS-File-Server; openSuse10.2: Atholon 3400+, 1GB RAM, 4.0TB HD, :P
    Server: SuSE9.3, Kernel 2.6.11.4-21-7

  • Zitat

    Original von hego
    Auf Seite Client muss das /video Verzeichnis für den VDR alles zulassen (rwx)
    Am einfachsten das video Verzeichnis dem vdr zuordnent
    chown vdr:vdr /video
    und dann die Rechte setzten
    chmod ug+rwx /video


    Aber stifte ich damit nicht chaos auf dem Server?
    Serverseitig gehört das Verz. ja schon vdr:vdr.

    Ubuntu/Jaunty (Kernel 2.6.28-15) VDR 1.7.9 (im Aufbau), xineliboutput 1.0.90-CSV mit Xine-VDPAU r284 + durchflieger Patch | ASUS M3N78-EM, DVB-S Nexus 2.1, PSOne TFT, IR-Einschalter, Atmolight

  • Nein, serverseitig gehört vielleicht das Verzeichnis, dass du exportierst dem user VDR, aber nur dem User "VDR" auf dem Server
    Der User "vdr" auf dem Server ist erst mal nicht der User "vdr" auf dem Client. Die haben erst mal nix miteinander zu tun, Sind ja meist unabhängige Systeme. Im Regelfall stimmt schon die UID auf dem Server und Client für einen User mit dem selben Namen nichtg überein.
    Bei mir gehören alle Dateien auf dem Server dem user "nobody" wenn sie von einem meiner 4 Clients aus angelegt werden. Somit hat bei mir jeder VDR client das Recht auf die Server Dateien zuzugreifen, verändern und löschen.

    VDR-Sever: ct-VDR 6 und vdrdevel 1.7.0, AthlonXP1600+,256MB RAM, 1.7TB HDD, DVB-S Technotrend 1.6
    VDR-Client:VDR-1.4.4,Sarge, VIA EP ML-6000EA Mini-ITX Motherboard 677MHz, 512MB RAM, 1050GB HDD, DVB-S Technotrend 1.6; Kernel 2.6.16-ct-1
    NFS-File-Server; openSuse10.2: Atholon 3400+, 1GB RAM, 4.0TB HD, :P
    Server: SuSE9.3, Kernel 2.6.11.4-21-7

  • Zitat

    Original von BlueIcE
    Serverseitig gehört das Verz. ja schon vdr:vdr.


    sind denn auch die UID/GID des users vdr auf Server und Client identisch?
    Um den eigentlichen Namen kümmert sich nfs nicht.

  • Yohoo!


    Ich glaube, ich muss hier mal ein bisschen Klarheit schaffen bzgl. NFS und Berechtigungen, da da immer wieder Probleme bereitet.


    VORSICHT! LANG!


    Zuerst werde ich mal erklaeren, wie das unter NFS ueberhaupt laeuft, den VDR also nicht betrachten- der kommt erst spaeter dazu.


    Aaaaalso:


    NFS authentifiziert und identifiziert grundsaetzlich nur auf Basis von IP Adressen (okok, auch NIS Namen u.ae., spielt hier aber keine Rolle). D.h. die Benutzer sind NFS erstmal egal.
    Der Server gibt das Verzeichnis also an Rechner frei, nicht an User.


    Haben wir nun also ein Verzeichnis auf dem Server, das wir exportieren wollen, tragen wir es in die /etc/exports mit IP Adresse sowie Parametern ein und starten unseren NFS Server. Parameter erklaere ich spaeter nochmal kurz.
    Ist der gestartet, wartet er (via portmap, gehe ich aber nicht naeher drauf ein) auf Anfragen von Clients.


    Sagt nun Client A zum Server S: "Hey, ich will Dein Verzeichnis /bla/blubb", prueft S ob die IP Adresse von A zur Konfiguration in /etc/exports passt. Passt sie, wird der Zugriff erlaubt und A kann /bla/blubb in seinen lokalen Verzeichnisbaum einhaengen ("mounten").


    Dieser lokale Einhaengepunkt ("Mountpoint") sei jetzt /nfs. D.h. der Inhalt vom Server unter /bla/blubb ist auf dem Client A unter /nfs erreichbar.


    Was passiert nun, wenn ein Nutzer auf dem Client eine Datei lesen oder schreiben will?
    Zuerst werden die Rechte des Einhaengepunktes ueberprueft.


    [EINSCHUB BENUTZERVERWALTUNG LINUX]
    Ach ja, Ihr wisst ja, wie die Benutzerverwaltung unter Linux organisiert ist, richtig? Na, zur Erinnerung:
    Jedem Benutzer ist eine eindeutige ID Nummer zugeordnet, ueber die er identifiziert wird. Der Name spielt eigentlich dafuer keine Rolle.
    UserIDs fangen ueblicherweise bei 500 an. Alles, was darunter liegt, ist eine sogenannte SystemID, die Systemprogramme nutzen um ihre Dienste anzubieten, damit sie nicht als "root" laufen.
    Eine weitere spezielle ID gibt es noch ueber 500: Den "nobody", manchmal auch "nfsnobody" genannt. UserID 65534, also die groesste moegliche.
    Benutzer mit der gleichen ID koennen also auf zwei verschiedenen Systemen voellig verschiedene Namen haben. Und umgedreht. Identifiziert wird immer ueber die ID!
    [EINSCHUB ENDE]



    Beispiel:[wir sind ueberall root, solange nichts anderes erwaehnt wird]
    Neues Verzeichnis auf dem Server:

    Code
    mkdir /srv/test
    ls -al /srv
    drwxr-xr-x   2 root   root   4096 Sep 16 22:54 test

    D.h. das Verzeichnis gehoer dem User "root" und gehoert zur Gruppe "root". Es Darf aber nur vom Benutzer "root" beschrieben werden (rwx), wohingegen Mitglieder der Gruppe root (die aber nicht der User root sind, aufpassen!) das Verzeichnis zwar lesen (=betreten) duerfen, aber nichts aendern (r-x). Das gleiche gilt fuer den Rest der Welt (r-x).
    Nun will ich das exportieren, trage also in meine /etc/export das Folgende ein:

    Code
    /srv/test/      192.168.10.0/24()

    und starte den NFS Server.
    Auf dem Client moechte ich das Ganze nach /nfsmnt haben. Also:

    Code
    mkdir /nfsmnt
    ls -al /| grep nfs
    drwxr-xr-x   2 root   root         4096 16. Sep 23:00 nfsmnt

    Also die gleichen Berechtigungen wie das Verzeichnis auf dem Server. So. jetzt mounten:

    Code
    service portmap start
    mount server:/srv/test /nfsmnt
    drwxr-xr-x   2 root   root         4096 16. Sep 22:54 nfsmnt

    Hat sich also nichts veraendert, ausser das das Verzeichnis jetzt das Serververzeichnis ist. Berechtigungen sind wie gehabt. Komisch wird das Ganze jetzt aber, wenn wir als root dort eine Datei anlegen wollen:

    Code
    touch /nfsmnt/testfile
    touch: kann „/nfsmnt/testfile“ nicht berühren: Das Dateisystem ist nur lesbar


    Hmmm.....ach ja, in der /etc/export steht ja kein "rw" drinnen, also ist das DATEISYSTEM read-only und kuemmert sich ueberhaupt nicht um irgendwelche Schreibrechte- es darf eh nur gelesen werden. Okokok, also /etc/exports geaendert:

    Code
    /srv/test/      192.168.10.0/24(rw)

    und den NFS Server neu starten. Bei einem halbwegs aktuellen System brauchen wir die Schritte auf dem Client jetzt nicht wiederholen. Ihr koennt aber natuerlich gerne.
    Wollen doch mal sehen, ob wir unsere Datei anlegen koennen:

    Code
    touch /nfsmnt/testfile
    touch: kann „/nfsmnt/testfile“ nicht berühren: Keine Berechtigung

    Wie, "keine Berechtigung"? Ich bin doch root und darf gem. den Berechtigungen auch schreiben. Versuchen wir das Ganze mal als Ott0NormalUser:
    Zuerst wollen wir ihm das Ganze auf dem Server mal erlauben:

    Code
    chmod 0777 /srv/test[code]und schauen uns das auf dem Client an:[code]ls -al /|grep nfs
    drwxrwxrwx   2 root   root         4096 16. Sep 22:54 nfsmnt

    Prima, jetzt darf ja jeder alles, richtig? Probieren!

    Code
    su - knebb
    touch /nfsmnt/file
    ls -al /nfsmnt/file
    -rw-r--r--  1 knebb knebb    0 16. Sep 23:15 test

    Prima! Das klappt ja jetzt. Also los, was ist mit root?

    Code
    exit
    touch /nfsmnt/rootfile
    ls -alh /nfsmnt
    -rw-rw-r-- 1 knebb knebb  0 16. Sep 23:17 file
    -rw-r--r-- 1 nfsnobody nfsnobody 0 16. Sep 23:15 rootfile


    Hae? :rolleyes: Wieso gehoert die Datei denn "nfsnobody" und nicht dem User "root"?


    Mist, was ist da falsch? Bug? Noe, viel einfacher. Hier schlaegt "root_squash" zu.
    Ihr erinnert Euch, dass NFS die BenutzerID relativ egal ist? Wenn nun das Verzeichnis wie oben an ein ganzes Netz freigegeben ist, wie kann NFS dann sicher sein, dass wirklich nur "richtige" Nutzer zugreifen? Was, wenn ich mir eine Kiste hinstelle und nicht offiziell genehmigen lasse. Dann kann ich als root auf das NFS System schreiben. Schoenes Sicherheitseinfallstor. Und deshalb vertraut NFS zwar allen Benutzern auf dem anderen System, erlaubt aber normalerweise nicht, dass Dateien als Benutzer "root" geschrieben werden. Und deshalb biegt es alle Schreibzugriffe des Users "root" auf den "nfsnobdy" oder "nobody" um. Bei CentOS ueblicherweise auf die UserID 99, bei SuSE auf 65534.
    D.h. wenn root Dateien auf die Freigabe schreibt, wird die Datei NIE dem Benutzer root gehoeren! Soweit genug verwirrt? :lol2


    Und genau das sind die entscheidenden Parameter bei NFS:

    • root_squash (Standard)
      Biegt den root-User auf "nfsnobody" um.
    • no_root_squash
      Biegt eben nicht um, sondern behaelt die UserID 0
    • all_squash
      Biegt alle Benutzer auf "nfsnobody" um.



    Wenn Ihr nun Problem mit dem VDR und dem Video-Verzeichnis habt, duerft Ihr euch ansehen, welche Berechtigungen das Verzeichnis hat und ob einer der obigen Parameter gesetzt ist. Der VDR-Prozess laeuft ueblicherweise als "root", also bietet es sich an, "all_squash" zu nehmen. Geht aber halt auch anders.


    So, langer Text, wer bis hierhin gelesen hat, moege mir bitte sagen, ob ich noch mehr dazu erklaeren soll oder ob es zu verwirrend war.... :schiel


    Ach ja, das sind meine Einstellungen bei NFS:


    So, jetzt keine Lust mehr. Bei Bedarf mehr! :n8

    Glotze: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
    Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P

  • Hallo Knebb,


    danke für die Mühe! Ist wirklich sehr ausführlich.
    Aber leider verwirren mich doch noch ein paar Kleinigkeiten.


    Zuerst sagst du:

    Zitat

    Identifiziert wird immer ueber die ID!


    Das lässt sich auch schön nachvollziehen an meinem System.
    Auf meinem Server hat der User vdr uid=111 und gid=121.
    Wie üblich ist vdr Eigentümer uid/gid des Aufnahmeverzeichnisses.
    Dieses Aufnahmeverzeichnis via nfs auf einem Client eingehängt,
    ist nun plötzlich der User haldaemon und die Gruppe netdev eigentümer des Verzeichnisses.
    Klar, auf dem Clientsystem hat User haldaemon die id 111 und der netdev die gid 121.
    Jetzt ist mir zumindest klar woher die kommen.


    Aber warum schreibst du später:

    Zitat

    Ihr erinnert Euch, dass NFS die BenutzerID relativ egal ist?

    ???
    So wie es aussieht ist das bei mir der entscheidende Knackpunkt gewesen...


    Ich muss es ja nun entweder hin bekommen, das der vdr Aufnahmen als user nobody schreibt
    oder auf dem Client die UserID's so verändern, das sie mit dem Server übereinstimmen.
    Die Option all_squash bewirkt bei mir irgendwie nichts. Die Dateien haben weiterhin die selben uid/gid owner wie vorher?!

    Ubuntu/Jaunty (Kernel 2.6.28-15) VDR 1.7.9 (im Aufbau), xineliboutput 1.0.90-CSV mit Xine-VDPAU r284 + durchflieger Patch | ASUS M3N78-EM, DVB-S Nexus 2.1, PSOne TFT, IR-Einschalter, Atmolight

  • Zitat

    Originally posted by BlueIcE
    Ich muss es ja nun entweder hin bekommen, das der vdr Aufnahmen als user nobody schreibt oder auf dem Client die UserID's so verändern, das sie mit dem Server übereinstimmen.


    Yepp.

    Zitat


    Die Option all_squash bewirkt bei mir irgendwie nichts. Die Dateien haben weiterhin die selben uid/gid owner wie vorher?!


    Klar. Die bestehenden Dateien werden ja nicht veraendert. Das betrifft ja nur Dateien, die neu erstellt werden.

    Glotze: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
    Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P

  • Ähm... :hilfe


    UserID mit usermod ändern... kein Problem....


    Aber wie kann ich Systemkonten ändern... und vor allem alles was dazu gehört.. Dienste, Dateien, ...???
    Hab so das Gefühl das wird nicht so einfach....


    Die Alternative die VDR Dateien immer auf einen anderen user umzubiegen gefällt mir gar nicht.
    Vor allem müsste das per Script oder so passieren und hätte dann wieder den gleichen Nachteil wie Samba, das das direkte Server/Client Timeshift nicht funktioniert...

    Ubuntu/Jaunty (Kernel 2.6.28-15) VDR 1.7.9 (im Aufbau), xineliboutput 1.0.90-CSV mit Xine-VDPAU r284 + durchflieger Patch | ASUS M3N78-EM, DVB-S Nexus 2.1, PSOne TFT, IR-Einschalter, Atmolight

  • Zitat

    Originally posted by BlueIcE
    Aber wie kann ich Systemkonten ändern... und vor allem alles was dazu gehört.. Dienste, Dateien, ...???
    Hab so das Gefühl das wird nicht so einfach....


    Richtig. Kurz: vergiss es!

    Zitat


    Die Alternative die VDR Dateien immer auf einen anderen user umzubiegen gefällt mir gar nicht.
    Vor allem müsste das per Script oder so passieren und hätte dann wieder den gleichen Nachteil wie Samba, das das direkte Server/Client Timeshift nicht funktioniert...


    Hae? :schiel


    Nochmal: Setze Dein video auf all_squash und mache einmal ein chown -R. Dann haben alle bestehenden Dateien die nfsnobody und alle neuen bekommen sie auch....wo ist das Problem?
    Das Verbiegen geschieht doch durch den NFS vollautomatisch, was willst Du da skripten?

    Glotze: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
    Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P

  • Zitat

    Original von knebb
    Nochmal: Setze Dein video auf all_squash und mache einmal ein chown -R. Dann haben alle bestehenden Dateien die nfsnobody und alle neuen bekommen sie auch....wo ist das Problem?


    Axo, war mir nicht klar das der vdr dann automatisch neue Dateien auch als nfsnobody anlegt.
    Dachte der macht dann wieder vdr:vdr ....


    Aber dann passts ja...



    VIELEN DANK!!!

    Ubuntu/Jaunty (Kernel 2.6.28-15) VDR 1.7.9 (im Aufbau), xineliboutput 1.0.90-CSV mit Xine-VDPAU r284 + durchflieger Patch | ASUS M3N78-EM, DVB-S Nexus 2.1, PSOne TFT, IR-Einschalter, Atmolight

  • Zitat

    Originally posted by BlueIcE
    Dachte der macht dann wieder vdr:vdr ....


    Der vdr macht das ja auch ;)
    Nur der NFS Client/Server macht aus vdr:vdr eben nobody:nobody. Und dann werden erst die Zugriffsrechte geprueft...

    Glotze: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
    Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!