destroyedlolo Posté 16 Juin 2011 Partager Posté 16 Juin 2011 Bonjour, Je cherche a faire un script PHP, lance depuis le shell, que je souhaite lancer en temps que root grace a son bit 'set-uid'. Par exemple, #!/usr/bin/php<?... bla bla bla ...chown('toto', 'root');?> Mon script se nome Upload et j'ai donc fait : root_AT_chose:~/projets/Geppetto/Client/TasksScripts# chown root Uploadroot_AT_chose:~/projets/Geppetto/Client/TasksScripts# chmod u+s Uploadroot_AT_chose:~/projets/Geppetto/Client/TasksScripts# lltotal 32-rwsr-xr-x 1 root www-data 1798 2011-06-17 00:38 Upload Sauf que ca ne marche pas lorsque je le lance en temps d'un user lambda : Warning: chown(): Operation not permitted in /home/laurent/projets/Geppetto/Client/TasksScripts/Upload on line 67 Quelqu'un saurait-il pourquoi ? Merci, Laurent Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 17 Juin 2011 Partager Posté 17 Juin 2011 Salut Laurent, Sur de nombreuses distributions, le setuid est désactivé pour les scripts vu les nombreux problèmes de sécurité que cela entraîne. Une solution est de créer un programme en C, appelant ton script. Ce programme pourra après compilation avoir le suid bit mis. Par exemple : #include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <unistd.h>int main(){ setuid( 0 ); system( "/path/to/script.sh" ); return 0;} Lien vers le commentaire Partager sur d’autres sites More sharing options...
destroyedlolo Posté 17 Juin 2011 Auteur Partager Posté 17 Juin 2011 Ok, DAN, merci, je ne savais pas. Bon, j'essaie de voir si je peux passer a travers sudo sinon j'utiliserai ta solution. Bye Laurent Lien vers le commentaire Partager sur d’autres sites More sharing options...
destroyedlolo Posté 10 Juillet 2011 Auteur Partager Posté 10 Juillet 2011 Bon, je reviens sur ce vieux trucs au cas ou ca puisse aider quelqu'un. J'ai donc trouve mon bonheur avec sudo. Dans mon cas, il s'agit d'un outils pour lancer des commandes a distance dont apt-get (la commande qui permet la mise a jour des systemes sous debian ou derive). j'ai eu simplement a mettre dans mon sudoers # Geppettopuppet ALL=NOPASSWD: /usr/bin/apt-get pour que mon utilisateur puisse lancer des updates sans qu'aucun mot de passe ne lui soit demande. Voili, voila Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant