I installed apache2 on Ubuntu just now, and noticed that the /var/www folder is protected. I can just sudo
everything but I would rather just give it write access.
How can I do this?
I tried sudo chmod 7777 /var/www
but it didn't work.
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.
Sign up to join this communityI installed apache2 on Ubuntu just now, and noticed that the /var/www folder is protected. I can just sudo
everything but I would rather just give it write access.
How can I do this?
I tried sudo chmod 7777 /var/www
but it didn't work.
To best share with multiple users who should be able to write in /var/www
, it should be assigned a common group. For example the default group for web content on Ubuntu and Debian is www-data
. Make sure all the users who need write access to /var/www
are in this group.
sudo usermod -a -G www-data <some_user>
Then set the correct permissions on /var/www.
sudo chgrp -R www-data /var/www
sudo chmod -R g+w /var/www
Additionally, you should make the directory and all directories below it "set GID", so that all new files and directories created under /var/www
are owned by the www-data
group.
sudo find /var/www -type d -exec chmod 2775 {} \;
Find all files in /var/www
and add read and write permission for owner and group:
sudo find /var/www -type f -exec chmod ug+rw {} \;
You might have to log out and log back in to be able to make changes if you're editing permission for your own account.
sudo chmod -R g+w
and not g+rw
or g+rwX
?
Read+Write:
sudo chmod -R a+rw /var/www
Read+Write+Execute:
sudo chmod -R a+rwx /var/www
There's a simpler way to do this, try doing this command.
sudo chmod -R 757 /var/www
Essentially, the chmod
command alters permissions and the -R
switch affects all users. Then it is simply giving the correct permissions to use.
chmod $permissions -R $file
isn't valid…
Jan 26, 2013 at 16:48
You can also replicate what jtimberman suggested using access control lists. The setfacl command accepts -s to replace an existing ACL or -m to modify it; -R to make directory ACLs recursive; and -d to make the specified settings the default, which is useful if you're anticipating forthcoming user accounts.
These just set the permissions as you would for the user, group, other, and mask using chmod:
setfacl -m u::rwx, g::r-x, o::---, m:rwx DIRECTORY
And this could be how you'd do it for a specified user or his/her group:
setfacl -m u:USERNAME:rwx, g:USERNAME:r-x DIRECTORY
And of course, the strength is that you can designate any specific user, multiple users, etc., all without having to modify your group settings. And unlike chmod, if you want some groupies to have access to one directory and other groupies to have access only to another, it's actually possible with setfacl. Finally, to view a directory's ACLs, run getfacl:
getfacl DIRECTORY
And you can specify -R to see the ACLs for subdirectories or -d to see the defaults.
The quick & easy answer -
a. Add (-a) your user (user_name) to the group (-G) www-data.
sudo usermod -a -G www-data user_name
b. Give the Group (g) the same (=) permissions as the owning User (u) of /var/www Recursively (-R).
sudo chmod -R g=u /var/www
Explanation: Apache 2 on Debian/Ubuntu sets the User & Group www-data as the Owner of /var/www. The default permissions for the User are "View & Modify Content", however the Group can only "View Content". So adding yourself to the www-data Group and giving it the same permissions as the wwww-data User, is a quick and easy way to get developing. I do this for all my localhost (PC/Laptop) Web Development environments.
I typicall use
chmod g+w /folder/ -R
It's almost self-explaining.
It adds everyone in the g
roup of /folder/
to have w
rite access (+w
) , -R
is for recursion for sub-folders.
Can you just try chmod 0777 /var/www
?
A word of warning: if you let everybody access this folder, that means the hackers can access this folder if they gain access to your system. That's why it's better to create a group of permissible users, and give that group write access.
First you enter the particular folder path, then using this command …
chmod -R 777 foldername
chown username:username foldername