configurazione sudoers a grana fine (argomenti della riga di comando consentiti)


20

esiste un modo semplice per consentire l'esecuzione di un utente (ad esempio)

/usr/bin/pacman -S -u

come root, senza permettergli di correre

/usr/bin/pacman -S -u some_package

?

La linea

user ALL=(root) NOPASSWD: /usr/bin/pacman -S -u

consente sia, sia

user ALL=(root) NOPASSWD: /usr/bin/pacman -S -u ""

sembra essere semanticamente equivalente.

Risposte:


27

Per il tuo caso prova qualcosa del genere:

Cmnd_Alias PACMAN = /usr/bin/pacman -S -u, ! /usr/bin/pacman -S -u some_package
user ALL=(root) NOPASSWD: PACMAN

Puoi usare i pattern di shell glob come [az], [0-9], * ecc. Nel tuo file sudoers per escludere pacchetti che corrispondono ad un certo pattern.


3

Scrivi uno script che fa quello che vuoi e dai a sudo l'accesso ad esso.

Inoltre, assicurati che qualunque ambiente in cui viene eseguito non abbia affatto accesso alla rete, oppure possono semplicemente usare il proprio DNS per falsificare il mirror e quindi eseguire codice arbitrario come root quando viene installato da pacman.


non è un modo elegante, sudo supporta di default l'esatto caso dato
matthias krull,

1
Non la soluzione migliore, ma +1 per un avviso di sicurezza
Aaron J Lang
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.