我有一个通过CIFS共享的ZFS文件系统。 不知何故,权限都搞砸了,所有权都是正确的,但一大堆文件有0000权限。
正常工作的文件如下所示:
-rwx------+ 1 guest other 3.8M 2011-05-10 14:58 Presentation.ppt
如何复制该权限集并将其应用于文件系统上的其余文件?
更新
感谢您的回应 – 我遇到的问题是,由于某些原因,具有700个权限的文件从Windows查看时没有删除权限:

设置权限给文件上的“+”。
您可以查看扩展权限:
$ /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---AW-Co-:------:allow user:marks:r-------------:------:deny group@:-wxp----------:------:deny group@:r-------------:------:allow everyone@:-wxp---AW-Co-:------:deny everyone@:r-----aRc--s:------:allow
然后,您可以recursion地将这组ACL设置应用于您的共享:
$ /usr/bin/chmod -RA=\ user:lp:rw------------:------:allow, \ owner@:--x-----------:------:deny, \ owner@:rw-p---AW-Co-:------:allow, \ user:marks:r-------------:------:deny, \ group@:-wxp----------:------:deny, \ group@:r-------------:------:allow, \ everyone@:-wxp---AW-Co-:------:deny, \ everyone@:r-----aRc--s:------:allow, \ /mnt/share
要弄清楚数字表示forms:
- rwx --- --- 0 111 000 000 --- --- --- 7 0 0
所以,如果所有者和组都没有问题,则可以将所有权限更改为700 。
chmod -R 700 /path/to/folders
chmod -R 0700 /path/to/files
虽然“+”很麻烦,但是在文件上指定了一个特殊的ACL。 你可以使用getfacl和setfacl ,但是它要复杂得多。 看看这个页面的getfacl / setfacl信息。
我不是ZFS大师,但首先validation扩展权限与getfacl <filename> 。 假设如此,您可以使用setfacl的输出来设置权限。 首先通过getfacl Presentation.ppt > correctfacl.txt转储所需的访问列表,然后使用setfacl -M correctfacl.txt <files_to_change>设置其他文件( -R标志将使此recursion)