Ich habe Dateien in meinem Home-Verzeichnis mit nur Benutzerleseberechtigung ( r-- --- ---
) erstellt. Ich möchte diese Datei in ein anderes Verzeichnis kopieren, /etc/test/
das die Ordnerberechtigung 744 ( rwx r-- r--
) hat. Ich muss zulassen, dass die Datei, die ich kopiere, die Berechtigung des Ordners erbt, in den sie kopiert wird, da die Dateiberechtigungen beim Kopieren bisher immer noch dieselben sind ( r-- --- ---
). Ich habe den Befehl setfacl ausprobiert, aber er hat nicht funktioniert. Bitte helfen Sie.
PS. Ich kann nicht nur, chmod -r /etc/test/
weil es viele Dateien gibt, die im Laufe der Zeit in diesen Ordner kopiert werden, und ich möchte nicht jedes Mal den Befehl chmod ausführen, wenn eine Datei kopiert wird.
setfacl
Befehl haben Sie versucht? Was war ihre Ausgabe?/bin/cp
ohne Optionen verwenden?Antworten:
Berechtigungen werden im Allgemeinen nicht von dem Verzeichnis weitergegeben, in das Dateien kopiert werden, sondern neue Berechtigungen werden vom Benutzer gesteuert
umask
. Wenn Sie jedoch eine Datei von einem Speicherort an einen anderen kopieren, ist dies ein Sonderfall, bei dem der Benutzer imumask
Wesentlichen ignoriert wird und die vorhandenen Berechtigungen für die Datei erhalten bleiben. Das Verständnis dieses Konzepts ist der Schlüssel, um das zu erreichen, was Sie wollen.Um eine Datei zu kopieren, aber ihre aktuellen Berechtigungen
cp
zu "löschen", können Sie mit dem--no-preserve=all
Schalter anweisen , "nicht beizubehalten" .Beispiel
Angenommen, ich habe die folgende Datei wie Sie.
Und wie Sie bestätigt haben, erhalten wir Folgendes, wenn wir es nur blind mit kopieren
cp
:Lassen Sie uns dies jetzt wiederholen, aber diesmal sagen Sie
cp
"Berechtigungen löschen":Die Berechtigungen für die kopierte Datei sind jetzt auf 664 festgelegt. Woher hat sie diese?
Wenn ich meine
umask
auf etwas anderes geändert habe , können wir diesen Test ein drittes Mal wiederholen und die Auswirkungenumask
auf das Unerhaltene sehencp
:Beachten Sie, dass die Berechtigungen nicht mehr 664 sind, sondern 640? Das wurde von der diktiert
umask
. Es wurde allen Befehlen mitgeteilt, die eine Datei erstellen, um die unteren 5 Bits in den Berechtigungen zu deaktivieren ... diese Typen: (----wxrwx
).quelle
--no-preserve
Flagge ist nicht Standard, vermutlich ein GNUismus.