Chaque fois que j'ai essayé d'exécuter growisofs
via sudo
j'ai toujours eu le message d'erreur suivant.
$ sudo -i growisofs :-( growisofs is being executed under sudo, aborting! See NOTES paragraph in growisofs manual page for further details. $ sudo -s growisofs :-( growisofs is being executed under sudo, aborting! See NOTES paragraph in growisofs manual page for further details.
Ce qui m'amène à faire un sudo su -
suivi de growisofs
.
$ sudo su - -c growisofs growisofs: previous "session" device is not specified, do use -M or -Z option -or- $ sudo su - # growisofs ...
Y at-il une autre façon que je peux le faire sans avoir à faire le su -
?
Ce comportement est embedded dans l'outil growisofs
pour empêcher l'access au système de files avec des privilèges élevés.
extrait
REMARQUES
Si exécuté sous
sudo(8)
growisofs
refuse de démarrer. Ceci est fait pour la raison suivante. Naturellement,growisofs
doit accéder à l'set de données à save sur un support DVD, soit indirectement en laissantmkisofs
générer la disposition ISO9660 à la volée ou directement si une image pré-mastered doit être enregistrée. En cours d'exécution soussudo(8)
,growisofs
accorde effectivement aux lecteurs sudo un access en lecture à n'importe quel file du système de files. La situation est intensifiée par le fait que growisofs parsing la variable d'environnementMKISOFS
afin de déterminer un path alternatif vers l'image exécutable mkisofs. Cela signifie qu'être exécuté soussudo(8)
, growisofs accorde effectivement aux sudoers le droit d'exécuter le programme de leur choix avec des privilèges élevés. Si pour une raison ou une autre, vous trouvez que les conditions ci-dessus sont acceptables et que vous êtes prêt à en prendre les conséquences, envisagez d'exécuter le script wrapper suivant soussudo(8)
pour le binarygrowisofs
réel.#!/bin/ksh unset SUDO_COMMAND export MKISOFS=/path/to/trusted/mkisofs exec growisofs "$@"
Mais notez que l'alternative recommandée à la solution de contournement ci-dessus est en fait d'installer
growisofs
set-root-uid, auquel cas il abandonnera les privilèges avant d'accéder aux données ou d'exécutermkisofs
afin d'empêcher l'access non autorisé aux données.
Ce que growisofs
fait ici search la variable d'environnement SUDO_COMMAND
et annule si la variable est trouvée. La raison pour laquelle sudo su -
works est parce que su -
nettoie l 'environnement.
Plutôt que d'avoir à get un shell complet, vous pouvez faire:
sudo env -i growisofs
Cela va effacer l'environnement, tout comme su -
. La seule différence est que su -
mettra également les variables de base (dans /etc/profile
et tel) en arrière, où env -i
wont (environnement complètement vide).
Une solution plus précise serait:
sudo env -u SUDO_COMMAND growisofs
Cela préservera l'environnement à l'exception de SUDO_COMMAND
.
chmod u+s /usr/bin/growisofs solves this problem.
Mais c'est un bon exemple de la "mauvaise façon de le faire" car cela brise la security offerte par sudo
. SetUID growisofs
présente un problème de security encore pire que la configuration soignée de sudo
et cela n'a aucune valeur pour un système de bureau personnel, IMO.