chmod:将权限(具有扩展权限)从一个文件复制到另一个文件

chmod:将权限(具有扩展权限)从一个文件复制到另一个文件

我有一个通过 CIFS 共享的 ZFS 文件系统。不知何故,权限全都乱了,所有权完全正确,但一大堆文件却有 0000 权限。

正常工作的文件如下所示:

-rwx------+  1 guest other 3.8M 2011-05-10 14:58 Presentation.ppt

如何复制该权限集并将其应用于文件系统上的其余文件?

更新

感谢您的回复 - 我遇到的问题是,从 Windows 查看时,具有 700 权限的文件由于某种原因没有删除权限:

设置权限会给文件带来‘+’。

答案1

您可以使用以下方式查看扩展权限:

$ /usr/bin/ls -V Presentation.ppt

这可能看起来像:

$ /usr/bin/ls -V Presentation.ppt
   -rw-r--r--+  1 root     staff          0 Feb  3 14:13 file.1
        user:lp:rw------------:------:allow
         owner@:--x-----------:------:deny
         owner@:rw-p---A-W-Co-:------:allow
     user:marks:r-------------:------:deny
         group@:-wxp----------:------:deny
         group@:r-------------:------:allow
      everyone@:-wxp---A-W-Co-:------:deny
      everyone@:r-----a-R-c--s:------:allow

然后,您可以将这组 ACL 设置递归应用于您的共享:

$ /usr/bin/chmod -R A=\
    user:lp:rw------------:------:allow, \
    owner@:--x-----------:------:deny, \
    owner@:rw-p---A-W-Co-:------:allow, \
    user:marks:r-------------:------:deny, \
    group@:-wxp----------:------:deny, \
    group@:r-------------:------:allow, \
    everyone@:-wxp---A-W-Co-:------:deny, \
    everyone@:r-----a-R-c--s:------:allow, \
    /mnt/share

答案2

找出数字表示:

-  rwx --- ---  
0  111 000 000
   --- --- ---
    7   0   0

因此,如果所有者和群组都没有问题,您可以将所有权限更改为700

chmod -R 700 /path/to/folders 

答案3

chmod -R 0700 /path/to/files

尽管“+”有点麻烦,表示文件上有特殊的 ACL。您可以使用getfaclsetfacl来处理这些,但这要复杂得多。请查看这一页有关 getfacl/setfacl 的信息。

答案4

我不是 ZFS 专家,但首先要验证扩展权限是否显示getfacl <filename>。假设如此,您可以将该输出用于 setfacl,以设置权限。首先通过转储您想要的访问列表getfacl Presentation.ppt > correctfacl.txt,然后使用将其他文件设置为该列表setfacl -M correctfacl.txt <files_to_change>(该-R标志将使其递归)

相关内容