Frage Dateien kopieren und Berechtigungen des Zielordners erben


Wenn ich Dateien auf eine USB-Festplatte oder ein anderes Konto auf derselben Festplatte kopiere, werden die Berechtigungen nicht auf das Ziel geändert. Wenn ich beispielsweise Dateien von Konto X in einen Ordner von Konto Y kopiere, bleiben die Berechtigungen für die Dateien immer noch von Konto X.

Ich mag es, Dateien zu kopieren und die Berechtigungen auf Konto Y zu ändern.

Wie mache ich das?


1
2018-04-24 06:53


Ursprung




Antworten:


Sie können verwenden ACL und der Befehl setfacl dafür.

ACL-Einträge

ACL-Einträge bestehen aus einem Benutzer (u), einer Gruppe (g), einem anderen (o) und einer effektiven Rechte-Maske (m). Eine effektive Rechte-Maske definiert die restriktivste Berechtigungsstufe. setfacl legt die Berechtigungen für eine bestimmte Datei oder ein bestimmtes Verzeichnis fest. getfacl zeigt die Berechtigungen für eine bestimmte Datei oder ein bestimmtes Verzeichnis an.

Standardwerte für ein bestimmtes Objekt können definiert werden.

ACLs können auf Benutzer oder Gruppen angewendet werden, es ist jedoch einfacher, Gruppen zu verwalten. Gruppen können besser skaliert werden als durch kontinuierliches Hinzufügen oder Entfernen von Benutzern.

Dies ist der Teil, nach dem Sie suchen:

Kopieren einer ACL in die Standard-ACL

Sobald die ACLs so sind, wie sie sein müssen, können sie als Standard festgelegt werden. Standardwerte werden vererbt, sodass ein neues Verzeichnis die Standardwerte des übergeordneten Verzeichnisses erbt.

getfacl -a /path/to/dir | setfacl -d -M- /path/to/dir

Sie müssen die hinzufügen acl Option bei der Montage. Im /etc/fstab hinzufügen acl zu den Optionen für Ihre Disc. Stellen Sie sicher, dass Sie ein LABEL und nicht eine UUID verwenden.

LABEL="ExternalUsbDisc"   /media/usb-disc     ext4   defaults,acl   0   2

1
2018-04-24 07:13





Zuerst denke ich, dass wir darüber reden, den Besitzer und nicht die Berechtigungen zu ändern.

Wenn Sie eine Datei kopieren, wird sie im Zielordner neu erstellt. Deshalb haben die Dateien Ihr Konto als Besitzer. Sie können keine Dateien mit dem Konto X und dem Eigentümer Y erstellen.

Aber Sie können natürlich den Eigentümer der Dateien ändern, nachdem Sie sie kopiert haben.

Wie dein Benutzer X tippe:
chown <accountY>:<accountY> /path/to/file.test

Oder rekursiv zum Ändern des Eigentümers eines Ordners und aller darin enthaltenen Dateien:
chown -R <accountY>:<accountY> /path/to/folder

Dies ändert den Besitzer und die Gruppe der Dateien / Ordner.


0
2018-04-24 07:53



Ich hatte das als Antwort und änderte es dann in ACL, aber das funktioniert nicht gut mit USB und entfernte das. Es ist technisch nicht das, was er will: Er will es im Fluge. Deine Antwort funktioniert nicht, wenn er Dateien kopiert, die mehr als 1 Besitzer haben ... Was er wahrscheinlich braucht ist rsync. - Rinzwind
@Rinzwind: Klingt, als wüsstest du, was er will und du hast eine Lösung für dieses Problem. Warum postest du keine Antwort? - prophecy201