如何自动更改复制到目录的文件的权限?

如何自动更改复制到目录的文件的权限?

我想自动更改复制到目录的文件的权限。例如,复制到文件夹 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 可以做到这一点。

相关内容