Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

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?

share|improve this question
    
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? –  joesavage Nov 21 '11 at 19:01

2 Answers 2

up vote 6 down vote accepted

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)

share|improve this answer

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

share|improve this answer
    
This always seems to error for me. –  joesavage Nov 21 '11 at 19:26

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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