
Ich verwende ein Centos 8 Linux mit mehreren Benutzern, die derselben Gruppe angehören und auf eine Anzahl von Ordnern/Unterordnern und Dateien im selben FS (xfs) zugreifen. Ich möchte, dass alle Dateien und Ordner Schreibberechtigung für die Gruppe haben, indem ich umask auf 0002 setze, damit neue Dateien, die vom Benutzer erstellt werden, die richtige Berechtigung haben, aber ich habe Tar und andere komprimierte Dateien, die von Benutzern extrahiert werden. Die extrahierten Dateien behalten die Berechtigung, die sie ursprünglich hatten, und ändern sich nicht, was dazu führt, dass einige Dateien nur Berechtigungen für den Eigentümer und nicht für die Gruppe haben. Ich versuche, eine Möglichkeit zu finden, die Berechtigung automatisch festzulegen, ohne dass der Benutzer ein chmod ausführen muss, um das Schreiben für die Gruppe zuzulassen. Ich habe versucht, g+s auf den Hauptordner zuzuweisen, aber ich kann nur erreichen, dass der neue Ordner die Gruppenberechtigung erbt, nicht die einzelnen Dateien. Ich habe versucht, ACL zu aktivieren, aber ich bekomme wieder nicht hin, dass Dateien die Berechtigung des übergeordneten Ordners erben. So sieht mein Hauptordner aus
drwxrwsr-x+ 4 owner group 4.0K Mar 6 10:26 test
Und der Inhalt nach dem Extrahieren einer tgz-Datei darin
drwxrwsr-x+ 8 owner group 202 Mar 6 09:56 folder1
drwxrwsr-x+ 8 owner group 202 Mar 6 10:12 folder2
aber wenn ich dann den ersten Ordner mit Dateien erreiche, gelten die Dateiberechtigungen nur für den Eigentümer
ll test/folder1
-rwx------. 1 owner group 195K Jun 6 2018 file1
-rwx------. 1 owner group 225K Aug 4 2018 file2
-rwx------. 1 owner group 211K Aug 20 2018 file3
-rwx------. 1 owner group 100K Sep 9 2018 file4
-rwx------. 1 owner group 200K Oct 24 2018 file5
-rwx------. 1 owner group 199K Nov 9 2018 file6
auch nach der Ausführung
setfacl -R -m d:o:rwx test
Dateien ändern ihre Berechtigung nicht
Gibt es eine Möglichkeit, zu erzwingen, dass alle aus einem komprimierten Archiv erstellten oder extrahierten Dateien die Berechtigung vom Hauptordner übernehmen?
Antwort1
Ich suche immer noch nach einer besseren Lösung, aber vorerst habe ich ein Skript erstellt, das die Tar-Ausgabe an den Befehl chmod weiterleitet.
#!/bin/bash -
set -o pipefail
tar xvf "$@" | xargs -rd '\n' chmod 770 --
Mir gefällt das nicht so sehr, weil es schwierig wird, 100 oder mehr Benutzer anzuweisen, einen anderen Befehl zu verwenden, aber wenn ich keine bessere Lösung finde, behalte ich es. Nur zur Info von der Manpage: Tar scheint eine Option zu haben, die die Dateiberechtigung ignorieren sollte.
--no-same-permissions
aber scheint nur zu funktionieren, wenn die Umask-Berechtigung restriktiver ist als die für die extrahierten Dateien. Ich frage mich, ob es ein Fehler ist
Antwort2
Sie können diestar
Implementierung vontar
und seine -chmod
Option zum Festlegen der Berechtigungen für Dateien beim Extrahieren:
star -x -o -f file.tar -find -chmod ug+rwX