• [^] # Re: droits root non nécessaires

    Posté par . En réponse au journal Mini-projet (python): un démon système pour gérer des raccourcis clavier. Évalué à 9.

    c'est lié au fichier lui-même.

    C'est plus compliqué que cela. Il est possible d'attacher des capabilities à un fichier pour qu'un utilisateur exécutant ce fichier ait ces capabilities. Mais il est aussi possible pour un processus de supprimer des capabilities. C'est ce dernier cas qui est utilisé avec systemd. Cela permet de se retrouver avec uniquement les capabilities dont on a besoin et donc de ne pas avoir la capability SYS_ADMIN (celle que tu appelle root à mon avis). Et donc même en étant root, il y a plein d'opération que ton processus ne peut pas faire.

    Les capabilites sont des permissions différents des permissions sur les fichiers. Tu as, par exemple, la capability SYS_BOOT qui te permet de redémarrer le système ou NET_RAW pour ouvrir des sockets raw. Que tu sois root ou pas, si tu n'as pas ces capabilities, tu ne peux pas faire l'opération. Inversement, tu peux faire ces opérations sans être root si tu as ces capabilities.

    Je pense que ça se discute, mais pour moi, c'est bien au système d'init de lancer les processus avec le moins de droit possible et donc être root sans capabilities par exemple.

    est-ce un processus sous root qui initialise tous le /dev avec divers user:groups? Se sert-il de capabilities?

    Les capabilities, c'est pour l'appel système ioctl( fd, KDSETMODE, KD_GRAPHICS évoqué plus haut, pas pour écrire dans un fichier.

    « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche