设置Apache用户的umask

Dav*_*tom 54 linux apache

我正在设置一个LAMP服务器,并希望将Apache的umask设置设置为002,以便所有Apache创建的文件都设置了组写权限位(因此同一组的成员可以覆盖这些文件).

有谁知道如何做到这一点?我知道在Ubuntu上,您可以使用/ etc/apache2/envvars文件来配置umask,但服务器正在运行CentOS.

更新 此问题与我刚才提到的另一个问题有关(Linux用户和组用于LAMP服务器).如果愿意,请更新这个其他问题,以便在可以编辑apache用户创建的文件的服务器上拥有开发人员用户的最佳设置.

Pat*_*her 113

对于CentOS和其他Red Hat发行版,将umask设置添加到/ etc/sysconfig/httpd并重新启动apache.

[root ~]$ echo "umask 002" >> /etc/sysconfig/httpd
[root ~]$ service httpd restart

更多信息:Apache2 umask | MDLog:/系统管理员

对于Debian和Ubuntu系统,您可以进行类似的编辑/etc/apache2/envvars.

  • @ MattB.That是因为优雅实际上并没有杀死主apache进程.它告诉所有分叉的孩子完成他们正在做的事情(服务你的最后一个请求)然后DIE.使用新配置更改创建新子项.某些配置更改需要终止父级并重新启动,并且umask是其中一个更改.我希望这是有道理的. (4认同)
  • 在 Ubuntu 上,我无法通过简单地使用 `apache2ctl restart`(或 `apache2ctl graceful`)重新启动来使其工作。但是停止然后开始工作......`service apache2 restart`也有效(`service apache2 graceful`没有)。 (2认同)
  • 这在 Centos7.4 上不起作用,但洛蒂的回答起作用了,尽管这对我来说更有意义...... (2认同)

小智 23

这是Google搜索结果中"CentOS 7 apache umask"的第一个结果,所以我将分享我需要做些什么来使用CentOS 7.

使用CentOS 7时,echo "umask 002" >> /etc/sysconfig/httpd方法对我不起作用.

我通过创建一个文件夹覆盖了systemd启动文件,/etc/systemd/system/httpd.service.d并在那里创建了一个带有行的文件umask.conf:

[Service]
UMask=0007
Run Code Online (Sandbox Code Playgroud)

启动,它对我有用.

  • UMask=0007 创建所有者=r/w、组=r/w 和其他=none 的文件。对于所有者=r/w、组=r/w 和其他=r,使用Umask=0002,即对于所有者或组成员为读/写,对于所有其他成员为只读。 (2认同)
  • UMask=0002 是正确的掩码,至少对于我的目的而言。httpd 服务由 apache 用户拥有,使用 -rw-rw-r-- 权限创建文件(例如 error.log、activity.log、debug.log 等)。添加到 apache 组的用户将具有对这些文件的完全访问权限。 (2认同)

Mar*_*wis 9

Apache umask从其父进程(即启动Apache的进程)继承它; 这通常应该是/etc/init.d/脚本.所以umask在该脚本中放置一个命令.

  • Patrick Fisher的答案提供了更好的建议,因为直接修改apache init脚本是危险的 - 所有更改可能会在下次更新时丢失. (15认同)

Fer*_*ner 5

添加umask 命令/etc/apache2/envvars我来说似乎不是一个好主意,不仅因为文件名(仅提及变量),而且还基于该文件中找到的注释:

# Since there is no sane way to get the parsed apache2 config in scripts, some
# settings are defined via environment variables and then used in apache2ctl,
# /etc/init.d/apache2, /etc/logrotate.d/apache2, etc.
Run Code Online (Sandbox Code Playgroud)

这表明/etc/apache2/envvars可能是由执行 Apache 相关任务的任何脚本获取的,并且更改这些(事先未知)脚本的 umask 是相当危险的。

另一方面,如果更改 Apache 的 umask 目标是放宽由 所创建的文件的权限mod_dav,您应该考虑到DAV 存储库被认为是 Apache 私有的,并且让其他进程访问这些文件可能会导致各种问题(包括腐败)