Preparare uno script che esegua le modifiche desiderate, ad esempio uno script che scriva il file corretto con l'IP statico (cosa inserire in questo script non rientra nell'ambito di queste domande e risposte). Chiamiamo questo script /root/set_static_ip
. (1)
Modifica /etc/sudoers
(2) (con visudo
è meglio, verifica la sanità mentale, è molto difficile ripristinare un sistema con un file sudoers non valido, anche impossibile da remoto (3)) e aggiungere
user_name_to_authorize ALL=NOPASSWD: /root/set_static_ip
Ora quell'utente è in grado di utilizzare sudo /root/set_static_ip
senza che sia richiesta la password e lo script verrà eseguito con tutti i privilegi; nessun altro comando sarà permesso.
Se vuoi che l'utente sostituisca semplicemente un file con quello che vuole, lo script potrebbe semplicemente essere (chiamalo /root/unsafe-overwrite-interface
)
#! /bin/bash -e
#
cp /tmp/temp-iface.txt /etc/network/interfaces
exit 0
... e dici all'utente di modificarlo /tmp/temp-iface.txt
e quindi eseguirlo sudo /root/unsafe-overwrite-interface
--- abilitandolo nei sudoer come specificato sopra. In alternativa, puoi aggiungere l'utente a un elenco ACL e concedere loro l'autorizzazione di scrittura sul file specifico .
Tuttavia, se non si controlla il contenuto del file per sicurezza, si verificherà il caos , intenzionale o non intenzionale.
Note a piè di pagina :
(1) questo script deve essere il più sicuro possibile. Controlla gli input e così via. Sarà eseguito con le autorizzazioni complete.
(2) nella moderna installazione sudo, è possibile aggiungere un file alla /etc/sudoers.d/
directory che è meglio --- sopravviverà agli aggiornamenti.
(3) Di solito tengo aperto un terminale con una sessione root ( sudo -i
) quando modifico il meccanismo sudoers e un backup a portata di mano.
/var/tmp/foo
=/etc/network/interfaces
? Non ho mai visto quello che stai cercando di dire lì, sono abbastanza nuovo su Linux.