Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I ran the following commands to set up ACL on the /var/www folder in my Ubuntu 12.04 Server:

sudo usermod -g www-data abe
sudo chown -R www-data:www-data /var/www
sudo chmod -R 775 /var/www

I downloaded Wordpress using wget in my /var/www folder and unzipped the downloaded file:

cd /var/www
wget http://wordpress.org/latest.zip
mv latest.zip wordpress.zip
unzip wordpress.zip

I created a new database and user in mysql and attempted to run the setup process through the web interface.

When I enter the configuration info in wordpress I run into the following error message: Sorry, but I can't write the wp-config.php file.

When I run ls -la, I see that the files are owned by my user abe, but they are part of the group www-data.

Would I have to run the chmod command every time I copy new files to /var/www?

sudo chmod -R 775 /var/www
share|improve this question
    
you can just give yourself permissions to the wordpress folder like so: sudo chmod -R 777 /var/www/html/wordpress Just watch out. your files might be in a different path. Also, you could really just make this 666, and not 777 if you wanted to :) – user424254 Mar 2 '15 at 21:59
    
777 permissions would give everyone full access to the site material - not the most secure solution. 666 applied to a directory would prevent the user from entering the directory. – suspectus Mar 2 '15 at 22:38

just go to wordpress installation directory inside your www directory in terminal and give write permission to your web server which is running as www-data

sudo chown -R www-data wordpress
share|improve this answer

WP-config.php ins't saved in root I think.

Try doing this: chgrp -r www-data wwww/ and then chmod -r g+w www/ It will change group recursively, and then add Write permissions to Group, also recursively.

share|improve this answer

Be aware that you're not dealing with ACL here, just basic permissions and membership.

Here you can:

  • Use the www-data account to perform tasks on /var/www (using sudo -u www-data [command] for example).
  • Use umask 002 which will creates directory with 775 and file with 664 permissions (if it is not the case already, otherwise you don't have any problem here).
  • Use real ACLs (if enabled on your filesystem), for example find /var/www -type d -exec setfacl -m d:g:www-data:rwX {} \; which will create a default ACL (d:, so it will be inherited), recursively on directories (find -type d), with read-write access (rw) on all content and execute access (X) on directories, to the group (g:) www-data. You might also add this ACL on all already-created files : setfacl -R -m g:www-data:rwX /var/www.

For the last two points, it's recommended that you know what you're doing, otherwise you could create a big mess in filesystem permissions if something goes wrong.

share|improve this answer

When you unzip files they come with their own permissions thus you need to edit permissions. But you could write a shell script which will do all processes for you.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .