ACL 的所有权、权限

ACL 的所有权、权限

问题:每当我在文件夹中写入新文件或修改文件时www,该文件的权限和所有权都会被重置,有时会导致服务器无法读取我创建的文件。因此,我需要转到终端,设置所有权等,这非常繁琐。

我的www文件夹可通过 Samba 访问。
每当我向该文件夹写入或修改任何内容时,文件的权限和所有权都会被重置为jay:jay无法读取apache

我在网上查了一下,看到了这个问题.所以我尝试了:

sudo setfacl -Rdm g:apache:rx www
sudo chmod g+s www

现在结果是这样的:

drwxr-sr-x+ 14 jay apache  4096 Aug 15 21:09 www

但现在每当我尝试类似的事情时:

touch somefile.txt

我得到这些设置:

-rw-r--r--+ 1 jay apache 0 Aug 15 23:07 somefile.txt

我以为权限会保留文件夹的权限,不是吗?

就所有权而言,这是可以的,但是权限没有被保留!

  1. 假设我想让 750 chmod 自动jay写入文件夹。我该怎么做?
  2. 我认为小's'标记设置组ID? 这是否意味着此文件夹中写入的任何内容都将被赋予该文件夹组的所有权?
  3. 为什么它不会影响我的文件?我以为新创建的文件的设置应该与包含文件夹的设置一样(www)rwxr-xr-x

  4. 有没有办法简单地撤消setfacl?即删除'+'权限行中的小部分?

我正在运行 Ubuntu 12

答案1

  1. 一种方法是将umask值设置0022jay什么是“umask”以及它如何工作?umask您还可以在 Samba 的配置中设置。请参阅如何强制 Samba 共享的群组所有权?举个例子。
  2. 它确实代表setgid。在setgid文件夹中,创建的文件和文件夹继承组所有权,文件夹继承位setgid
  3. 新创建文件的设置是使用umask用户的设置进行的。
  4. 要重置 ACL,最好的方法是使用 给出的原始 ACL getfacl,因为setfacl--restore选项。如果失败,您可以尝试使用 删除所有扩展 ACL setfacl -b

关于sudoumask:根据建筑维基

Sudo 将会把用户的 umask 值与其自己的 umask(默认为 0022)合并。

这应该没问题(因为用户的 umask0022也是如此)。

相关内容