我有一个通过 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。您可以使用getfacl
和setfacl
来处理这些,但这要复杂得多。请查看这一页有关 getfacl/setfacl 的信息。
答案4
我不是 ZFS 专家,但首先要验证扩展权限是否显示getfacl <filename>
。假设如此,您可以将该输出用于 setfacl,以设置权限。首先通过转储您想要的访问列表getfacl Presentation.ppt > correctfacl.txt
,然后使用将其他文件设置为该列表setfacl -M correctfacl.txt <files_to_change>
(该-R
标志将使其递归)