Software⏱️ 4 min read📅 2026-06-11

How to Fix: ubuntu upstart permission error when writing to log on a non admin user

Ubuntu upstart permission error when writing to log on a non-admin user

Quick Answer: Use the `chown` command to change the ownership of the log file to the www-data user, or use the `setgid` directive in the upstart script to set the group ID of the log file.

The error 'ubuntu upstart permission error when writing to log on a non-admin user' occurs when the Upstart job attempts to write to a log file as a non-admin user, resulting in a permission denied error. This issue affects users who run their applications with a non-admin user and want to log the output to a file.

This error can be frustrating because it prevents the application from functioning correctly and logging its output. However, there are several methods to address this issue without requiring admin privileges or pre-creating log files.

🔍 Why This Happens

  • The primary reason for this error is that the Upstart job is running as a non-admin user (in this case, www-data) and lacks write permissions on the log file. This is because the setuid directive in the Upstart script sets the user ID of the process to the owner of the log file, which is usually root or another admin user.
  • Alternatively, if the Upstart job is run with sudo, it may also cause issues due to the way sudo handles permissions and logging. However, this approach is generally discouraged as it can lead to security issues and make it difficult to track the actual user running the process.

🚀 How to Resolve This Issue

Using a Group for Logging

  1. Step 1: To fix this issue without pre-creating log files or using sudo, create a new group specifically for logging purposes. For example, you can add `www-data:log` to the /etc/group file. Then, update the Upstart script to use this group instead of www-data for logging.
  2. Step 2: Edit the Upstart script to change the user ID and group from www-data to log: `setuid 100` and `group log`. This will ensure that the log file is owned by the log group and can be written by any member of that group, including the non-admin user running the application.

Using a Different Log File Location

  1. Step 1: Alternatively, you can change the location of the log file to a directory where the non-admin user has write permissions. For example, you can create a new directory under /var/log and update the Upstart script to use this location instead of /var/log/testapp.log.
  2. Step 2: Edit the Upstart script to change the log file location: `exec node /var/testapp/app.js > /var/log/myapp.log 2>&1`. This will ensure that the log file is written in a directory where the non-admin user has write permissions.

🎯 Final Words

To summarize, you can address the 'ubuntu upstart permission error when writing to log on a non-admin user' issue by either creating a new group for logging purposes or changing the location of the log file to a directory where the non-admin user has write permissions. Both approaches allow you to maintain minimal setup and avoid using sudo or pre-creating log files.

Did this fix your problem?

If not, try searching for specific error codes.

🔍 Search Error Database

❓ Frequently Asked Questions