15

I'd like to allow one of my users to execute commands as another user on my Ubuntu Lucid server.

I'm struggling with finding the syntax for the sudoers file to do this. Say I'm connecting to the box with a user called 'ludo', and I want ludo to be able to execute commands as the 'django' user. eg:

sudo -u django

I'd like to be able to execute /any/ commands as the django user, and without prompting for a passsword. All the examples I find are for a restricted subset. I did attempt something but got a syntax error upon exiting visudo so I bottled it.

Thanks :)

3 Answers 3

25

You can put the user to run as in parentheses before the command list:

ludo ALL = (django) NOPASSWD: ALL
1
  • Using ALL can be insecure. Make sure to specify only the needed commands full path. If this is used within the host only its ok, but if the host is exposed to external users (for example CI gitlab runner, it can be dangerous) Commented Jun 25 at 12:53
4

For a finer grained control you could consider defining the specific command that ludo will be running as django.

ludo  ALL=(django) NOPASSWD: /usr/bin/python
0

According to sudoers(5) adding the line ludo ALL = /usr/bin/su django in the sudoers file should do the trick.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .