sudo: come consentire un solo argomento a un comando?


8

Voglio aggiungere una voce ai miei suoder per consentire a un utente di eseguire un comando con esattamente un argomento non opzionale.

# tail -1 /etc/sudoers
ALL     ALL = (:tool) NOPASSWD: /bin/echo [a-z]*
$ sudo -g tool /bin/echo abc def
abc def
$ sudo -g tool /bin/echo -abc def
[sudo] password for user: 

Posso farlo usando i sudoers sytnax? O devo creare uno script di supporto?


è una discussione set come sempre -abc? o può variare?
Mike,

Il [a-z]*è già l'argomento che voglio. Quindi è un argomento variabile. (Uso / bin / echo solo per i test.)
Elrond

Risposte:


8

Per quanto ne so, non è possibile passare argomenti su comando in sudo se tale argomento varia.

Puoi specificare qualcosa del genere:

users ALL=(ALL) NOPASSWD: /usr/bin/tail /some/file

Ciò consentirebbe all'utente di selezionare alcuni file ma non altri file.

Se devi passare una variabile, ti consiglio uno script wrapper.

Ecco un esempio di un wrapper rsync:

https://sites.google.com/site/beingroot/articles/useful-scripts/wrapper-script-to-use-rsync-via-sudo

Se cerchi google sudo wrapper, puoi trovare molti altri esempi.

Assicurati di codificare tutti i percorsi e di eseguire controlli di integrità sull'input se l'utente non può essere considerato attendibile.


2
Dovrebbe avere comunque controlli di integrità. Non fidarti di nessuno! [/ paranoico]
Nathan C
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.