How to make passwordless switch to another user in a shell script
linux, sudo, sudoers, ubuntu, ubuntu-12.04
Solution
You don't use "su" with the sudoers file, you need to use "sudo". So, you'd want a command line like:
`sudo su - hduser`
which would do want you want, provided you had the appropriate lines in the sudoers file. A line like this:
`hadoopmaster ALL=(ALL:ALL) NOPASSWD: su - hduser`
should do the trick.
Problem
I want to su from hadoopmaster to hduser. When I do it on the terminal, I do: ``` su - hduser ``` which then asks me for the password and I enter it and I get in to hduser. How can I do the same in a shell script without having to worry about the password? I tried the `sudoers` file method where I put: ``` root ALL=(ALL:ALL) ALL hduser ALL=(ALL:ALL) ALL hadoopmaster ALL=(ALL:ALL) NOPASSWD: /bin/su hduser (here I tried different combinations of the line with and without the '-' and also with and without /bin) ``` I did this and when I do `su hduser` or `su - hduser`, it prompts me for the password again. What do I do?