我的情景:
拥有多个用户,例如user1和user2,它们属于名为sharedusers的组.它们必须具有对同一组文件和目录的所有WRITE权限,例如/ userdata / sharing /中的底层.
我将文件夹的组设置为sharedusers,并将sgiD设置为将所有新创建的文件/ dirs设置为同一组.
ubuntu@home:/userdata$ ll drwxr-sr-x 2 ubuntu sharedusers 4096 Nov 24 03:51 sharing/
我为这个目录设置了ACL,所以我可以拥有从其父目录继承的子目录/文件的权限.
ubuntu@home:/userdata$ setfacl -m group:sharedusers:rwx sharing/ ubuntu@home:/userdata$ setfacl -d -m group:sharedusers:rwx sharing/
这是我得到的:
ubuntu@home:/userdata$ getfacl sharing/ # file: sharing/ # owner: ubuntu # group: sharedusers # flags: -s- user::rwx group::r-x group:sharedusers:rwx mask::rwx other::r-x default:user::rwx default:group::r-x default:group:sharedusers:rwx default:mask::rwx default:other::r-x
ubuntu@home:/userdata/sharing$mkdir a && cd a ubuntu@home:/userdata/sharing/a$touch a_test ubuntu@home:/userdata/sharing/a$ getfacl a_test # file: a_test # owner: ubuntu # group: sharedusers user::rw- group::r-x #effective:r-- group:sharedusers:rwx #effective:rw- mask::rw- other::r--
如您所见,共享用户组具有有效的权限rw-.
但是,如果我有一个zip文件,并使用unzip -q命令解压缩文件夹共享中的文件,则解压缩的文件夹没有组写入permisison.因此,来自组共享用户的用户无法修改这些提取的文件夹下的文件.
ubuntu@home:/userdata/sharing$ unzip -q Joomla_3.0.2-Stable-Full_Package.zip ubuntu@home:/userdata/sharing$ ll drwxrwsr-x+ 2 ubuntu sharedusers 4096 Nov 24 04:00 a/ drwxr-xr-x+ 10 ubuntu sharedusers 4096 Nov 7 01:52 administrator/ drwxr-xr-x+ 13 ubuntu sharedusers 4096 Nov 7 01:52 components/
您可以找到文件夹a(之前创建)和解压缩提取的文件夹管理员之间的权限差异.以及管理员内部文件的ACL:
ubuntu@home:/userdata/sharing$ getfacl administrator/index.PHP # file: administrator/index.PHP # owner: ubuntu # group: ubuntu user::rw- group::r-x #effective:r-- group:sharedusers:rwx #effective:r-- mask::r-- other::r--
它也有ubuntu组,而不是预期的sharedusers组.
有人可以解释一下这个问题并给我建议吗?先感谢您!
解决方法
现在,mask :: r–的ACL_MASK实际上是ACL的安全功能,使您无法在不打算访问的地方进行访问:
添加现有文件(而不是创建新文件)时,ACL会将ACL_MASK设置为文件的前一个值,在本例中为r–.
这不仅限于解压缩.无论何时添加文件而不是创建文件,这都适用.例如,您可以尝试使用cp或tar,最终会得到相同的结果.
实际上文档(man 5 acl)在OBJECT CREATION和DEFAULT ACL段落中声明默认值仅适用于使用以下任何系统调用创建的对象:creat(),mkdir(),mknod(),mkfifo()或者open().
原文地址:https://www.jb51.cc/linux/397138.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。