42

I've recently set up my server so that my suPHP 'virtual' users can't be logged into by using this article

My issue now is that before when I ran a rake command for my Ruby on Rails application running on the server, I used su to go into www-data and execute the command from there - obviously I can't do that anymore because of the nologin.

So as a root user, how can I execute commands as other user's, even if they are nologin?

  • One way is to launch a shell for that user (explicitly specifying the shell): sudo -u www-data bash execute your command(s) and logout – cyberx86 Nov 21 '11 at 18:21
  • @cyberx86 Your solution works a treat, could you submit it as an answer for me? – user82250 Nov 21 '11 at 19:01
50

One way is to launch a shell for that user (explicitly specifying the shell):

sudo -u www-data bash 

This will launch a (bash) shell as the specified user. You can then execute your command(s) and logout (to return to your previous shell)

38

As root you can use su -s /bin/sh $user — the -s option overrides the configured shell for the user.

  • 1
    This always seems to error for me. – user82250 Nov 21 '11 at 19:26
  • Works great for me, never had a prob. When running scripts with bash syntax needs /bin/bash rather than /bin/sh – ekerner Oct 8 '17 at 18:52

Your Answer

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