Finding and Fixing File Permission Errors
File permission errors are among the most common issues that website owners encounter. Incorrect permissions can prevent your website from functioning properly, create security vulnerabilities, or cause specific features to fail. This guide will help you identify and fix file permission errors on your dotCanada.com hosting account.
Understanding File Permissions
Before diving into fixing permission errors, it's important to understand how file permissions work on a Linux server:
Permission Types
- Read (r): Allows viewing the contents of files or directories
- Write (w): Allows modifying, deleting, or adding files
- Execute (x): Allows running scripts or accessing directories
Permission Levels
- Owner: The user who owns the file (usually your account)
- Group: The user group associated with the file
- World: Everyone else (including website visitors)
Numeric Representation
Permissions are often represented by three digits, each representing permissions for owner, group, and world:
- 0: No permissions
- 1: Execute only
- 2: Write only
- 3: Write and execute
- 4: Read only
- 5: Read and execute
- 6: Read and write
- 7: Read, write, and execute
Common Permission Values
Value | Symbolic | Recommended For |
---|---|---|
644 | rw-r--r-- | Normal files (HTML, CSS, images, etc.) |
755 | rwxr-xr-x | Directories and executable scripts |
600 | rw------- | Sensitive configuration files |
440 | r--r----- | Read-only files for owner and group |
777 | rwxrwxrwx | Not recommended (security risk) |
Identifying Permission Errors
Common Symptoms of Permission Issues
- 403 Forbidden errors: The server understands the request but refuses to authorize it
- 500 Internal Server Error: Often caused by incorrect permissions on script files
- "Permission denied" messages: Visible in error logs or on screen
- Upload failures: Unable to upload files via FTP or through CMS interfaces
- Plugin/theme installation errors: Unable to install or update WordPress plugins or themes
- Image display issues: Images not showing on your website
- Cannot create/edit files: Editor says files are not writable
Checking Error Logs
Error logs often provide specific information about permission issues:
- Log in to your cPanel account at https://{hostname}.mysecureservers.com:2087
- In the search box at the top, type "Error Log" or navigate to the METRICS section
- Click on Error Log
- Look for entries containing terms like "permission denied," "not allowed," or "forbidden"
Alternatively, check your application-specific logs:
- For WordPress: Enable WP_DEBUG in wp-config.php
- For PHP applications: Check the PHP error log in cPanel under "Logs"
Checking Current File Permissions
Method 1: Using File Manager
- Log in to cPanel
- Open File Manager
- Navigate to the file or directory in question
- Right-click on the file and select Permissions (or select the file and click "Permissions" in the top toolbar)
- The permissions dialog will show the current settings as checkboxes and a numeric value
Method 2: Using FTP
- Connect to your website using an FTP client like FileZilla
- Navigate to the relevant directory
- Right-click on a file or folder and select "File permissions" or similar
- FTP clients typically show permissions as both checkboxes and numeric values
Fixing File Permission Errors
To fix permissions for a specific file or directory:
- In cPanel File Manager, right-click on the file/directory and select Permissions
- Adjust the checkboxes to set the appropriate permissions:
- For standard files: Set to 644 (Owner: Read, Write; Group: Read; World: Read)
- For directories: Set to 755 (Owner: Read, Write, Execute; Group: Read, Execute; World: Read, Execute)
- For sensitive files (like configuration files): Set to 600 or 640
- Or enter the numeric value directly (e.g., 644, 755, 600)
- Click Change Permissions to apply
To fix permissions for multiple files at once:
- In File Manager, select multiple files by holding Ctrl (or Command on Mac) while clicking each file
- Click Permissions in the top toolbar
- Set the appropriate permissions
- Click Change Permissions
For directories and their contents:
- Right-click on a directory and select Permissions
- Set the appropriate permissions
- Check the box for "Apply to all contents"
- Click Change Permissions
- This will recursively apply permissions to all files and subdirectories
If you have SSH access to your hosting account, you can use these commands:
To set correct permissions for all files:
find /path/to/directory -type f -exec chmod 644 {} ;
To set correct permissions for all directories:
find /path/to/directory -type d -exec chmod 755 {} ;
For WordPress-specific permission fixes:
# Set directory permissions
find /path/to/wordpress -type d -exec chmod 755 {} ;
# Set file permissions
find /path/to/wordpress -type f -exec chmod 644 {} ;
# Make wp-config.php more secure
chmod 600 /path/to/wordpress/wp-config.php
# Make .htaccess writable if needed
chmod 644 /path/to/wordpress/.htaccess
Common Permission Issues and Fixes by CMS
WordPress Permission Issues
- Cannot install plugins/themes:
- Issue: wp-content directory not writable
- Fix: Set wp-content directory to 755
- Fix: Set wp-content/plugins and wp-content/themes directories to 755
- Cannot upload media:
- Issue: uploads directory not writable
- Fix: Set wp-content/uploads to 755
- Fix: Ensure year/month folders inside uploads are 755
- Cannot update WordPress:
- Issue: Root directory not writable or incorrect permissions
- Fix: Ensure WordPress core directories have 755 permissions
- Fix: Ensure WordPress core files have 644 permissions
Joomla Permission Issues
- Cannot install extensions:
- Issue: tmp and/or installation directories not writable
- Fix: Set /tmp and /administrator/components directories to 755
- Cannot upload images:
- Issue: images directory not writable
- Fix: Set /images directory to 755
- Configuration changes not saving:
- Issue: configuration.php not writable
- Fix: Temporarily set configuration.php to 644, then back to 600 after changes
Drupal Permission Issues
- Cannot install modules:
- Issue: sites/all/modules directory not writable
- Fix: Set sites/all/modules to 755
- Cannot upload files:
- Issue: sites/default/files not writable
- Fix: Set sites/default/files to 755
- Settings not saving:
- Issue: sites/default/settings.php not writable
- Fix: Temporarily set settings.php to 644, then back to 600 after installation
Diagnosing Specific Permission Errors
403 Forbidden Errors
- Possible causes:
- Directory does not have execute (x) permission
- Files do not have read (r) permission
- .htaccess rules blocking access
- Solutions:
- Ensure directories have 755 permissions
- Ensure files have at least 644 permissions
- Check .htaccess for Deny directives
500 Internal Server Errors
- Possible causes:
- PHP or CGI scripts don't have execute permission
- Script trying to write to a file without permission
- Solutions:
- Set PHP files to 644 (PHP doesn't need execute permission)
- Set CGI/Perl scripts to 755
- Check error logs for specific file paths causing issues
"Not Writable" Errors in CMS Admin Panels
- Possible causes:
- Directory or file lacks write permission for the web server
- Solutions:
- Set directories that need to be writable to 755
- Temporarily set files that need to be writable to 644 or 664
- After updates are complete, consider reverting sensitive config files to more restrictive permissions
Best Practices for File Permissions
- Follow the principle of least privilege: Only give the minimum permissions necessary
- Regularly audit permissions: Check for files with excessive permissions
- Be cautious with 777: Almost never use 777 (rwxrwxrwx) permissions
- Protect configuration files: Use 600 or 640 permissions for files with sensitive information
- Document changes: Keep track of permission changes you make
- Backup before bulk changes: Always create a backup before making bulk permission changes
- Use specific permissions for different file types: Scripts, images, and configuration files all have different permission requirements
When to Seek Professional Help
Consider contacting dotCanada.com support if:
- You've tried the standard permission fixes and still have issues
- You're unsure about which permissions to set for specific files
- You need to fix permissions after a site compromise or hack
- You need help with complex permission structures for custom applications
- You need guidance on setting permissions for advanced server configurations
If you need assistance with permission issues, please contact our support team.