Comment puis-je lancer growisofs via sudo?

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 - ?

Context

Ce comportement est embedded dans l'outil growisofs pour empêcher l'access au système de files avec des privilèges élevés.

  • http://fy.chalmers.se/~appro/linux/DVD+RW/growisofs.1m.html

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 laissant mkisofs 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 sous sudo(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'environnement MKISOFS afin de déterminer un path alternatif vers l'image exécutable mkisofs. Cela signifie qu'être exécuté sous sudo(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 sous sudo(8) pour le binary growisofs 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écuter mkisofs 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.