ファイルの権限を別のファイルにコピーするにはどうすればいいですか?

ファイルの権限を別のファイルにコピーするにはどうすればいいですか?

たとえば、次の 2 つのファイルがあるとします。

-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

patch.logと同じ権限を付与したいと思いますindex.php

手動で実行できます:

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

しかし、これはスクリプトの一部であるはずで、その正確な権限が必ずしも何であるかはわかりませんindex.php

特定のファイルの権限を別のファイルにコピーする方法はありますか?

答え1

chownとchmodの両方の参照ファイルとしてファイルを使用することができます。

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

すべてはmanページにあります

チョーン

--reference=RFILE OWNER:GROUP 値を指定するのではなく、RFILE の所有者とグループを使用します。

chmod

--reference=RFILE MODE値の代わりにRFILEのモードを使用する

答え2

問題のファイルに拡張 ACL が適用される可能性がある場合は、getfacl/setfacl を使用することをお勧めします。

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

関連情報