1) pour me debarasser desdroits de root, j'ai l'habitude d'ecrire
if ((setuid(something) != 0) ||
(seteuid(something) != 0))
perror("...
Ca compile bien sur BSD, moins bien sur d'autres systèmes. Quelle est la
façon portable de faire ca?
2) De même, pour tester si un objet est un socket Unix, j'utilie stat(2)
et je teste le bit S_IFSOCK du champ st_mode. Ca râle sous Linux.
Comment doit on faire?
--
Emmanuel Dreyfus
Publicité subliminale: achetez ce livre!
http://www.eyrolles.com/php.informatique/Ouvrages/9782212112443.php3
manu@netbsd.org
Dans le genre décevant, j'ai le code généré par lex et yacc qui est incapable de compiler en -Wall -Werror sous Linux. Faut le patcher à la main pour que ca passe.
-- Emmanuel Dreyfus Un bouquin en français sur BSD: http://www.eyrolles.com/php.informatique/Ouvrages/9782212112443.php3
Thomas Nemeth <thomas@exether.vipere.noire> wrote:
Je suis déçu.
Dans le genre décevant, j'ai le code généré par lex et yacc qui est
incapable de compiler en -Wall -Werror sous Linux. Faut le patcher à la
main pour que ca passe.
--
Emmanuel Dreyfus
Un bouquin en français sur BSD:
http://www.eyrolles.com/php.informatique/Ouvrages/9782212112443.php3
manu@netbsd.org
Dans le genre décevant, j'ai le code généré par lex et yacc qui est incapable de compiler en -Wall -Werror sous Linux. Faut le patcher à la main pour que ca passe.
-- Emmanuel Dreyfus Un bouquin en français sur BSD: http://www.eyrolles.com/php.informatique/Ouvrages/9782212112443.php3
manu
I love cats wrote:
Passer sous un UID non root dans un daemon. Ca c'est l'objectif, mais quel est le problème ? Ca marche pas ? Ca
passe pas à la compile ? Au link ? Sur quel système ?
Objectif: passer sous un UID non root avec du code qui compile en -Wall -Werror.
Mais bon je ne suis pas si psychorigide que ca: j'ai viré le -Werror et c'est bon.
-- Emmanuel Dreyfus A lire: 240 pages en français sur l'administration UNIX avec BSD http://www.eyrolles.com/php.informatique/Ouvrages/9782212112443.php3
I love cats <catipole@bigfoot.com> wrote:
Passer sous un UID non root dans un daemon.
Ca c'est l'objectif, mais quel est le problème ? Ca marche pas ? Ca
passe pas à la compile ? Au link ? Sur quel système ?
Objectif: passer sous un UID non root avec du code qui compile en -Wall
-Werror.
Mais bon je ne suis pas si psychorigide que ca: j'ai viré le -Werror et
c'est bon.
--
Emmanuel Dreyfus
A lire: 240 pages en français sur l'administration UNIX avec BSD
http://www.eyrolles.com/php.informatique/Ouvrages/9782212112443.php3
manu@netbsd.org
Passer sous un UID non root dans un daemon. Ca c'est l'objectif, mais quel est le problème ? Ca marche pas ? Ca
passe pas à la compile ? Au link ? Sur quel système ?
Objectif: passer sous un UID non root avec du code qui compile en -Wall -Werror.
Mais bon je ne suis pas si psychorigide que ca: j'ai viré le -Werror et c'est bon.
-- Emmanuel Dreyfus A lire: 240 pages en français sur l'administration UNIX avec BSD http://www.eyrolles.com/php.informatique/Ouvrages/9782212112443.php3
Pascal Bourguignon
(Emmanuel Dreyfus) writes:
Thomas Nemeth wrote:
Je suis déçu.
Dans le genre décevant, j'ai le code généré par lex et yacc qui e st incapable de compiler en -Wall -Werror sous Linux. Faut le patcher à la main pour que ca passe.
Ça, lex et yacc, c'est loin d'être un modèle de propreté!
C'est pas pour rien qu'ils ont été réimplémentés des dizaines de fois. Ce qui est dômage, c'est que la plupart des réimplémentations ont essayé d'être bug-compatible... Enfin, flex et bison, c'est quand même un peu mieux. Personnellement, mon préféré était cctb (coc tail) qui génère du Modula-2 au lieu de C.
-- __Pascal_Bourguignon__ http://www.informatimago.com/ There is no worse tyranny than to force a man to pay for what he doesn't want merely because you think it would be good for him.--Robert Heinlein http://www.theadvocates.org/
manu@netbsd.org (Emmanuel Dreyfus) writes:
Thomas Nemeth <thomas@exether.vipere.noire> wrote:
Je suis déçu.
Dans le genre décevant, j'ai le code généré par lex et yacc qui e st
incapable de compiler en -Wall -Werror sous Linux. Faut le patcher à la
main pour que ca passe.
Ça, lex et yacc, c'est loin d'être un modèle de propreté!
C'est pas pour rien qu'ils ont été réimplémentés des dizaines de fois.
Ce qui est dômage, c'est que la plupart des réimplémentations ont
essayé d'être bug-compatible... Enfin, flex et bison, c'est quand
même un peu mieux. Personnellement, mon préféré était cctb (coc tail)
qui génère du Modula-2 au lieu de C.
--
__Pascal_Bourguignon__ http://www.informatimago.com/
There is no worse tyranny than to force a man to pay for what he doesn't
want merely because you think it would be good for him.--Robert Heinlein
http://www.theadvocates.org/
Dans le genre décevant, j'ai le code généré par lex et yacc qui e st incapable de compiler en -Wall -Werror sous Linux. Faut le patcher à la main pour que ca passe.
Ça, lex et yacc, c'est loin d'être un modèle de propreté!
C'est pas pour rien qu'ils ont été réimplémentés des dizaines de fois. Ce qui est dômage, c'est que la plupart des réimplémentations ont essayé d'être bug-compatible... Enfin, flex et bison, c'est quand même un peu mieux. Personnellement, mon préféré était cctb (coc tail) qui génère du Modula-2 au lieu de C.
-- __Pascal_Bourguignon__ http://www.informatimago.com/ There is no worse tyranny than to force a man to pay for what he doesn't want merely because you think it would be good for him.--Robert Heinlein http://www.theadvocates.org/
I love cats
(Emmanuel Dreyfus) writes:
Objectif: passer sous un UID non root avec du code qui compile en -Wall -Werror.
Donc il y a un warning. Mais lequel ?
Toujours sur le même système RH8 j'ai fait le petit prog de test ci-dessous, et ça compile avec gcc -Wall -Werror:
int main(int argc, char *argv[]) { uid_t something;
if ((setuid(something) != 0) || (seteuid(something) != 0)) perror("...");
return 0; }
Mais bon je ne suis pas si psychorigide que ca: j'ai viré le -Werror et c'est bon.
Mouaif, quand on voit la qualité du code dans certains includes courants, est-ce vraiment raisonnable d'espérer faire un code portable non trivial et avec 0 warnings ?
-- "Never ascribe to malice what can be explained by human stupidity" R. A. Heinlein
manu@netbsd.org (Emmanuel Dreyfus) writes:
Objectif: passer sous un UID non root avec du code qui compile en -Wall
-Werror.
Donc il y a un warning. Mais lequel ?
Toujours sur le même système RH8 j'ai fait le petit prog de test
ci-dessous, et ça compile avec gcc -Wall -Werror:
int
main(int argc, char *argv[])
{
uid_t something;
if ((setuid(something) != 0) ||
(seteuid(something) != 0))
perror("...");
return 0;
}
Mais bon je ne suis pas si psychorigide que ca: j'ai viré le -Werror et
c'est bon.
Mouaif, quand on voit la qualité du code dans certains includes
courants, est-ce vraiment raisonnable d'espérer faire un code portable
non trivial et avec 0 warnings ?
--
"Never ascribe to malice what can be explained by human stupidity"
R. A. Heinlein
int main(int argc, char *argv[]) { uid_t something;
if ((setuid(something) != 0) || (seteuid(something) != 0)) perror("...");
return 0; }
Mais bon je ne suis pas si psychorigide que ca: j'ai viré le -Werror et c'est bon.
Mouaif, quand on voit la qualité du code dans certains includes courants, est-ce vraiment raisonnable d'espérer faire un code portable non trivial et avec 0 warnings ?
-- "Never ascribe to malice what can be explained by human stupidity" R. A. Heinlein
manu
I love cats wrote:
Donc il y a un warning. Mais lequel ?
seteuid non défini. Pour qu'il le soit faut ajouter -D_BSD_SOURCE
-- Emmanuel Dreyfus A lire: 240 pages en français sur l'administration UNIX avec BSD http://www.eyrolles.com/php.informatique/Ouvrages/9782212112443.php3
I love cats <catipole@bigfoot.com> wrote:
Donc il y a un warning. Mais lequel ?
seteuid non défini. Pour qu'il le soit faut ajouter -D_BSD_SOURCE
--
Emmanuel Dreyfus
A lire: 240 pages en français sur l'administration UNIX avec BSD
http://www.eyrolles.com/php.informatique/Ouvrages/9782212112443.php3
manu@netbsd.org
seteuid non défini. Pour qu'il le soit faut ajouter -D_BSD_SOURCE
-- Emmanuel Dreyfus A lire: 240 pages en français sur l'administration UNIX avec BSD http://www.eyrolles.com/php.informatique/Ouvrages/9782212112443.php3