Übertragen / ändern von ACL-Berechtigungen

Status
Für weitere Antworten geschlossen.

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.371
Punkte für Reaktionen
1.188
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:

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.135
Punkte für Reaktionen
898
Punkte
424
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.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.371
Punkte für Reaktionen
1.188
Punkte
234
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