42

I created a "system" user in Ubuntu 11.04 (adduser --system) for running certain cron jobs, but sometimes I want to test things out by manually running commands as that user. What's the easiest way to do this?

su doesn't work, because the user has /bin/false as its shell (which is fine for cron). I've been manually changing the shell to /bin/bash to do my testing and then changing it back again, but I wonder is there an easier way?

7ochem
  • 282
  • 1
  • 4
  • 12
EMP
  • 5,234

2 Answers2

55

I use su - targetuser -s /bin/bash from a root shell.

For direct command execution use -c:

su - targetuser -s /bin/bash -c "/bin/echo hello world" 
Tombart
  • 2,523
dmourati
  • 26,498
2

Use sudo. This will work even if the user doesn't have a real shell.

eirescot
  • 594