come eseguire script come un altro utente senza password

Ho script.sh che deve essere eseguito come utente2. Tuttavia, questo script può essere eseguito solo con user1 nella mia applicazione.

Vorrei eseguire il seguente comando:

su user2 -C script.sh 

ma essere in grado di eseguire senza password.

Voglio anche che sia molto restrittivo, poiché in user1 è ansible eseguire solo script.sh con user2 e nient’altro.

Ho provato a farlo con il file sudoers e sono stato confuso all’infinito dopo ore di tentativi.

Se qualcuno può fornire un esempio esplicito di come questo può essere realizzato (invece di qualcosa di generico come usare sudoers), sarebbe molto apprezzato.

Chiama visudo e aggiungi questo:

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

I percorsi dei comandi devono essere assoluti ! Quindi chiama sudo -u user2 /home/user2/bin/test.sh da una shell user1 . Fatto.

prova a correre:

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

Questo eseguirà il comando come nome utente dato che hai le autorizzazioni per sudo come quell’utente.