Préparez un script qui fait l'édition que vous voulez, par exemple un script qui écrit le bon fichier avec l'IP statique (ce qu'il faut mettre dans ce script sort du cadre de ce Q&R). Appelons ce script /root/set_static_ip
. (1)
Edit /etc/sudoers
(2) (avec visudo
c'est mieux, il vérifie la santé mentale, il est très difficile de récupérer un système avec un fichier sudoers invalide, même impossible à distance (3)), et ajoutez
user_name_to_authorize ALL=NOPASSWD: /root/set_static_ip
Maintenant que l'utilisateur peut utiliser sudo /root/set_static_ip
sans mot de passe demandé, et le script s'exécutera avec tous les privilèges; aucune autre commande ne sera autorisée.
Si vous voulez que l'utilisateur remplace simplement un fichier par ce qu'il veut, le script pourrait simplement être (appelez-le /root/unsafe-overwrite-interface
)
#! /bin/bash -e
#
cp /tmp/temp-iface.txt /etc/network/interfaces
exit 0
... et vous dites à l'utilisateur de modifier /tmp/temp-iface.txt
puis d'exécuter sudo /root/unsafe-overwrite-interface
--- l'activation dans sudoers comme spécifié ci-dessus. Ou vous pouvez ajouter l'utilisateur à une liste ACL et lui accorder une autorisation d'écriture sur le fichier spécifique .
Mais notez que si vous ne vérifiez pas le contenu du fichier pour des raisons de sécurité, des ravages se produiront, intentionnels ou non.
Notes de bas de page :
(1) ce script doit être aussi sûr que possible. Vérifiez les entrées, etc. Il sera exécuté avec des autorisations complètes.
(2) dans une installation sudo moderne, vous pouvez ajouter un fichier au /etc/sudoers.d/
répertoire qui est mieux --- survivra aux mises à jour.
(3) Je garde normalement un terminal avec une session root ouverte ( sudo -i
) lorsque je modifie le mécanisme sudoers et une sauvegarde à portée de main.
/var/tmp/foo
=/etc/network/interfaces
? Je n'ai jamais vraiment vu ce que vous essayez de dire là-bas, je suis assez nouveau sur Linux.