Pages : 1
#1 Le 10/03/2008, à 21:07
- Yann59200
Execution Shell avec php
Bonjour a tous,
J’ai un souci dont je ne trouve pas la solution, j’espère que quelqu’un ici a déjà rencontrer ce problème et pourra m’aider.
J’ai crée une page php qui exécute un Shell grâce a la commande exec()
<? exec("./shell.sh"); ?>
Dans mon shell je voudrais exécuter une commande pour créer un répertoire et en changer les attributs et l’utilisateur/groupe.
Mon dossier ce créer sans problème, les attributs eux changent sans problème. Seul l’utilisateur/groupe reste le même c'est-à-dire www-data.
# On ce place dans le dossier
cd /home/x
# On crée le repertoire
mkdir test
# Changement des attributs du repertoire
chown nobody test
chgrp nogroup test
chmod 775 test
Je vous remercie d'avance.
#2 Le 10/03/2008, à 21:29
- mekare
Re : Execution Shell avec php
Ce n'est pas plutôt shell_exec ?
Hors ligne
#3 Le 10/03/2008, à 21:53
- Yann59200
Re : Execution Shell avec php
Merci de ta réponse
Par doute j'avais déjà essayer mais cela ne change rien.
#4 Le 10/03/2008, à 22:29
- akira86
Re : Execution Shell avec php
Salut
je croie que tu trouvera ce que tu cherche dans les commentaires de cette page : http://fr.php.net/manual/fr/function.chown.php
astuce de la console :
tab pour compléter automatiquement le nom d'une commande d'un dossier ou d'un fichier.
clique molette pour recopier une sélection.
Hors ligne
#5 Le 10/03/2008, à 23:47
- Yann59200
Re : Execution Shell avec php
Merci pour ta réponse.
J'avoue que je n'avais pas penser a chercher ces commandes sous php directement. Cependant j'aurai voulu savoir pourquoi il est impossible de changer l'utilisateur/groupe via un shell exécuter en php
#6 Le 11/03/2008, à 06:35
- dexinou
Re : Execution Shell avec php
Merci pour ta réponse.
J'avoue que je n'avais pas penser a chercher ces commandes sous php directement. Cependant j'aurai voulu savoir pourquoi il est impossible de changer l'utilisateur/groupe via un shell exécuter en php
car le seul qui peu faire cela c Root
et comme ton script n'est pas lancé par root alors c pas possible
a moins que l'utilisateur qui lance le script fait partie des sudoers
Ubuntu 9.10 64bits ext4 ® Core 2 Duo
Unix..... il y a moins bien mais c'est plus cher.
Si t'as pas compris la réponse, pose mieux ta question.
Tutoriaux Linux, apache, pure-ftpd, bind, mysql, qmail...
Hors ligne
#7 Le 11/03/2008, à 18:35
- Yann59200
Re : Execution Shell avec php
Oui mais a ce moment la je prend des risques ?
#8 Le 11/03/2008, à 20:21
- dexinou
Re : Execution Shell avec php
Oui mais a ce moment la je prend des risques ?
Non si tu donnes le droit a cet utilisateur de lancer seulement cette commande et pas d'autre.
Ubuntu 9.10 64bits ext4 ® Core 2 Duo
Unix..... il y a moins bien mais c'est plus cher.
Si t'as pas compris la réponse, pose mieux ta question.
Tutoriaux Linux, apache, pure-ftpd, bind, mysql, qmail...
Hors ligne
#9 Le 12/03/2008, à 12:08
- insomniak
Re : Execution Shell avec php
Salut,
dexinou : quelle méthode utiliserais tu pour brider un utilisateur sur uniquement une commande comme tu dis de le faire ?
et puis ton site est down, c'est normal ? j'aurai bien été faire un tour dessus
Hors ligne
#10 Le 12/03/2008, à 14:30
- dexinou
Re : Execution Shell avec php
Salut,
dexinou : quelle méthode utiliserais tu pour brider un utilisateur sur uniquement une commande comme tu dis de le faire ?
et puis ton site est down, c'est normal ? j'aurai bien été faire un tour dessus
ben par exemple ça pourrait être un truc dans le genre (dans le fichier /etc/sudoers):
toto ALL = NOPASSWD: shutdown -h now
Ce qui lui donne le droit seulement d'arrêter la machine, le NOPASSWD évite de donner le mot de passe, utile si tu dois lancer la commande via un script.
Enuite on l'utilise comme ceci (je prend l'exemple d'un script php qui stop la machine et lancé par toto):
$halt = shell_exec('sudo shutdown -h now');
Le dédié qui héberge mon site à subit une mise à jour de sarge vers etch, il sera bientôt disponible
Dernière modification par dexinou (Le 12/03/2008, à 20:50)
Ubuntu 9.10 64bits ext4 ® Core 2 Duo
Unix..... il y a moins bien mais c'est plus cher.
Si t'as pas compris la réponse, pose mieux ta question.
Tutoriaux Linux, apache, pure-ftpd, bind, mysql, qmail...
Hors ligne
#11 Le 30/04/2008, à 12:41
- DZ
Re : Execution Shell avec php
Bonjour!
J'ai un problème dans le même goût. Pour ma part, pas de soucis pour éteindre le pc via php:
if($HTTP_GET_VARS['reboot']=="re")
shell_exec('sudo /sbin/shutdown -r now');
else
shell_exec('sudo shutdown -h now');
(pas de problème de sécurité c'est en local).
Par contre j'essaye de programmer l'extinction, et là ca ne fonctionne pas. En essayant à la console, je me suis aperçu qu'un control C interrompait la commande, peut-être faut-il que je fasse en sorte que cela se passe en arrière-plan, mais je ne sais pas comment on doit procéder pour cela...
Mon Code:
$ordre1="'sudo /sbin/shutdown ".$heure.":".$minute."'";
shell_exec($ordre1);
Qui me donne par exemple : shell_exec('sudo /sbin/shutdown 22:00')
Si quelqu'un a une solution, je suis preneur,
Merci
Hors ligne
#12 Le 01/05/2008, à 01:52
- DZ
Re : Execution Shell avec php
Pas d'idée?
Hors ligne
#13 Le 04/05/2008, à 22:43
- dexinou
Re : Execution Shell avec php
Pas d'idée?
pas besoi jde faire un script exprès pour l'éteindre à une certaint heure il te suffit de mettre les minutes qu'il te faut attendre pour l'éteindre.
sudo /sbin/shutdown -h 10
le pc s'éteindra dans 10 minutes
si ça marche pas avec -h essai avec -p
Il te suffit ensuite de compter combien il y a de minutes jusqu'à 22:00
Ubuntu 9.10 64bits ext4 ® Core 2 Duo
Unix..... il y a moins bien mais c'est plus cher.
Si t'as pas compris la réponse, pose mieux ta question.
Tutoriaux Linux, apache, pure-ftpd, bind, mysql, qmail...
Hors ligne
#14 Le 05/05/2008, à 10:34
- DZ
Re : Execution Shell avec php
Bonjour,
Je vais essayer cela, tu penses que ce qui change avec cette méthode c'est le fait que la commande se lance bien en arrière plan si j'ai bien compris.
Merci.
Dernière modification par DZ (Le 05/05/2008, à 10:46)
Hors ligne
#15 Le 05/05/2008, à 11:11
- DZ
Re : Execution Shell avec php
Cela ne fonctionne pas non plus, à mon avis pour la même raison, si j'essaye à la console j'ai ceci :
$$$@$$$-laptop:~$ sudo /sbin/shutdown -P 6
Message de diffusion de $$$@$$$-laptop
(/dev/pts/0) à 11:11...
The system is going down for power off in 6 minutes!
Je ne récupère pas la main sans faire de control-c.
Du coup à mon avis quand php exécute la commande, il la tue juste après automatiquement, contrairement à un sudo shutdown -h now où là il l'exécute immédiatement sans se poser de question de reprendre la main ou non.
Hors ligne
#16 Le 05/05/2008, à 13:57
- DZ
Re : Execution Shell avec php
J'ai essayé avec nohup et avec "&" mais en vain...
Hors ligne
#17 Le 05/05/2008, à 15:20
- DZ
Re : Execution Shell avec php
J'ai trouvé ca dans error.log, j'ai du mal à comprendre puisque shutdown -h now fonctionne correctement...
sh: sudo /sbin/shutdown -P 5: not found
sh: sudo /sbin/shutdown -P 3&: not found
sh: sudo /sbin/shutdown -P 2&: not found
sh: sudo /sbin/shutdown -P 13&: not found
sh: sudo /sbin/shutdown -P 12: not found
sh: sudo /sbin/shutdown -h 10: not found
sh: sudo shutdown -h 10: not found
Hors ligne
Pages : 1