gemounteter NFS-Share: Datei von Benutzer A geschrieben soll von Benutzer B veränderbar sein.

  • So nachdem ich jetzt schon 3 Tage rummache hoffe ich doch das hier Linuxcracks sind.

    Ich habe den emby Server bei mir auf meinem Odroid C2 der mit DietPi aufgesetzt ist laufen und auch tvheadend. Jetzt habe ich mir ein Script geschrieben welches mir nach einer Aufnahme die NFO Datei generiert. Da das Script von TVHeadend aufgerufen wird läuft es als Benutzer hts. Emby läuft als Benutzer emby. Wenn jetzt emby versucht die NFO zu aktualisieren spukt emby einen Fehler aus weil es keine Berrechtigung dazu hat.Ich habe alle user in eine Gruppe geworfen und der Gruppe volle Rechte gegeben. Trotzdem ist es so wenn ich mich z.B. mit dem user hts anmelde und eine Datei erstelle ich diese danach mit user emby nicht speichern kann.

    Was mache ich falsch wo liegt das Problem? ?(

  • zeig uns doch mal ein ls -al von dem Ordner in dem die Datei liegt

    Bei mir sieht das dann ungefähr so aus.

    Code
    davu@davu-laptop1:~/test$ ls -al
    insgesamt 20
    drwxrwxr-x  2 davu davu 4096 Apr  1 16:58 .
    drwxr-xr-x 44 davu davu 4096 Apr 25 08:55 ..
    -rwxrwxr-x  1 davu davu   71 Mär 21 20:03 01-restart.power.jpg
    -rwxrwxr-x  1 davu davu  408 Mär 31 11:13 abc
    -rw-rw-r--  1 davu davu 3353 Mär 31 14:55 tvh


    Wichtig ist in dem Fall dieser Bereich: "drwxrwxr-x" also der Bereich vor dem "davu davu"

    das erste Zeichen ("-" oder "d") zeigt den Typ der Datei an: "-" = normale Datei .... "d" = Ordner

    Dann kommt 3 mal die Folge "rwx" "r"= read, "w" = write und "x" = execute (ausführen)

    Die ersten 3 "rwx" stehen für den Eigentümer der Datei, die nächsten für die Gruppe und die letzten 3 für "alle anderen"

    schauen wir uns also nun mal das hier an: "-rwxrwxr-x 1 davu davu 408 Mär 31 11:13 abc"


    "-" = normale Datei, die dem Benutzer "davu" in der Gruppe "davu" gehört

    ersten 3 "rwx" = Benutzer "davu" darf die Datei lesen, schreiben und ausführen

    zweiten 3 "rwx" = Gruppe "davu" darf die Datei lesen, schreiben und ausführen (also auch alle Benutzer, die dieser Gruppe angehören oder Mitglied der Gruppe sind).

    letzten 3 "rwx" = "alle anderen" dürfen die Datei lesen und ausführen, aber nicht darin schreiben

    Um eine Datei für alle verfügbar zu machen, musst du die Berechtigungen dieser Datei ändern oder den Benutzer einer Gruppe hinzufügen. Unter Linux geht das mit dem Befehl "chmod" und einer Zahlenkombination. Dieser Artikel ist da recht hilfreich:

    https://wiki.ubuntuusers.de/Rechte/

    Ggf kannst du den unser "emby" auch einer anderen Gruppe hinzufügen.

    Wertschätzung kostet nichts, aber sie ist von unschätzbarem Wert.

  • Dank Dir erstmal. Liefer ich alles heute abend nach...

    Habe mir jetzt erstmal nen ganz blöden Workaround geschrieben. Ein Cronscript das die Dateien im Minutentakt durchsucht und dann den Besitzer ggf. ändert.

    Will das aber sauber haben...

  • Dank Dir @freaksworth aber auch das hatte ich versucht und kam nicht zum Ziel. Hatte glaube ich umask 002 und umask 000 versucht aber ging auch nicht. Des weiteren ACL aber getfacl geht setfacl kommt Error obwohl in Konfig facl=y. Also kam ich da auch nicht weiter...

    Wie gesagt bin im Moment auf Arbeit. Heute Abend reiche ich alle Infos nach.

  • Ok dann fange ich mal an...
    Also ls -al sieht so aus:

    Code
    -rwxrwsr-x 1 emby emby  3148770452 Apr 18 06:18 Sturm der Liebe - S12-E2667 - 2017-04-18 - 06-30.ts
    -rwxrwsr-x 1 emby emby        2610 Apr 19 00:00 Sturm der Liebe - S12-E2668 - 2017-04-18 - 08-05.nfo
    -rwxrwsr-x 1 emby emby       29781 Apr 18 07:17 Sturm der Liebe - S12-E2668 - 2017-04-18 - 08-05-thumb.jpg
    -rwxrwsr-x 1 emby emby  2867186872 Apr 18 07:51 Sturm der Liebe - S12-E2668 - 2017-04-18 - 08-05.ts
    -rw-rw-rw- 1 hts  emby           0 Apr 24 21:27 test
    -rwxrwsr-x 1 emby emby        5311 Apr 23 01:22 tvshow.nfo


    Die Datei um die es mir geht ist z.B. die test Datei. Die wurde vorher von mir mit dem Benutzer hts welches tvheadend entspricht angelegt. Da das Script dann unter dem tvheadend Nutzer läuft würde eine Datei von meinem Script genau so abgelegt werden.

    Ich habe den Benutzer hts in die Gruppe emby hinzugefügt.

    Wenn ich mich jetzt per bash als Benutzer emby welches meinem emby-server Benutzer entspricht einlogge und genau diese test Datei mit nano test versuche zu ändern und abzuspeichern bekomme ich ein Permission denied.

    Hier ein Auszug aus meiner /etc/group


    Code
    emby:x:112:hts,emby
    hts:x:113:emby,hts


    umask ist auf 0002

    eine /etc/exports kann ich bei mir nicht finden.

    Hier vielleicht noch die Ausgabe von mount:

    Code
    192.168.177.8:/mnt/disk1 on /mnt/nfs_disk1 type nfs (rw,relatime,vers=3,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.177.8,mountvers=3,mountport=2049,mountproto=udp,local_lock=none,addr=192.168.177.8)
  • Klar aber tvheadend hat als standard user hts. hts habe ich schon versucht zum root zu machen aber das ging auch nicht. Folglich kann ich mit dem user hts auch kein chown machen.

    Ich versuche jetzt mal dem script die Berrechtigung als su für alle Nutzer zu geben. Mist hatte ich gestern irgendwo gelesen, aber nun isses weg.

    Aber so ganz sauber finde ich das auch nicht. Wenn in ein paar Tagen mein neuer Odroid XU4 kommt muss ich eh alles wieder neu aufsetzen und dann tappe ich bestimmt wieder in die gleiche Falle....

    EDIT:
    Also visudo wars...
    habe hier folgendes testweise eingetragen:

    Code
    hts     ALL=(ALL:ALL) ALL

    wenn ich jetzt
    chown emby test eingebe nach dem ich den Benutzer mit su hts gewechselt habe bekomme ich aber trotzdem folgende Ausgabe:

    Code
    chown: der Eigentümer von „test“ wird geändert: Die Operation ist nicht erlaubt

    Einmal editiert, zuletzt von bgx (25. April 2017 um 21:20)

  • Also ich hab gestern noch einiges probiert, aber leider ändert das nix. Ich komme hier echt nicht weiter.
    Das macht mich wahnsinnig. Das kann doch nicht so irre schwer sein? Oder ich stell mich wirklich viel zu blöd an.

  • Ich habe jetzt mal auf das Script das setuid Bit gesetzt mit chmod u+s <filename>

    Wenn ich das Script nun von tvheadend starten lasse bekomme ich auch die Meldung

    chown: der Eigentümer von „/mnt/nfs_disk1/share/TV/test.nfo“ wird geändert: Die Operation ist nicht erlaubtDas kann doch alles nicht war sein. Ich kapier das nicht.

  • Liegt das vielleicht irgendwie an DietPi? Das hier irgendwie ein Sicherheitsriegel drin ist? Denn wenn ich als Nutzer hts sudo chown emby Test z.b. eingebe bekomme ich immer

    hts@DietPi:/tmp$ sudo chown emby test

    Wir gehen davon aus, dass der lokale Systemadministrator Ihnen die
    Regeln erklärt hat. Normalerweise läuft es auf drei Regeln hinaus:

    #1) Resprektieren Sie die Privatsphäre anderer.
    #2) Denken Sie nach bevor Sie tippen.
    #3) Mit großer Macht kommt große Verantwortung.

    [sudo] password for hts:
    hts@DietPi:/tmp$

    Und das obwohl ich mit visudo kein Passwort eingestellt habe.

    Gesendet von meinem CARRERA mit Tapatalk

    EDIT:

    Oder hat sonst wer eine Lösung wie ich das Problem Lösen kann?

    TVHeadend ist mit Benutzer hts angemeldet. Dieses startet ein Script um die Infos in eine NFO-Datei zu schreiben. Danach muss Emby-Server mit dem User Emby aber die Datei beschreiben können.

    Hat einer eine Idee wie ich es schaffe die NFO von beiden schreibbar zu bekommen?
    Wie gesagt es sind beine Nutzer in der gleichen Gruppe eingetragen, aber es klappt nicht...

    Einmal editiert, zuletzt von bgx (27. April 2017 um 09:09)

  • Ohleck ich glaub ich habs.

    Habe übersehen das visudo immer der letzte Eintrag zählt. Zumindest über visudo konnte ich jetzt die Rechte abändern so das ich nach erstellen der Datei per Script chown auf den Benutzer emby machen kann.

    Hätte ich mir zwar auch anders gewünscht aber das lass ich dann erst mal so da es den zweck erfüllt.

  • Glückwunsch :)

    Also woran es hängt, kann ich auch nicht sagen. Ich hab sowas ähnliches gestern auf meinem dietpi ausprobiert und da klappte es. (allerdings lokal ohne nfs Server)
    Aber hauptsache es geht jetzt. Letzte Alternative wäre noch gewesen, wenn du other noch alle Rechte gegeben hättest.

Jetzt mitmachen!

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