Apache 我的web应用程序保存的文件与父应用程序具有不同的文件权限

Apache 我的web应用程序保存的文件与父应用程序具有不同的文件权限,apache,ubuntu,permissions,Apache,Ubuntu,Permissions,我有一个文件夹,其中新的子文件夹和文件将通过脚本自动创建 我希望递归地维护位于父目录中的所有新文件夹和文件的用户和组权限。我知道这需要设置一个粘性位,但我似乎找不到一个能准确显示我需要什么的命令 这就是我到目前为止所做的: sudo mkdir -p /path/to/parent sudo chmod -R 660 myself:somegroup /path/to/parent 此后,我希望对放置在/path/to/parent中的任何文件夹和文件递归设置660权限 但是,每当Apache

我有一个文件夹,其中新的子文件夹和文件将通过脚本自动创建

我希望递归地维护位于父目录中的所有新文件夹和文件的用户和组权限。我知道这需要设置一个粘性位,但我似乎找不到一个能准确显示我需要什么的命令

这就是我到目前为止所做的:

sudo mkdir -p /path/to/parent
sudo chmod -R 660 myself:somegroup /path/to/parent
此后,我希望对放置在/path/to/parent中的任何文件夹和文件递归设置660权限

但是,每当Apache保存文件夹/文件时,它都会将用户和组设置为Apache用户,并为其分配700的权限。这不是我想要的。我希望父项下的所有文件/子文件夹对我自己:somegroup拥有660个权限

实际上,八进制标志660甚至可能不正确。我想要的权限是:

  • 位于/path/to/parent下的目录可由具有权限的用户执行
  • 文件可由用户本人和somegroup的成员读/写
  • /path/to/parent中的文件和文件夹不是世界可读的
  • 有人能帮忙吗

    我在Ubuntu 10.0.4 LTS上运行

    sudo mkdir-p/path/to/parent sudo chmod-R 660我自己:somegroup/path/to/parent

    呃,不太理想

    如果希望创建的新文件/目录具有相同的组所有权,则需要在目录上设置组粘性位

    find/path/to/parent-type d-execchmod g+s{}

    您需要使目录可执行:

    find/path/to/parent-type d-execchmod ug+x{}

    但是,每当Apache保存文件夹/文件时,它都会将用户和组设置为Apache用户,并为其分配700的权限


    然后您还需要为正在执行的代码设置umask(0770)(或者直接更改权限),并确保apacheuid是somegroup的成员。IIRC要设置组粘性位,umask应为2770-但请检查手册。

    您可以设置apache以使用特定的umask写入新文件

    在RedHat/CentOS中编辑文件/etc/sysconfig/httpd,并更改为:
    umask 007

    在debian/Ubuntu中,使用具有相同设置的文件/etc/apache2/envars