Run shell scripts from PHP as a different (non-root) user
I’m trying to run a shell script owned by an unprivileged user via PHP on an Ubuntu server. Permission issues make it impractical to run it using
exec() because it is
www-data that runs it. I googled a bit and found various references to suExec (which seems too cumbersome for such a minor issue), setting the suid bit, and an interesting approach on Stackoverflow that involves a Python server listening for commands sent via PHP.
Anyway, of all these solutions, I tend to involve the one that sets the suid bit, tried but didn’t work:
chmod u+s script.sh, and my Apache logs still show permission errors, so I know the script is not running as its owner, but as
What do I need to do to get it to work, is there an easier solution to fix this?
Check out the man page for sudo:
sudo -u your_other_user will let you execute commands as a different user.
You can also use man sudoers to find options for which commands users can execute with sudo.