J'essaie d'écrire /etc/network/interfaces
avec un utilisateur qui n'a pas de privilèges root.
La raison de vouloir écrire sur ceci serait de permettre à l'utilisateur de définir une adresse IP statique car j'exécute un serveur en ligne de commande uniquement. De quelle autorisation ai-je besoin pour donner à l'utilisateur etc/sudoers
?
Je ne veux pas que l'utilisateur ait des autorisations root complètes. Juste la possibilité de modifier ce fichier.
/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.setfacl: /etc/logrotate.conf: Operation not supported
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) (avecvisudo
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 ajoutezMaintenant 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
)... et vous dites à l'utilisateur de modifier
/tmp/temp-iface.txt
puis d'exécutersudo /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.la source
/etc/network/interfaces
fichier quel qu'il soit/root/set_static_ip
. A moins que vous ne puissiez faire un script qui demande à l'utilisateur de saisir une adresse IP, une passerelle, etc ... Ce que je ne suis pas assez bon pour faire./etc/sudoers
, ce n'estvisudo
pas le cassudoedit
.