Sto cercando di utilizzare correttamente il comando sudo e il file sudoers in modo da poter eseguire un comando come un altro utente.
Ho il mio file sudoers impostato come segue:
beans ALL = (root,apache) NOPASSWD: /opt/renovations/var/script-*.sh
root, apache e bean fanno parte dei bean di gruppo.
Inoltre / opt ha 755 permessi, mentre la directory / opt / renovations e le sue sottodirectory sono di proprietà dell'utente e del gruppo bean.
Il comando che sto cercando di eseguire come bean è:
sudo -n -u apache -i /opt/renovations/var/script-test.sh
-n: è così che non mi viene richiesta una password, poiché questa verrà eseguita da un cron
-u: è così che posso impersonare l'utente apache
-i: è così che simulo un login e il mio .profile è caricato. Ne ho bisogno per accedere alle variabili d'ambiente in .profile.
Il problema è che quando eseguo il comando sudo, ricevo il seguente messaggio:
sudo: scusa, per eseguire sudo è necessaria una password
Ho provato a eseguirlo sia su AIX che su Ubuntu, ma il problema è su entrambi i sistemi. Funziona se corro:
sudo -n -u apache /opt/renovations/var/script-test.sh
Ma senza -i, il mio ambiente non contiene tutte le variabili di ambiente di cui ho bisogno per essere lì.
C'è qualcosa che devo aggiornare nel mio file sudoers in modo che ciò sia possibile?
beans ALL = (root,apache) NOPASSWD: /usr/bin/ksh -c /opt/renovations/var/script-*.sh e beans ALL = (root,apache) NOPASSWD: /usr/bin/bash -c /opt/renovations/var/script-*.shMa ora ho il nuovo errore, ad esempio:ksh: /opt/renovations/var/script-test.sh: cannot execute
visudo -crestituisce (controlla gli errori dei sudoers). Inoltre, puoi confermare la versione completa di AIX (oslevel -s) e la versione di sudo installata?