Wie kopiere ich die Berechtigungen einer Datei in eine andere?

Wie kopiere ich die Berechtigungen einer Datei in eine andere?

Angenommen, ich habe zwei Dateien:

-rw-rw-r--  1 webapp webapp   215 Jun 21  2012 index.php
-rw-rw-rw-  1 root   root      58 Dec 17 11:02 patch.log

Ich möchte patch.logdie gleichen Berechtigungen erteilen wie index.php.

Ich kann es manuell machen:

chown webapp:webapp patch.log
chmod 664 patch.log

Dies sollte jedoch Teil eines Skripts sein, bei dem ich die genauen Berechtigungen nicht unbedingt kenne index.php.

Gibt es eine Möglichkeit, die Berechtigungen einer bestimmten Datei in eine andere Datei zu kopieren?

Antwort1

Sie können eine Datei als Referenzdatei sowohl für chown als auch für chmod verwenden

chown --reference=index.php patch.log
chmod --reference=index.php patch.log

Es steht übrigens alles in den Manpages

chown

--reference=RFILE verwendet den Besitzer und die Gruppe von RFILE, anstatt OWNER:GROUP-Werte anzugeben

chmod

--reference=RFILE verwendet den Modus von RFILE anstelle von MODE-Werten

Antwort2

Wenn die Möglichkeit erweiterter ACLs für die betreffenden Dateien besteht, verwenden Sie besser getfacl/setfacl:

getfacl index.php | setfacl --set-file=- patch.log

verwandte Informationen