Tu sais tu peux chercher aussi, tu n'es pas obligé de simplement nous rapporter les messages d'erreur.
La tu es sur des questions purement Linux et pas du tout PHP.
Tu sais tu peux chercher aussi, tu n'es pas obligé de simplement nous rapporter les messages d'erreur.
La tu es sur des questions purement Linux et pas du tout PHP.
Oui j'ai fait des recherches et sa me fait tournée en rond !
D'après ce que j'ai vu il faut bien mettre su devant (de toute façon même avec su sa marche pas) et toi tu me dit qu'il ne faut pas mettre en root ?!
si je mets su voila le message d'erreur : su must be run in terminal
Comme je t'ai dit, c'est un problème Linux, pas PHP.
oui certes, mais quel est le problème plus exactement ?
Sur le net je vois que c'est des problèmes de droit, mais le sudo provoque d'autre problème !
En trifouillant meme en faisant :
nm-connection-editor --display=:0
j'obtient le même message d'erreur
Bonjour,
As-tu un serveur X de lancer quelque part ?
Car les prog graphique cherche à communiquer avec se serveur.
Ensuite, ton prog php est executer de quelle manière ? depuis un shell ou depuis un serveur web ?
Si depuis un serveur web, il faut que la machine et le user possède les droit de lancer des appli graphique sur le dit serveur X.
voir la commande xhost à lancer depuis le serveur X
En gros, y a un peu de boulot, et il manque pas mal d'information pour pouvoir t'aider.
Oui le serveurx est lancée (lxde)
Je suis sous lubuntu
Donc,
depuis ta session X, tu lance une fenetre shell et tu fais les commandes:
Pour autoriser tout le monde à utiliser cette session X
Code : Sélectionner tout - Visualiser dans une fenêtre à part xhost +
pour récupérer la valeur du display
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo $DISPLAY
Puis depuis ta session php, réessaye la commande:
Et dis nous ce que cela donne...
Code : Sélectionner tout - Visualiser dans une fenêtre à part nm-connection-editor --display=<valeur de la variable DISPLAY>
xhost + m'affiche :
acess control disabled, clients can connect from any host
echo $display m'affiche rien, j'ai un saut de ligne et c'est tout.
Merci pour ton aide.
La variable display est en majuscule (sous unix, on différencie les minuscules et les majuscules), donc:
et non pas:
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo $DISPLAY
Soit dit en passant, il y a de forte chance que ton server X est ":0", le but de faire le echo $DISPLAY est juste de confirmer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo $display
et après avoir fait le xhost +, est-ce que la commande lancer depuis ton php fonctionne ?
Oui sa fonctionne enfin, merci !
Je peut enfin lancée des programmes graphique.
Ok,
Mais je pense que tu ne sais pas vraiment comment cela fonctionne actuellement et cela peut poser certain problème, donc pour faire simple:
Ta session X est lancée depuis un certain user, lequel donne le droit d'utiliser à n'importe quelle machine/user de pouvoir utiliser le gestionnaire graphique X.
Je suppose que tu utilises php depuis un navigateur, donc depuis un serveur web (certainement apache), or les commande que tu lance sont donc lancer en temps que l'utilisateur sous lequel tourne ton serveur web (certainement nobody ou httpd,...), donc les appli graphique que tu ouvres depuis ta session php, sont des porcessus appartenant à cet user qui fait tourner le apache et non pas celui qui à ouvert la session X.
Après, je te laisse imaginer les problèmes de sécu que cela suppose ainsi que certain problème de droit pour tes appli graphique.
tu as raison, je dirais qu'il faut envisager de complexifier la solution, à minima une pile de users dédié jailed avec environnements chrooté de partout.. le tout dans un sous-réseau dédié avec routes strictes/fortes firewall, etc...etc...etc... bref il faut bien penser l'architecture dans son ensemble et pas seulement au niveau shell/php .....
sauf bien sur en intranet ou reseau local...
J'ai un problème, la commande marche bien, mais je veut exécuter la commande en tant que utilisateur actuel, par exemple l'utilisateur toto de mots de passe toto
Je n'ai pas réussie a lui faire lancée des commandes sans rentrer le mots de passe.
Je cherche a faire un su -toto
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo exec("nm-connection-editor --display=:0");
Partager