Apache-2.2
為 apache、lighttpd、…設置 umask 002 不起作用?
我正在嘗試使由網路伺服器(Apache,lighttpd,…)創建的文件可以由 ftp 使用者寫入。添加
apache
到nobody
組,反之亦然。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