ディレクトリにコピーされたファイルの権限を自動的に変更するにはどうすればよいですか?

ディレクトリにコピーされたファイルの権限を自動的に変更するにはどうすればよいですか?

ディレクトリにコピーされたファイルの権限変更を自動化したいと思います。たとえば、フォルダー X にコピーされたファイルのモードは 755 に、フォルダー Y にコピーされたファイルのモードは 700 にする必要があります。

アドバイスをお願いします、ありがとうございます!

答え1

これには を使用できますumask。モードを確認するには、次のようにします。

  7777
-umask
= 新しい権限

たとえば (Linux):

777
-022
 755

umask は 022、権限はフォルダーの場合は 755、ファイルの場合は 644 になります。umask 0027ログインするたびに読み込まれるようにするには、~/.profile に次のような内容を入力します。

更新(懐疑的なコメントのため):

$ umask 
0077

$ ll
total 0
-rw-rw-rw- 1 jaroslav jaroslav 0 Nov  9 20:26 00
-rw-rw-rw- 1 jaroslav jaroslav 0 Nov  9 20:26 01
-rw-rw-rw- 1 jaroslav jaroslav 0 Nov  9 20:26 02
-rw-rw-rw- 1 jaroslav jaroslav 0 Nov  9 20:26 03

$ rm -rf ../copies/*; \
  /bin/cp --no-preserve=mode,ownership * ../copies/; ll ../copies/ 
total 0
-rw------- 1 jaroslav jaroslav 0 Nov  9 20:33 00
-rw------- 1 jaroslav jaroslav 0 Nov  9 20:33 01
-rw------- 1 jaroslav jaroslav 0 Nov  9 20:33 02
-rw------- 1 jaroslav jaroslav 0 Nov  9 20:33 03

答え2

標準的な UNIX 権限を使用してディレクトリごとにこれを行うのは不可能だと思います。ただし、ACL を使用すると可能です。

関連情報