Execution commande

gizmo78
Messages : 20534
Inscription : ven. 12 janv. 2018 17:44

Execution commande

Message par gizmo78 »

Bonjour à vous,

depuis une heure j'essaye de faire exécuter une commande par le biais d'une page web sur un serveur debian 5.0 mais sans résultat.

vu que c'est par une page web j'ai installer sudo et ajouté www-data dans le fichier sudoers:

www-data ALL=(ALL) ALL

mais pas mieux.

voila la commande que je voudrais lui faire exécuter :
echo shell_exec("sudo pidof ./codwaw_lnxded-bin")
une idée? car la je pige pas le truc
fighting_falcon
Messages : 656
Inscription : ven. 12 janv. 2018 17:44

Execution commande

Message par fighting_falcon »

comment es-tu sur que ta commande ne fonctionne pas ?

peut être que tu n'es pas dans le bon dossier, et du coup le "./" ne correspond pas à ce que tu voudrais ... => pidof renvoie 1 et n'affiche rien

sinon, en vrac :
* PHP est-il en safe mode ? Si oui, ça peut jouer et interdire l'utilisation de la fonction shell_exec
* Plus simplement, la fonction shell_exec est-elle autorisée dans ton php.ini ?
* La partition contenant le script PHP que tu exécutes est-elle en noexec ? Si oui, bah c'est tout bête, c'est à cause de ça ...
gizmo78
Messages : 20534
Inscription : ven. 12 janv. 2018 17:44

Execution commande

Message par gizmo78 »

alors:

- le ./ faire référence au nom dans les processus
- le php fonctionne bien car la page s'exécute juste les script, après je sais pas comment faire
- je ne trouve pas shell_exec dans le php.ini
- la partition qui contiens les script est en R-X donx exécutable
Avatar de l’utilisateur
poulpito
Messages : 12402
Inscription : ven. 12 janv. 2018 17:44
Localisation : Grenoble

Execution commande

Message par poulpito »

commence par faire un

echo exec("whoami") (et non pas shell_exec)
et regarde si ca marche :o

gizmo78
Messages : 20534
Inscription : ven. 12 janv. 2018 17:44

Execution commande

Message par gizmo78 »

ca fonctionne d'abord :o

et ca retourne bien www-data donc l'utilisateur est bon
Avatar de l’utilisateur
Ryu_wm
Messages : 8167
Inscription : ven. 12 janv. 2018 17:44

Execution commande

Message par Ryu_wm »

dans la liste des sudoers rajouter apache ?
Avatar de l’utilisateur
Zedoune
Messages : 15343
Inscription : ven. 12 janv. 2018 17:44

Execution commande

Message par Zedoune »

l'utilisateur je pense que c'est httpd et non apache, enfin après ça dépend du système :)
Avatar de l’utilisateur
poulpito
Messages : 12402
Inscription : ven. 12 janv. 2018 17:44
Localisation : Grenoble

Execution commande

Message par poulpito »

non le user c'est bien www-data

www-data ALL= NOPASSWD: ALL

il me semble que c'est comme ca sinon il te demande le mdp du sudo :)
Alucardfh
Messages : 1053
Inscription : ven. 12 janv. 2018 17:44

Execution commande

Message par Alucardfh »

je fait la même chose avec un serveur cod4, sauf que je le lance en même temps, voila la commande que j'utilise :

$pid=exec("/chemin/absolu/vers/lnxded-bin > /dev/null & echo \$!"); (http://fr.php.net/manual/fr/function.exec.php)

perso j'ai pas besoin de l'exécuter en tant que root, donc ça passe sans que apache soit dans les sudoers.

Sinon il suffit de déclarer un alias dans les sudoers :

# Cmnd alias specification
Cmnd_Alias LANCERSERV = /chemin/abs/vers/command

# User privilege specification
www-data ALL= NOPASSWD: LANCERSERV


c'est quand même plus propre que d'autoriser apache à exécuter n'importe quoi en tant que root ...
Avatar de l’utilisateur
poulpito
Messages : 12402
Inscription : ven. 12 janv. 2018 17:44
Localisation : Grenoble

Execution commande

Message par poulpito »

bof la sécurité c'est pour ceux qui ont peur :D

ein mon gizmo on tatane nous
gizmo78
Messages : 20534
Inscription : ven. 12 janv. 2018 17:44

Execution commande

Message par gizmo78 »

ouais s'enfou, on est des warriors nous !!! :D

ps: ca fonctionne :D pour le pid mais pas pour démarrer/arrêter :/
syno
Messages : 1275
Inscription : ven. 12 janv. 2018 17:44

Execution commande

Message par syno »

Houais les Warriors !! sans filets !!!

Faudra pas oublier de nous donner l'URL des machines en prod hein ! :D Je devrais me faire des copains russes après :lol:
Avatar de l’utilisateur
poulpito
Messages : 12402
Inscription : ven. 12 janv. 2018 17:44
Localisation : Grenoble

Execution commande

Message par poulpito »

d'ou ce que je disias tu es obligé de faire un alias pour chaque commande que tu veux lancer
gizmo78
Messages : 20534
Inscription : ven. 12 janv. 2018 17:44

Execution commande

Message par gizmo78 »

un alias?

comme ce que dit Alucardfh ?

car ca on la jamais fait avant oO
Avatar de l’utilisateur
poulpito
Messages : 12402
Inscription : ven. 12 janv. 2018 17:44
Localisation : Grenoble

Execution commande

Message par poulpito »

ah je pensais que tu avais testé cette méthode la :D
pour le démarrer arreter je sais pas un soucis de script (droits d'execution, chemin, etc etc si le pid marche le reste doit marcher )
gizmo78
Messages : 20534
Inscription : ven. 12 janv. 2018 17:44

Execution commande

Message par gizmo78 »

bas la truc c'est que j'ai fais tous les scripts de la même façon:

#!/bin/sh
cd /le/repertoire

./script_commande

ou

screen -dmS le_nom ./la_commande

mais y en a que un qui fonctionne les autres me disent : répertoire in trouvable alors que si je copie le cd il va bien dans le bon répertoire oO ca je pige pas
Alucardfh
Messages : 1053
Inscription : ven. 12 janv. 2018 17:44

Execution commande

Message par Alucardfh »

utilise les chemins absolu , sinon apache cherche la commande dans les rep standard qu'il a le droit d'utiliser.
gizmo78
Messages : 20534
Inscription : ven. 12 janv. 2018 17:44

Execution commande

Message par gizmo78 »

d'accord mais pk pas ca fonctionne pour certain mais pas tous?
Alucardfh
Messages : 1053
Inscription : ven. 12 janv. 2018 17:44

Execution commande

Message par Alucardfh »

Me suis jamais trop posé la question , mais logiquement quand tu exec une commande, il la cherche dans les rep contenue dans $PATH.

Donc si il le rep que tu utilise n'y est pas , tu peux pas appeler la commande par son nom.

Avatar de l’utilisateur
poulpito
Messages : 12402
Inscription : ven. 12 janv. 2018 17:44
Localisation : Grenoble

Execution commande

Message par poulpito »

jpeux plus t'aider sir gizmo je passe par autrechose mainrtenant pour mon panel d'admin (proxmox inside)
gizmo78
Messages : 20534
Inscription : ven. 12 janv. 2018 17:44

Execution commande

Message par gizmo78 »

okok pas grave merci, je vais voir pour les chemins absolu, y a une commande php nan?
Avatar de l’utilisateur
poulpito
Messages : 12402
Inscription : ven. 12 janv. 2018 17:44
Localisation : Grenoble

Execution commande

Message par poulpito »

celui qui fonctionne serai pas celui qui a le
#!/bin/sh
cd /le/repertoire

./script_commande


pour le screen -dmS il faut que tu rajoute

cd /dossier/dossier_cod4
screen -dmS serveur_cod4_1 ./cod4_xxxxx
gizmo78
Messages : 20534
Inscription : ven. 12 janv. 2018 17:44

Execution commande

Message par gizmo78 »

ouais le screen fonctionne, juste le truc du je me mets pas dans le rep :/
fighting_falcon
Messages : 656
Inscription : ven. 12 janv. 2018 17:44

Execution commande

Message par fighting_falcon »

une partition en non-exec ça se regarde avec "mount" pas avec un "ls" (R-X c'est pour un dossier, par une partoche), c'est une option qui se règle dans le fichier /etc/fstab

ta commande tu l'as testée direct avec sudo pour valider ta conf dans le fichier sudoers ??
Avatar de l’utilisateur
poulpito
Messages : 12402
Inscription : ven. 12 janv. 2018 17:44
Localisation : Grenoble

Execution commande

Message par poulpito »

exact comme test tu fais

su www-data
et après tu test ta commande sudo ./machinechose

Répondre