Permissions 如何在Web目录上强制执行权限?

Permissions 如何在Web目录上强制执行权限?,permissions,file-permissions,Permissions,File Permissions,我维护一个Web目录: drwxrwsr-x 2 hendry www-data 57344 Apr 1 21:02 foobar/ 我想我在那里创建了一个“粘滞位”(请纠正我的错误),以确保-rw-rw-r--该目录中文件的权限,但它似乎不起作用 有时,在foobar/中创建的文件可以具有-rw-r--r--权限(缺少对www数据的写入!)。我认为这是因为某些Web进程使用该权限编写文件。因此,与其进入上述Web应用程序(假设我不能这样做)并更改umask,我如何确保文件始终具有-rw-r

我维护一个Web目录:

drwxrwsr-x 2 hendry www-data 57344 Apr  1 21:02 foobar/
我想我在那里创建了一个“粘滞位”(请纠正我的错误),以确保-rw-rw-r--该目录中文件的权限,但它似乎不起作用

有时,在foobar/中创建的文件可以具有-rw-r--r--权限(缺少对www数据的写入!)。我认为这是因为某些Web进程使用该权限编写文件。因此,与其进入上述Web应用程序(假设我不能这样做)并更改umask,我如何确保文件始终具有-rw-rw-r--


我希望确保httpd进程始终可以对这些文件进行操作。

目录上的setgid位仅确保在目录中创建的文件也由拥有该目录的组拥有。它不影响授予组的权限(中间三位)

您需要覆盖目录内创建的文件的默认权限位,即:

setfacl -m default:user:www-data:rwx foobar/
foobar/上的ACL应如下所示:

foobar% getfacl .
# file: .
# owner: www-data
# group: www-data
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::r-x
default:group:www-data:rwx
default:mask::rwx
default:other::r-x
如果你创建一个带有限制性umask的文件

foobar% umask
077
foobar% touch foo
foobar% ls -l
total 0
-rw-rw-r--+ 1 www-data www-data 0 Apr  2 11:18 foo
请注意,在第一列的末尾有+表示ACL存在,您应该使用getfacl查看完整情况

foobar% getfacl foo
# file: foo
# owner: www-data
# group: www-data
user::rw-
group::r-x                      #effective:r--
group:www-data:rwx              #effective:rw-
mask::rw-
other::r--