Je configure sudo sur un serveur et pose la question suivante. Je veux seulement qu'un groupe d'utilisateurs exécute le /sbin/ifconfig
. J'ai configuré sudo:
User_Alias NETWORK = user1
Cmnd_Alias NETWORKING = /sbin/ifconfig
Host_Alias MYHOSTS = localhost
règle:
NETWORK MYHOSTS = (root) NETWORKING
Cela fonctionne bien pour l'utilisateur utilisateur1 : sudo ifconfig
demande le mot de passe. Mais, je vois que tout utilisateur d’ordinateur peut exécuter ifconfig aussi parce que les permissions sur ce fichier dans /sbin
sont 755. Est-ce vrai? Devrais-je aussi changer les permissions du fichier?
ifconfig
, mais ne peut pas apporter de modifications commeifconfig eth0 down
ce qui nécessite root / sudo.sudo command
. Sinon, seules les autorisations du système de fichiers (ou d'autres mécanismes de sécurité) sont respectées.sudo /sbin/ifconfig (...)
est d'exécuter le/sbin/ifconfig
commande en tant qu'utilisateurroot
, qui peut faire plus avec cette commande qu’un utilisateur normal ne le peut pas, pas à cause des autorisations définies/sbin/ifconfig
ou à cause des lignes dans lesudo
configuration, mais à cause des autorisations définies sur d’autres fichiers utilisés par/sbin/ifconfig
.Réponses:
De la page de manuel sudo:
Cela n'affecte pas les autorisations habituelles (système de fichiers). Donc, si un exécutable a des permissions 755 (
-rwxr-xr-x
) chaque l'utilisateur sur le système peut l'exécuter. Mais, selon l’exécutable, vous obtenez une erreur d’autorisation refusée pour certaines opérations:Veuillez noter que la modification des autorisations de
/sbin/ifconfig
à 700 (-rwx-----
) empêchera les utilisateurs normaux de l'exécuter, mais il pourrait y avoir d'autres moyens d'obtenir l'information Par exemple. l'adresse IP viaip address
ou la/proc
système de fichiers.la source