Sudo et autorisations de fichiers

1

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?

aelbaz
la source
Habituellement, chaque utilisateur peut exécuter ifconfig, mais ne peut pas apporter de modifications comme ifconfig eth0 down ce qui nécessite root / sudo.
mpy
Alors la commande sudo n'est pas complètement bloquée, mais seulement certaines actions. Bien que ce ne soit pas un utilisateur du fichier sudo, les autorisations continueront d'avoir un fichier normal, est-ce correct?
aelbaz
Correct, si je vous comprends bien. Dans mes propres mots: sudo ne vérifie les autorisations que si une commande est exécutée via sudo command. Sinon, seules les autorisations du système de fichiers (ou d'autres mécanismes de sécurité) sont respectées.
mpy
1
@ aelbaz: qu'entendez-vous par "les autorisations continueront d'avoir un fichier normal"? L'effet de sudo /sbin/ifconfig (...) est d'exécuter le /sbin/ifconfig commande en tant qu'utilisateur root, 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 le sudo configuration, mais à cause des autorisations définies sur d’autres fichiers utilisés par /sbin/ifconfig.
reinierpost

Réponses:

2

De la page de manuel sudo:

sudo autorise un utilisateur autorisé à exécuter une commande en tant que superutilisateur ou autre utilisateur, comme spécifié par la politique de sécurité.

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:

$ ls -l /sbin/ifconfig
-rwxr-xr-x 1 root root 67912 May 11  2013 /sbin/ifconfig
$ whoami
user
$ /sbin/ifconfig
eth0      Link encap:Ethernet  HWaddr 00:00:00:00:00:00  
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:29886 errors:0 dropped:0 overruns:0 frame:0
          TX packets:17383 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:3706932 (3.5 MiB)  TX bytes:34965406 (33.3 MiB)
$ /sbin/ifconfig eth0 down
 SIOCSIFFLAGS: Opération non autorisée  $ sudo / sbin / ifconfig eth0 down
[sudo] mot de passe pour l'utilisateur:
 -  pas d'erreur  -
$ 

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 via ip address ou la /proc système de fichiers.

mpy
la source