Your solution is pretty close to what I'd recommend, but why do you specifically reference the wheel
group? On many distributions the group wheel
has full access to the sudo
command granting then full root access to the system.
Let's assume you make a new group called webadmins
:
groupadd webadmins
Then you want to set the proper permissions to allow your webadmins
to make changes:
chown root:webadmins /var/www/html -R
The -R will set the permissions on all existing files. One issue that's common is if joe
creates a file in /var/www/html it will, by default, be owned by joe
and grouped to joe
's default group. We can remedy this by setting the SETGID bit on the parent directory so new files will be grouped to webadmins
by default:
chmod g+s /var/www/html
One last issue is that your webserver will need to access these files as well. I, personally, don't like to leave global read access on /var/www/html because of the likelihood that someone will drop a .php script in there, so I set the directory to 770:
chmod 770 /var/www/html
And then I add the apache user (www-data
on RedHat systems, typically) to the webadmins
group:
usermod -aG webadmins www-data
Hope that helps!