What's the best way of handling permissions for Apache 2's user www-data in /var/www?

Better Stack Team
Updated on November 9, 2023

Setting permissions for the Apache user (www-data in most cases) within the /var/www directory is crucial for security and proper functioning of web applications. Here are the recommended steps:

1. Assign Ownership:

sudo chown -R www-data:www-data /var/www

  • This command recursively changes ownership of /var/www and its contents to the user and group www-data. It ensures the Apache user has necessary access to the web directory.

2. Set Directory Permissions:

sudo find /var/www -type d -exec chmod 755 {} \\;

  • This command sets the directories within /var/www to have permissions 755, allowing www-data to read, write, and execute within these directories.

3. Set File Permissions:

sudo find /var/www -type f -exec chmod 644 {} \\;

  • This command sets the files within /var/www to have permissions 644, allowing read and write for www-data, but restricting execute permissions for security reasons.

4. Special Folders and Files:

For certain directories where the server needs write access (e.g., for uploads), you might need more permissive permissions. Adjust these accordingly, but be cautious not to set overly permissive permissions for security-critical files or directories.

Additional Tips:

  • Use Group Permissions: If there's a need for multiple users to have access to the web directory, you can create a group, assign the group to /var/www, and set group permissions accordingly.
  • Consider umask: Adjust the umask to ensure that newly created files and directories inherit the desired permissions.
  • Security and Updates: Regularly review and update permissions, especially after updates or changes in your web applications, to ensure the security of your system.

By setting the correct ownership and permissions for the Apache user within /var/www, you strike a balance between security and functionality, allowing the webserver to read, write, and execute necessary files while preventing unauthorized access or modification.

Make your mark

Join the writer's program

Are you a developer and love writing and sharing your knowledge with the world? Join our guest writing program and get paid for writing amazing technical guides. We'll get them to the right readers that will appreciate them.

Write for us
Writer of the month
Marin Bezhanov
Marin is a software engineer and architect with a broad range of experience working...
Build on top of Better Stack

Write a script, app or project on top of Better Stack and share it with the world. Make a public repository and share it with us at our email.


or submit a pull request and help us build better products for everyone.

See the full list of amazing projects on github