002
默认情况下,我需要 apache2 创建的文件具有 umask ,即组 rw。
我试过放入umask 002
/etc/apache2/envvars ,虽然这个脚本确实作为 apache 启动的一部分执行(apache2ctl graceful
),但 umask 没有效果。大概在启动过程中的某个地方(例如,当用户从 降级root
到 时www-data
)有更好的地方放置它。
我读过有关 Fedora 的帖子和一个建议将 umask 放入的帖子,/etc/init.d/apache2
但这些都不适用于 Debian (Squeeze)。
你能帮我吗?
Jen*_*ler 13
为确保 umask 设置生效,请使用简单的测试,不要为此使用任何其他 Web 应用程序。这些应用程序可能会独立于 Apache 的 umask 设置更改权限。
简单的测试 PHP 脚本:
<?php
if ($fp = fopen(time() . '.txt', 'w')) {
fwrite($fp, 'This is a simple test.');
fclose($fp);
echo "done";
} else {
echo "error - cannot create file";
}
?>
Run Code Online (Sandbox Code Playgroud)
请注意用户 www-data 对安装此简单测试文件的文件夹具有写入权限。
要运行新的 umask,请检查文件 /etc/apache2/envvars 是否将在您的 Apache 启动文件 /etc/init.d/apache2 中使用:
...
PIDFILE=$(. /etc/apache2/envvars && echo $APACHE_PID_FILE)
...
Run Code Online (Sandbox Code Playgroud)
在 /etc/apache2/envvars 中设置您的 umask :
...
# umask 002 to create files with 0664 and folders with 0775
umask 002
Run Code Online (Sandbox Code Playgroud)
重启你的 Apache :
service apache2 restart
Run Code Online (Sandbox Code Playgroud)
检查差异:
#> ls -l *.txt
-rw-rw-r-- 1 www-data www-data 14 2012-05-01 15:56 1335880583.txt
-rw-r--r-- 1 www-data www-data 14 2012-05-01 15:55 1335880540.txt
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
35642 次 |
最近记录: |