Directory permission problems under umask 0007
Closed this issue · 3 comments
The standard VM created by my institution has a default umask of 0007. As a result:
/var/www/html/jobe/system$ ls -lh
total 12K
drwxr-xr-- 2 root root 320 Apr 11 09:21 core
drwxr-xr-- 3 root root 182 Apr 11 09:21 database
drwxr-xr-- 2 root root 40 Apr 11 09:21 fonts
drwxr-xr-- 2 root root 4.0K Apr 11 09:21 helpers
-rw-r--r-- 1 root root 114 Apr 11 09:21 index.html
drwxr-xr-- 3 root root 39 Apr 11 09:21 language
drwxr-xr-- 4 root root 4.0K Apr 11 09:21 libraries
many directories are not readable by the user www-data after I run install.sh, thus rendering the jobe unusable.
So install.sh somehow needs to ensure all directories are world-executable
Also, when I check out jobe onto /var/www/html/jobe, this is the permission I get for the files inside:
:/var/www/html/jobe$ ls -lh
total 220K
drwxr-x--- 15 root root 232 Apr 11 09:34 application
-rw-r----- 1 root root 1.5K Apr 11 09:34 checkcorsaccess.html
-rw-r----- 1 root root 6.5K Apr 11 09:34 index.php
-rwxr-x--- 1 root root 6.5K Apr 11 09:34 install
-rw-r----- 1 root root 2.5K Apr 11 09:34 license.txt
drwxr-x--- 3 root root 66 Apr 11 09:34 nbproject
-rw-r----- 1 root root 21K Apr 11 09:34 README.md
-rw-r----- 1 root root 44K Apr 11 09:34 restapi.odt
-rw-r----- 1 root root 91K Apr 11 09:34 restapi.pdf
drwxr-x--- 2 root root 97 Apr 11 09:34 runguard
-rw-r----- 1 root root 4.4K Apr 11 09:34 simpletest.py
drwxr-x--- 8 root root 130 Apr 11 09:34 system
-rwxr-x--- 1 root root 25K Apr 11 09:34 testsubmit.py
I guess the install.sh also needs to fix this too. Should all files be world-readable, and all directories be world-executable?
I'm puzzled by this. The installer already includes the following three lines to set permissions:
do_command('chgrp {} {}/*'.format(webserver_user, install_dir))
do_command('chmod -R g+rX {}/*'.format(install_dir))
do_command('chmod g+rwX {}/files'.format(install_dir))
where do_command is a function that executes shell commands. Clearly these commands haven't worked in your case. Could you double-check the install process to find out what failed, please?
The problem is that the ownership of /var/www/html/jobe remains root:root, yet www-data is not in the root group, and jobe is not world-executable:
jobetest01:/var/www/html$ ls -lhd jobe
drwxr-x--- 7 root root 274 May 20 16:40 jobe
jobetest01:/var/www/html$
So we also need to explicitly set permission and/or group ownership of install_dir.
My pull request #19 will fix this issue, please pull.
Fixed in version 1.3.5+ (12 June)