Übertragen / ändern von ACL-Berechtigungen

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

geimist

Benutzer
Sehr erfahren
Maintainer
Add-on Developer
Registriert
04. Jan. 2012
Beiträge
5.966
Reaktionspunkte
1.722
Punkte
234
Hallo zusammen,

ich stehe vor folgendem Problem:
Dateien, welche von synOCR erstellt werden, gehören ja zunächst root:root.
Meine Annahme war, wenn ich die Dateiattribute der Quelldatei auf die Zieldatei übertrage, sollte alles gut sein:
Rich (BBCode):
# Dateirechte Quelldatei:
-rwx------+ 1 scans users 965139 Mar  2 17:37 /volume1/ScanInput/SCAN__001236.pdf
# übertrage die Dateiattribute:
cp --attributes-only -p "$input" "$output"
# Dateirechte Zieldatei:
-rwx------ 1 scans users 1053775 Mar  2 17:37 /volume1/Daten/Daten/Scans/Archiv/_001236.pdf

Allerdings scheint es bei Usern Probleme zu machen (LINK). Ich gehe davon aus, dass hier die erweiterten (ACL) Berechtigungen schuld sind (erkennbar an dem PLUS).

Habt ihr eine Idee, wie man das für ein breites Userumfeld anpassen kann?
 
Zuletzt bearbeitet:
Hätte gesagt dass man das mit getfacl und setfacl 'einfach' übertragen kann. Wobei man dann mal schauen müsste was dort am Ziel dann mit der Vererbung passiert.
 
Stimmt … da war was.
Meine Versuche damit waren nicht sehr vielversprechend, aber ich werde mir das nochmal ansehen.
 
Um Standardlinuxrechte und ACL kopieren zu können, habe ich jetzt keinen anderen Weg gefunden, es so zu machen (wenn jemand einen besseren Vorschlag hat, immer her damit :) ):
Rich (BBCode):
        if echo $( synoacltool -get "$input" ) | grep -q is_support_ACL ; then
            echo "verwende ACL"
            synoacltool -copy "$input" "$output"
            # Dateidatum wird mit synoacltool nicht übertragen, daher noch:
            date=$( ls --full-time "$input" | awk '{ print $6 }' | sed s/-//g )
            time=$( ls --full-time "$input" | awk '{ print $7 }' | awk -F. '{ print $1 }' | sed s/://g | sed "s/^\(.\{4\}\)/\1\./" )
            touch -t ${date}${time} "$output"
        else
        # oder mit Prüfung:
        # elif echo $( synoacltool -get "$input" ) | grep -q "Linux mode" ; then
            echo "verwende Standardlinuxrechte"
            cp --attributes-only -p "$input" "$output"
        fi
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat