Ordnerrechte automatisch ändern

Sprint

Erfahrenes Mitglied
Hallo zusammen,

ich habe mir vor einiger Zeit einen eigenen Fileserver auf Debian mit OMV aufgebaut. Soweit funktioniert alles wunderbar, nur iTunes hat ein Problem damit. Wenn neue Podcastfolgen heruntergeladen werden, will iTunes die erst in einen temporären Ordner schreiben, gibt dem aber die Rechte 675 und kann dann selbst nicht da rein schreiben. Wenn man schnell genug die Rechte auf 755 ändert, funktioniert es.
Nachdem alle Versuche über Samba nicht gebracht haben, hab ich mir eine Routine überlegt, die den Zielordner überwacht und allen neu kreierten Ordnern die korrekten Rechte gibt.
Code:
inotifywait -m -e create /musik |
while read ordner; do
    if [ -d /musik/$ordner]
        then chmod 755 /musik/$ordner;
    fi
done
Das Script ist aktiv. In den Logfiles finde ich keine Einträge, weder Fehler noch Ausführungen. Wo ist denn da der Fehler?
 
Lösung
Wie sind denn die Rechte des übergeordneten Ordners?

Required permission to create directory
So, to be able to create a new file or directory inside a directory you need:
  • Execute permissions on every parent directory of your target directory.
  • Execute and write permissions for the target directory.
Und "Execute" ist die 7 in 7XX

EDIT: Mal als test, da ja Mac auf *Nix basiert:
Anstatt auf den Samba-Share zu speichern, speicher auf Local auf dem Mac, lass aber ne Konsole offen für das Zielverzeichnis.
In dem Moment wo das temp. Verzeichnis erzeugt wird gib mal "ls -al" ein.
Wenn da auch die 675 erscheint, dann könnte es tatsächlich an iTunes liegen (was ich aber bezweifel)

EDIT2: Seh's gerade, dass du...
was sagt denn umask ?
und wenn das Programm den Ordner erzeugt hat
getfacl -access /dein/ordner
kommt was ?
 
umask bringt 0022
und getfacl bringt gar nichts

Und kann ich aus deiner Antwort lesen, daß das eigentlich laufen müßte?
 
Zuletzt bearbeitet:
da es iTunes nicht für Linux gibt, gehe ich mal davon aus, dass iTunes auf nem Mac läuft, welcher mit dem Samba-Share verbunden ist.
Abhängig davon, welche Rechte der sich vom Mac verbindende User auf dem Share hat, denke ich eher es ist ein Problem mit der User-Config auf dem File-Server und/oder deiner smb.conf.
Ich glaube mich an eine Option "Force Create Mask" für die smb.conf zu erinnern.

EDIT: Würde eher 775 als Rechte vergeben
 
Richtig, iTunes läuft auf einem Mac.

An den Samba Einstellungen kann es eigentlich nicht liegen.
Code:
[musik]
path = /HansRAID/musik/
guest ok = no
guest only = no
read only = no
browseable = yes
inherit acls = yes
inherit permissions = no
ea support = no
store dos attributes = no
vfs objects =  fruit streams_xattr
printable = no
create mask = 0664
force create mode = 0664
directory mask = 0775
force directory mode = 0775
hide special files = yes
follow symlinks = yes
hide dot files = yes
valid users = "musik"
invalid users =
read list =
write list = "musik"

"Force Create Mask" hatte ich schon mal ausprobiert, dann konnte sich komischerweise der Mac nicht mehr anmelden. Außerdem werden alle anderen Ordner, egal ob bei Musik, Podcasts oder anderem, mit den korrekten Rechten erstellt. Es sind einzig die temporären Podcast Ordner, bei denen es nicht stimmt. Darum gehe ich eigentlich eher von einem Bug aus, denn 675 macht ja eigentlich auch keinen Sinn.
 
Wie sind denn die Rechte des übergeordneten Ordners?

Required permission to create directory
So, to be able to create a new file or directory inside a directory you need:
  • Execute permissions on every parent directory of your target directory.
  • Execute and write permissions for the target directory.
Und "Execute" ist die 7 in 7XX

EDIT: Mal als test, da ja Mac auf *Nix basiert:
Anstatt auf den Samba-Share zu speichern, speicher auf Local auf dem Mac, lass aber ne Konsole offen für das Zielverzeichnis.
In dem Moment wo das temp. Verzeichnis erzeugt wird gib mal "ls -al" ein.
Wenn da auch die 675 erscheint, dann könnte es tatsächlich an iTunes liegen (was ich aber bezweifel)

EDIT2: Seh's gerade, dass du "inherit permissions" auf "no" hast. Setz das mal auf Yes, Setze beide "mask" auf 775, und kommentier mal beide "mode"'s aus

Tabelle 8.2
https://www.samba.org/samba/docs/using_samba/ch08.html
 
Zuletzt bearbeitet:
Lösung
Die Änderungen an "inherit permissions" und "mask" waren die Lösung. Die neuen Folgen werden jetzt korrekt geladen. Komischerweise aber ohne die temporären Ordner, die sonst immer erstellt werden.

Aber egal, Hauptsache, es funktioniert jetzt.
Vielen Dank für deine Hilfe!
 

Neue Beiträge

Zurück