I have a bunch of PHP scripts are run by cron (/etc/crontab) at specific times. The scripts are owned by www-data. However, www-data does not have shell access. In fact, it has "nologin" set as its shell.

I am unsure which user to run the script as. I don't think it's safe to run the script as root - that would give it too much access to things in case anything harmful might ever happen inside those scripts. But I also am not sure if it is safe to give the www-data user shell access.

Anyone that is better informed on the subject that could help me out here?

1 Answer 1


It is safer to run cron job with the user that own the files in web path.

In order to run cron job shell access is not required. However, if you need it for some reason, you can defile it in environment variable SHELL=/bin/bash in the crontab.


0 * * * * php test.php
  • That is what I thought :). The cron jobs were not running for some reason and I thought it was because www-data didn't have shell access, but apparently something else was wrong, as I have made some changes and everything is working now. Thanks!
    – minitauros
    Aug 25, 2017 at 12:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.