como executar script como outro usuário sem senha

Eu tenho script.sh que deve ser executado como user2. No entanto, esse script só pode ser executado sob user1 no meu aplicativo.

Eu gostaria que o seguinte comando fosse executado:

su user2 -C script.sh 

mas ser capaz de rodar sem senha.

Eu também quero que isso seja muito restritivo, como no user1 só pode executar script.sh em user2 e nada mais.

Eu tentei fazer isso com o arquivo sudoers e fiquei confuso após horas de tentativas.

Se alguém puder fornecer um exemplo explícito de como isso pode ser realizado (em vez de algo genérico como o uso de sudoers), seria muito apreciado.

Chame o visudo e adicione isto:

 user1 ALL=(user2) NOPASSWD: /home/user2/bin/test.sh 

Os caminhos de comando devem ser absolutos ! Em seguida, chame sudo -u user2 /home/user2/bin/test.sh de um shell user1 . Feito.

tente executar:

 su -c "Your command right here" -s /bin/sh username 

Isto irá executar o comando como nome de usuário, dado que você tem permissions para usar como usuário.