Apache-2.2

為 apache、lighttpd、…設置 umask 002 不起作用?

  • August 9, 2011

我正在嘗試使由網路伺服器(Apache,lighttpd,…)創建的文件可以由 ftp 使用者寫入。添加apachenobody組,反之亦然。umask 002對於 ftp 工作正常。但是網路伺服器似乎忽略了我的 umask 設置/etc/sysconfig/

grep umask /etc/sysconfig/httpd 
umask 002

/etc/init.d/

start() {
   echo -n $"Starting $prog: "
   umask 002
   daemon $lighttpd -f $LIGHTTPD_CONF_PATH
   RETVAL=$?
   echo
   [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
   return $RETVAL
}

該文件仍然使用 755 權限創建:

-rwxr-xr-x 1 apache nobody 28243 Jul 28 09:49 ssvzone_997.js
-rwxr-xr-x 1 apache nobody 26224 Jul 28 09:49 ssvzone_998.js
-rwxr-xr-x 1 apache nobody 19686 Jul 28 09:49 ssvzone_999.js

-rwxr-xr-x 1 lighttpd nobody 23949 Jul 29 15:50 ssvzone_999_1.js
-rwxr-xr-x 1 lighttpd nobody 20668 Jul 29 15:50 ssvzone_999_2.js
-rwxr-xr-x 1 lighttpd nobody 22294 Jul 29 15:50 ssvzone_999_3.js

那麼,根本原因是什麼?

PS:我看到了一些類似的問題,但沒有一個可以提供幫助。

不知道為什麼file_put_contents()函式會創建具有 755 權限的文件,但@chmod 664會有所作為。

Umask 不設置位。可能是創建文件的應用程序沒有要求設置組w位,或者它明確地將文件本身 chmod 為“安全”。

umask 的簡單 php 腳本報告什麼?

<?php 
   system ("umask");
?>

在 CentOS 系統上,我必須將它報告預設值 0022 或我設置的任何值/etc/sysconfig/httpd

引用自:https://serverfault.com/questions/295424