Ik wil de umask van apache (of beter gezegd php) op 0002 hebben op een development server, zodat users die dezelfde group hebben alles kunnen met de bestanden die door php weggeschreven zijn (denk aan file uploads en smarty compile-directories, enz). Dit zijn normaal gesproken samba users, maar kunnen ook gewoon shell users zijn.
Dit krijg ik niet voor elkaar. De enige oplossing die ik op internet heb gevonden is in de /etc/apache2/envvars de umask aan te roepen, maar dat wordt niet meegenomen. Het heeft waarschijnlijk iets te maken met forken / child processes van apache die de umask niet meenemen, maar ik kan nergens iets vinden dat het in de apache configuratie zelf aangepast zou kunnen worden. De /etc/apache2/envvars wordt wel aangeroepen.
Mijn testcase (group naam heb ik even veranderd)
/etc/apache2/envvars:
Ik heb ook andere notaties voor umask geprobeerd, maar dat maakt niks uit, aangezien de umask voor dat het opstartproces wel goed geset lijkt te worden, getuige:
Iemand een idee? Of is het gewoon niet mogelijk?
Dit krijg ik niet voor elkaar. De enige oplossing die ik op internet heb gevonden is in de /etc/apache2/envvars de umask aan te roepen, maar dat wordt niet meegenomen. Het heeft waarschijnlijk iets te maken met forken / child processes van apache die de umask niet meenemen, maar ik kan nergens iets vinden dat het in de apache configuratie zelf aangepast zou kunnen worden. De /etc/apache2/envvars wordt wel aangeroepen.
Mijn testcase (group naam heb ik even veranderd)
code:
1
2
3
4
5
| 022 total 8 drwxr-xr-x 2 www-data group 4096 2009-02-20 13:03 . drwxrwxrwx 4 group group 4096 2009-02-20 13:03 .. -rw-r--r-- 1 www-data group 0 2009-02-20 13:03 test |
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
| <?php echo '<pre>'; printf("%03o\n", umask()); shell_exec('rm -r ./test'); mkdir('./test'); touch('./test/test'); echo shell_exec('ls -la test'); echo '</pre>'; highlight_file(__FILE__); ?> |
/etc/apache2/envvars:
umask 0002
Ik heb ook andere notaties voor umask geprobeerd, maar dat maakt niks uit, aangezien de umask voor dat het opstartproces wel goed geset lijkt te worden, getuige:
dev1:/etc/apache2# apache2ctl restart 0002 dev1:/etc/apache2# cat envvars umask 0002 umask dev1:/etc/apache2#
Iemand een idee? Of is het gewoon niet mogelijk?
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz