Dans le message <news:, *Hugues* tapota sur f.c.o.l.configuration :
En fait si je comprends bien, tu cherches à exécuter un programme en tant qu'utilisateur normal, mais ce programme a besoin d'être en tant que root pour fonctionner. Et tu cherches à faire ça à partir d'un shellscript.
Ça n'est pas possible.
Si si, ici c'est possible puisqu'on utilise l'interpréteur suidperl. Le seul problème ici est que l'exécution d'une commande système en utilisant la fonction system de perl se fera avec les droits de UID (real user id) et pour qu'il se fasse avec les droits de EUID (effective user id) il faut redéfinir la variable $< comme l'a suggéré Nicolas George.
D'après ce que j'ai lu sur une excellente page explicative : http://lea-linux.org/dev/suid_scripts.html
Il te faut passer par un programme écrit en C, afin de faire appel aux routines système qui vont bien, et qui vont réellement te donner les droits root pour l'exécution du programme voulu.
L'utilisation d'un wrapper est inutile ici et d'une manière générale j'aurais tendance à conseiller plutôt d'utiliser sudo qui quoi qu'on en dise est beaucoup plus secure.
Encore une fois, toutes mes excuses si je suis à côté de la plaque
Vous n'étiez pas tout à fait à côté de la plaque, juste un peu en retard sur ce qui avait été déjà dit. :)
(et je vais tenter de changer de fournisseur nntp afin d'accéder aux archives qui me manquent)
http://groups.google.fr pour les archives
http://www.free.fr pour un accès gratuit à un des meilleurs fournisseurs nntp d'Europe.
-- TiChou
Dans le message <news:874qlveke2.fsf@paranoid.nullpart.net>,
*Hugues* tapota sur f.c.o.l.configuration :
En fait si je comprends bien, tu cherches à exécuter un programme en
tant qu'utilisateur normal, mais ce programme a besoin d'être en tant
que root pour fonctionner.
Et tu cherches à faire ça à partir d'un shellscript.
Ça n'est pas possible.
Si si, ici c'est possible puisqu'on utilise l'interpréteur suidperl.
Le seul problème ici est que l'exécution d'une commande système en utilisant
la fonction system de perl se fera avec les droits de UID (real user id) et
pour qu'il se fasse avec les droits de EUID (effective user id) il faut
redéfinir la variable $< comme l'a suggéré Nicolas George.
D'après ce que j'ai lu sur une excellente page explicative :
http://lea-linux.org/dev/suid_scripts.html
Il te faut passer par un programme écrit en C, afin de faire appel aux
routines système qui vont bien, et qui vont réellement te donner les
droits root pour l'exécution du programme voulu.
L'utilisation d'un wrapper est inutile ici et d'une manière générale
j'aurais tendance à conseiller plutôt d'utiliser sudo qui quoi qu'on en dise
est beaucoup plus secure.
Encore une fois, toutes mes excuses si je suis à côté de la plaque
Vous n'étiez pas tout à fait à côté de la plaque, juste un peu en retard sur
ce qui avait été déjà dit. :)
(et je vais tenter de changer de fournisseur nntp afin d'accéder aux
archives qui me manquent)
http://groups.google.fr pour les archives
http://www.free.fr pour un accès gratuit à un des meilleurs fournisseurs
nntp d'Europe.
Dans le message <news:, *Hugues* tapota sur f.c.o.l.configuration :
En fait si je comprends bien, tu cherches à exécuter un programme en tant qu'utilisateur normal, mais ce programme a besoin d'être en tant que root pour fonctionner. Et tu cherches à faire ça à partir d'un shellscript.
Ça n'est pas possible.
Si si, ici c'est possible puisqu'on utilise l'interpréteur suidperl. Le seul problème ici est que l'exécution d'une commande système en utilisant la fonction system de perl se fera avec les droits de UID (real user id) et pour qu'il se fasse avec les droits de EUID (effective user id) il faut redéfinir la variable $< comme l'a suggéré Nicolas George.
D'après ce que j'ai lu sur une excellente page explicative : http://lea-linux.org/dev/suid_scripts.html
Il te faut passer par un programme écrit en C, afin de faire appel aux routines système qui vont bien, et qui vont réellement te donner les droits root pour l'exécution du programme voulu.
L'utilisation d'un wrapper est inutile ici et d'une manière générale j'aurais tendance à conseiller plutôt d'utiliser sudo qui quoi qu'on en dise est beaucoup plus secure.
Encore une fois, toutes mes excuses si je suis à côté de la plaque
Vous n'étiez pas tout à fait à côté de la plaque, juste un peu en retard sur ce qui avait été déjà dit. :)
(et je vais tenter de changer de fournisseur nntp afin d'accéder aux archives qui me manquent)
http://groups.google.fr pour les archives
http://www.free.fr pour un accès gratuit à un des meilleurs fournisseurs nntp d'Europe.
-- TiChou
Nicolas George
Hugues wrote in message :
Et tu cherches à faire ça à partir d'un shellscript.
En l'occurence, c'est un script perl, et perl prévoit un mécanisme précisément pour celà : s'il détecte qu'il exécute un script SUID, perl appelle le binaire suidperl, qui est lui-même SUID root, et qui simule le SUID sur le script (vérification des droits, changement d'identité, etc.).
Hugues wrote in message <874qlveke2.fsf@paranoid.nullpart.net>:
Et tu cherches à faire ça à partir d'un shellscript.
En l'occurence, c'est un script perl, et perl prévoit un mécanisme
précisément pour celà : s'il détecte qu'il exécute un script SUID, perl
appelle le binaire suidperl, qui est lui-même SUID root, et qui simule le
SUID sur le script (vérification des droits, changement d'identité, etc.).
Et tu cherches à faire ça à partir d'un shellscript.
En l'occurence, c'est un script perl, et perl prévoit un mécanisme précisément pour celà : s'il détecte qu'il exécute un script SUID, perl appelle le binaire suidperl, qui est lui-même SUID root, et qui simule le SUID sur le script (vérification des droits, changement d'identité, etc.).
TiChou
Dans le message <news:cihgin$82d$, *C. Tobini* tapota sur f.c.o.l.configuration :
TiChou wrote:
Relisez ce que vous a dit Nicolas George... Il vous dit de placer dans votre script : $< = $>; et aussi de tester ce que retourne la ligne : system "id";
OK j'avais lu trop vite :-)
L'égalité fait que je suis en UID root dans tout le script.
Donc c'est bon, c'est bien ce que vous souhaitiez ?
La commande system 'id' retourne -1.
Ça ça n'est pas normal. Problème de syntaxe ? De chemin ?
Et si vous n'êtes toujours pas convaincu, parce que votre réponse ici n'est pas très claire :
Dans le message <news:cihgin$82d$1@news-reader3.wanadoo.fr>,
*C. Tobini* tapota sur f.c.o.l.configuration :
TiChou wrote:
Relisez ce que vous a dit Nicolas George... Il vous dit de placer dans
votre script :
$< = $>;
et aussi de tester ce que retourne la ligne :
system "id";
OK j'avais lu trop vite :-)
L'égalité fait que je suis en UID root dans tout le script.
Donc c'est bon, c'est bien ce que vous souhaitiez ?
La commande system 'id' retourne -1.
Ça ça n'est pas normal. Problème de syntaxe ? De chemin ?
Et si vous n'êtes toujours pas convaincu, parce que votre réponse ici n'est
pas très claire :
Dans le message <news:cihgin$82d$, *C. Tobini* tapota sur f.c.o.l.configuration :
TiChou wrote:
Relisez ce que vous a dit Nicolas George... Il vous dit de placer dans votre script : $< = $>; et aussi de tester ce que retourne la ligne : system "id";
OK j'avais lu trop vite :-)
L'égalité fait que je suis en UID root dans tout le script.
Donc c'est bon, c'est bien ce que vous souhaitiez ?
La commande system 'id' retourne -1.
Ça ça n'est pas normal. Problème de syntaxe ? De chemin ?
Et si vous n'êtes toujours pas convaincu, parce que votre réponse ici n'est pas très claire :
Dans le message <news:, *Hugues* tapota sur f.c.o.l.configuration :
En fait si je comprends bien, tu cherches à exécuter un programme en tant qu'utilisateur normal, mais ce programme a besoin d'être en tant que root pour fonctionner. Et tu cherches à faire ça à partir d'un shellscript.
Ça n'est pas possible.
Si si, ici c'est possible puisqu'on utilise l'interpréteur suidperl.
Tout dépend de l'interpréteur effectivement, et notamment de ses droits d'accès. Avec un shell classique et des droits classiques, ça n'est pas possible, mais on se comprend ;-)
Le seul problème ici est que l'exécution d'une commande système en utilisant la fonction system de perl se fera avec les droits de UID (real user id) et pour qu'il se fasse avec les droits de EUID (effective user id) il faut redéfinir la variable $< comme l'a suggéré Nicolas George.
Je veux bien le croire, je connais trop mal Perl pour m'étaler dessus.
D'après ce que j'ai lu sur une excellente page explicative : http://lea-linux.org/dev/suid_scripts.html
Il te faut passer par un programme écrit en C, afin de faire appel aux routines système qui vont bien, et qui vont réellement te donner les droits root pour l'exécution du programme voulu.
L'utilisation d'un wrapper est inutile ici et d'une manière générale j'aurais tendance à conseiller plutôt d'utiliser sudo qui quoi qu'on en dise est beaucoup plus secure.
Sudo EST la méthode la plus secure pour accéder aux commandes système. J'appuie fortement ;-) Mais l'utilisation d'un programme seteuid n'a généralement pas les mêmes objectifs. Et comme j'ai manqué le début.. ;-)
(et je vais tenter de changer de fournisseur nntp afin d'accéder aux archives qui me manquent)
http://groups.google.fr pour les archives
Disons que j'étais atteint d'hypertropie palmaire sur ce coup là.
http://www.free.fr pour un accès gratuit à un des meilleurs fournisseurs nntp d'Europe.
Merci, je pensais à celui ci justement :) Allez hop, je switche dessus.
-- Hugues - Linux Addict
Ce cher "TiChou" <gro.uohcit@uohcit> a dit :
Dans le message <news:874qlveke2.fsf@paranoid.nullpart.net>,
*Hugues* tapota sur f.c.o.l.configuration :
En fait si je comprends bien, tu cherches à exécuter un programme en
tant qu'utilisateur normal, mais ce programme a besoin d'être en tant
que root pour fonctionner.
Et tu cherches à faire ça à partir d'un shellscript.
Ça n'est pas possible.
Si si, ici c'est possible puisqu'on utilise l'interpréteur
suidperl.
Tout dépend de l'interpréteur effectivement, et notamment de ses
droits d'accès. Avec un shell classique et des droits classiques, ça
n'est pas possible, mais on se comprend ;-)
Le seul problème ici est que l'exécution d'une commande système en utilisant
la fonction system de perl se fera avec les droits de UID (real user id) et
pour qu'il se fasse avec les droits de EUID (effective user id) il faut
redéfinir la variable $< comme l'a suggéré Nicolas George.
Je veux bien le croire, je connais trop mal Perl pour m'étaler dessus.
D'après ce que j'ai lu sur une excellente page explicative :
http://lea-linux.org/dev/suid_scripts.html
Il te faut passer par un programme écrit en C, afin de faire appel aux
routines système qui vont bien, et qui vont réellement te donner les
droits root pour l'exécution du programme voulu.
L'utilisation d'un wrapper est inutile ici et d'une manière générale
j'aurais tendance à conseiller plutôt d'utiliser sudo qui quoi qu'on en dise
est beaucoup plus secure.
Sudo EST la méthode la plus secure pour accéder aux commandes
système. J'appuie fortement ;-)
Mais l'utilisation d'un programme seteuid n'a généralement pas les
mêmes objectifs. Et comme j'ai manqué le début.. ;-)
(et je vais tenter de changer de fournisseur nntp afin d'accéder aux
archives qui me manquent)
http://groups.google.fr pour les archives
Disons que j'étais atteint d'hypertropie palmaire sur ce coup là.
http://www.free.fr pour un accès gratuit à un des meilleurs fournisseurs
nntp d'Europe.
Merci, je pensais à celui ci justement :)
Allez hop, je switche dessus.
Dans le message <news:, *Hugues* tapota sur f.c.o.l.configuration :
En fait si je comprends bien, tu cherches à exécuter un programme en tant qu'utilisateur normal, mais ce programme a besoin d'être en tant que root pour fonctionner. Et tu cherches à faire ça à partir d'un shellscript.
Ça n'est pas possible.
Si si, ici c'est possible puisqu'on utilise l'interpréteur suidperl.
Tout dépend de l'interpréteur effectivement, et notamment de ses droits d'accès. Avec un shell classique et des droits classiques, ça n'est pas possible, mais on se comprend ;-)
Le seul problème ici est que l'exécution d'une commande système en utilisant la fonction system de perl se fera avec les droits de UID (real user id) et pour qu'il se fasse avec les droits de EUID (effective user id) il faut redéfinir la variable $< comme l'a suggéré Nicolas George.
Je veux bien le croire, je connais trop mal Perl pour m'étaler dessus.
D'après ce que j'ai lu sur une excellente page explicative : http://lea-linux.org/dev/suid_scripts.html
Il te faut passer par un programme écrit en C, afin de faire appel aux routines système qui vont bien, et qui vont réellement te donner les droits root pour l'exécution du programme voulu.
L'utilisation d'un wrapper est inutile ici et d'une manière générale j'aurais tendance à conseiller plutôt d'utiliser sudo qui quoi qu'on en dise est beaucoup plus secure.
Sudo EST la méthode la plus secure pour accéder aux commandes système. J'appuie fortement ;-) Mais l'utilisation d'un programme seteuid n'a généralement pas les mêmes objectifs. Et comme j'ai manqué le début.. ;-)
(et je vais tenter de changer de fournisseur nntp afin d'accéder aux archives qui me manquent)
http://groups.google.fr pour les archives
Disons que j'étais atteint d'hypertropie palmaire sur ce coup là.
http://www.free.fr pour un accès gratuit à un des meilleurs fournisseurs nntp d'Europe.
Merci, je pensais à celui ci justement :) Allez hop, je switche dessus.
-- Hugues - Linux Addict
Hugues
Ce cher Nicolas George <nicolas$ a dit :
Hugues wrote in message :
Et tu cherches à faire ça à partir d'un shellscript.
En l'occurence, c'est un script perl, et perl prévoit un mécanisme précisément pour celà : s'il détecte qu'il exécute un script SUID, perl appelle le binaire suidperl, qui est lui-même SUID root, et qui simule le SUID sur le script (vérification des droits, changement d'identité, etc.).
Okii, et donc il ne reste plus qu'à effectuer le changement RUID > EUID C'est plus clair dans ma tête ;)
Allez, j'arrête de polluer sur un sujet que ne connais que mal (Perl) (ceci dit je trouve ce thread très intéressant)
-- Hugues - Linux Addict
Ce cher Nicolas George <nicolas$george@salle-s.org> a dit :
Hugues wrote in message <874qlveke2.fsf@paranoid.nullpart.net>:
Et tu cherches à faire ça à partir d'un shellscript.
En l'occurence, c'est un script perl, et perl prévoit un mécanisme
précisément pour celà : s'il détecte qu'il exécute un script SUID, perl
appelle le binaire suidperl, qui est lui-même SUID root, et qui simule le
SUID sur le script (vérification des droits, changement d'identité, etc.).
Okii, et donc il ne reste plus qu'à effectuer le changement RUID > EUID
C'est plus clair dans ma tête ;)
Allez, j'arrête de polluer sur un sujet que ne connais que mal (Perl)
(ceci dit je trouve ce thread très intéressant)
Et tu cherches à faire ça à partir d'un shellscript.
En l'occurence, c'est un script perl, et perl prévoit un mécanisme précisément pour celà : s'il détecte qu'il exécute un script SUID, perl appelle le binaire suidperl, qui est lui-même SUID root, et qui simule le SUID sur le script (vérification des droits, changement d'identité, etc.).
Okii, et donc il ne reste plus qu'à effectuer le changement RUID > EUID C'est plus clair dans ma tête ;)
Allez, j'arrête de polluer sur un sujet que ne connais que mal (Perl) (ceci dit je trouve ce thread très intéressant)
-- Hugues - Linux Addict
Jérémy JUST
On Sat, 18 Sep 2004 17:27:07 +0200 Hugues wrote:
En l'occurence, c'est un script perl, et perl prévoit un mécanisme précisément pour celà : s'il détecte qu'il exécute un script SUID, perl appelle le binaire suidperl, qui est lui-même SUID root, et qui simule le SUID sur le script (vérification des droits, changement d'identité, etc.).
Allez, j'arrête de polluer sur un sujet que ne connais que mal (Perl) (ceci dit je trouve ce thread très intéressant)
J'arrive après la bataille, mais c'est pas grave. Peut-être trouveras-tu des informations utiles dans:
$ perldoc perlsec
-- Jérémy JUST
On Sat, 18 Sep 2004 17:27:07 +0200
Hugues <hugues@contact.me> wrote:
En l'occurence, c'est un script perl, et perl prévoit un mécanisme
précisément pour celà : s'il détecte qu'il exécute un script SUID,
perl appelle le binaire suidperl, qui est lui-même SUID root, et qui
simule le SUID sur le script (vérification des droits, changement
d'identité, etc.).
Allez, j'arrête de polluer sur un sujet que ne connais que mal (Perl)
(ceci dit je trouve ce thread très intéressant)
J'arrive après la bataille, mais c'est pas grave.
Peut-être trouveras-tu des informations utiles dans:
En l'occurence, c'est un script perl, et perl prévoit un mécanisme précisément pour celà : s'il détecte qu'il exécute un script SUID, perl appelle le binaire suidperl, qui est lui-même SUID root, et qui simule le SUID sur le script (vérification des droits, changement d'identité, etc.).
Allez, j'arrête de polluer sur un sujet que ne connais que mal (Perl) (ceci dit je trouve ce thread très intéressant)
J'arrive après la bataille, mais c'est pas grave. Peut-être trouveras-tu des informations utiles dans:
$ perldoc perlsec
-- Jérémy JUST
ctemp2
Merci à tous de vos réponses, dès que j'aurai à nouveau ma machine sous les yeux je verrai tout ceci (apparement ça a l'air OK, je n'ai plus de problème d'authorisations sur iwconfig).
Jérémy JUST wrote:
J'arrive après la bataille, mais c'est pas grave. Peut-être trouveras-tu des informations utiles dans:
$ perldoc perlsec
Bonjour Jérémy, perlsec n'en dit pas plus sur system(), voir le problème d'UID réels et effectif ci-dessus ( $< = $> ).
Merci.
C. Tobini
Merci à tous de vos réponses, dès que j'aurai à nouveau ma machine sous
les yeux je verrai tout ceci (apparement ça a l'air OK, je n'ai plus de
problème d'authorisations sur iwconfig).
Jérémy JUST <jeremy_just@netcourrier.com> wrote:
J'arrive après la bataille, mais c'est pas grave.
Peut-être trouveras-tu des informations utiles dans:
$ perldoc perlsec
Bonjour Jérémy, perlsec n'en dit pas plus sur system(), voir le problème
d'UID réels et effectif ci-dessus ( $< = $> ).
Merci à tous de vos réponses, dès que j'aurai à nouveau ma machine sous les yeux je verrai tout ceci (apparement ça a l'air OK, je n'ai plus de problème d'authorisations sur iwconfig).
Jérémy JUST wrote:
J'arrive après la bataille, mais c'est pas grave. Peut-être trouveras-tu des informations utiles dans:
$ perldoc perlsec
Bonjour Jérémy, perlsec n'en dit pas plus sur system(), voir le problème d'UID réels et effectif ci-dessus ( $< = $> ).