Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/04/2007, 10h59   #1
Membre actif
 
Inscription : juin 2003
Messages : 270
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 270
Points : 170
Points : 170
Par défaut interaction prog C et commandes shell/system

Bonjour,

Sur une Debian Etch, j'ai un programme C, myprog, qui a (entre autre) deux fonctions:
A: lancer des applications en tant qu'un utilisateur lambda
B: effectuer des operations avec les privileges root

Pour cela, je lui ai ajoute le bit SUID (chmod +s), et aussi chown root.someuser:
Code :
1
2
 $ ls -l myprog
-rwsr-sr-x 1 root someuser myprog
La fonction A se passe bien. Pour la fonction B, je peux obtenir les privileges root, mais si l'operation que je veux effectuer contient des fichiers perl, alors j'ai des erreurs:
Code :
 Insecure dependency in ... while running setuid
et le programme s'arrete.

L'operation que je souhaite utiliser est (entre autres) "adduser" qui est donc un script perl. J'ai vu sur le web que c'etait du au mode Taint de Perl, et qu'il etait possible de "untaint" les variables. Mais je ne veux pas modifier un script comme adduser, par principe et aussi par ce que ca me semble plutot risque au niveau securite (et en plus j'ai pas de connaissances perl).

Voici donc ma question: est-ce qu'il y a une autre approche qui me permettrait d'avoir les fonctions A et B pour mon programme en contournant le probleme des scripts perl ?

Aussi, parce que ca me semble plus simple, mon approche est souvent d'executer des commandes shell depuis le prog C. J'imagine que l'ideal serait de pouvoir tout faire depuis le prog C, mais j'ai vraiment l'impression de reinventer la roue et de perdre mon temps quand j'ajoute 40 lignes de code C pour faire l'equivalent de 3 lignes de script shell. Ca m'interesserai d'avoir des points de vue ou des liens permettant d'y voir un peu plus clair et eventuellement de trouver la marche a suivre...

Toute piste ou idee est vraiment la bienvenue.

Merci !
__________________
www.callofduty5waw.fr
drinkmilk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2007, 11h18   #2
Rédacteur
 
Inscription : mars 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 298
Points : 1 450
Points : 1 450
pour effectuer des operation "root" ou sous tout autre utilisateur il y a l'utilitaire sudo qui te permet de réaliser cela de maniere precise et securisé. Effectivement j ai l'impression que tu réinvente la roue.
__________________
Marc
Slackware for ever ......
BASH - KSH ( http://marcg.developpez.com/ksh/ )
MarcG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 19h02   #3
Membre actif
 
Inscription : juin 2003
Messages : 270
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 270
Points : 170
Points : 170
effectivement, je ne savais que sudo permettait de faire autant de choses. J'ai encore quelques tests a faire pour etre sur, mais il semble que je peux tout faire avec sudo, sans executer mon programme en SUID. Et c'est quand meme un gros avantage car etant donne les risques de securite que ca implique, beaucoup de programmes sont restreints lorsqu'ils sont executes SUID.

Merci !
__________________
www.callofduty5waw.fr
drinkmilk est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h20.


 
 
 
 
Partenaires

Hébergement Web