# \[résolu\] Récupérer le screen d'une session par php?

**URL:** <https://www.debian-fr.org/t/resolu-recuperer-le-screen-dune-session-par-php/34313>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 3:39 UTC](https://www.debian-fr.org/t/resolu-recuperer-le-screen-dune-session-par-php/34313 "2016-02-21T03:39:07Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![canaillou2k5](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/c/839c29/32.png) [@canaillou2k5](https://www.debian-fr.org/u/canaillou2k5)\
**Post date:** [Février 21, 2016, 3:39 UTC](https://www.debian-fr.org/t/resolu-recuperer-le-screen-dune-session-par-php/34313/1 "2016-02-21T03:39:07Z")

</div>

Bonjour, j’ai un serveur de jeux et un site web qui tournent sur la même machine.

Lorsque quelqu’un s’inscrit sur le site, php génère une “white list” qui est rechargé manuellement (ssh) par un script [wlreload.sh](http://wlreload.sh) qui contient ça:

`screen -dr minecraft -X stuff "whitelist reload
"`

Ce script fonctionne lorsque que je l’execute en ssh car je suis sur la même session ou la screen à été lancé.

Mais je ne peut pas récupérer cette screen par une autre session.

Je veut automatiser ça par php qui utilise la commande “exec(/XXX/wlreload.sh)”

Sauf que php l’execute en tant que session “apache” donc il ne trouve pas la screen.

J’ai pensé à utiliser su par php; mais dans ce cas ça me fait mettre un mot de passe en clair dans mon script non?

Merci pour votre aide.

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 21, 2016, 3:39 UTC](https://www.debian-fr.org/t/resolu-recuperer-le-screen-dune-session-par-php/34313/2 "2016-02-21T03:39:09Z")

</div>

Utilise sudo, c’est fait pour ça (et pas pour autre chose 🙂 )

---

<div class="post-metadata">

**Author:** ![canaillou2k5](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/c/839c29/32.png) [@canaillou2k5](https://www.debian-fr.org/u/canaillou2k5)\
**Post date:** [Février 21, 2016, 3:39 UTC](https://www.debian-fr.org/t/resolu-recuperer-le-screen-dune-session-par-php/34313/3 "2016-02-21T03:39:30Z")

</div>

Le su ne fonctionne pas avec les screens!

Si j’ai bien compris, de la session Apache (www-data) tu propose de me logger en tant que “serveur” pour récupérer la screen?

De plus ca fait mettre le mot de passe de la session serveur en clair dans un simple bash?

J’ai trouver une solution alternative.

Utiliser SSH2 avec php.

En utilisant des clé publiques/privées, le mot de passe ne sera pas en clair.

Le problème réside pour générer le fichier id\_dsa.pub; car le nom d’utilisateur est www-data il me semble avec Apache2

Si je crée une session du nom de “www-data” pour créé le fichier “id\_dsa.pub”; ensuite je copie la clé dans “authorized\_keys” de la session “serveur”, que je veut piloter en ssh; normalement je pourrais bien me connecter en ssh en tant que “www-data” sur la session “serveur” avec ssh serveur@localhost

Merci pour votre aide.

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 21, 2016, 3:39 UTC](https://www.debian-fr.org/t/resolu-recuperer-le-screen-dune-session-par-php/34313/4 "2016-02-21T03:39:35Z")

</div>

Je n’ai pas dit su, j’ai dit sudo ce qui n,'est pas pareil et ça marche très bien. Mais la solution avec les clefs ssh n’est pas mal sauf qu’il faut veiller à protéger la clef privée (accessible par apache donc potentiellement par un visiteur)

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 21, 2016, 3:39 UTC](https://www.debian-fr.org/t/resolu-recuperer-le-screen-dune-session-par-php/34313/5 "2016-02-21T03:39:35Z")

</div>

Qu’appelles-tu “protéger” François ?  
Un exemple stp !  
J’avais suivi un tuto, de toi, il me semble, mais je ne le retrouve pas.

---

<div class="post-metadata">

**Author:** ![canaillou2k5](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/c/839c29/32.png) [@canaillou2k5](https://www.debian-fr.org/u/canaillou2k5)\
**Post date:** [Février 21, 2016, 3:39 UTC](https://www.debian-fr.org/t/resolu-recuperer-le-screen-dune-session-par-php/34313/6 "2016-02-21T03:39:48Z")

</div>

Ok mais je ne comprend pas vraiment la différence entre su et sudo; debian ne connait pas sudo chez moi!

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 3:39 UTC](https://www.debian-fr.org/t/resolu-recuperer-le-screen-dune-session-par-php/34313/7 "2016-02-21T03:39:48Z")

</div>

> [@canaillou2k5](#):
>
> Ok mais je ne comprend pas vraiment la différence entre su et sudo

[ul][li]su permet de changer d’utilisateur[/li]  
[li]sudo permet d’exécuter une commande (ou plusieurs) avec les droits d’un autre utilisateur[/li][/ul]

> [@canaillou2k5](#):
>
> debian ne connait pas sudo chez moi!

Il faut l’installer :

```auto
apt-get install sudo
```

Puis le configurer via visudo par exemple.

---

<div class="post-metadata">

**Author:** ![canaillou2k5](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/c/839c29/32.png) [@canaillou2k5](https://www.debian-fr.org/u/canaillou2k5)\
**Post date:** [Février 21, 2016, 3:39 UTC](https://www.debian-fr.org/t/resolu-recuperer-le-screen-dune-session-par-php/34313/8 "2016-02-21T03:39:54Z")

</div>

Très bien, c’est fait.

Mais je rencontre cet erreur: Cannot open your terminal ‘/dev/pts/2’ - please check.

Voilà ce que j’ai tapper: sudo -u serveur screen -x

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 21, 2016, 3:39 UTC](https://www.debian-fr.org/t/resolu-recuperer-le-screen-dune-session-par-php/34313/9 "2016-02-21T03:39:55Z")

</div>

Exemple:

Je fais un fichier

`#!/bin/sh
whoami`  
Si tu le lances en standard, ça ne marche pas (demande de mot de passe).  
Si tu met dans /etc/sudoers

```auto

```

Ensuite:

`francois@totoche:~$ imawho
francois
francois@totoche:~$ sudo -u www-data imawho
www-data
francois@totoche:~$ 
`Voilà.

---

<div class="post-metadata">

**Author:** ![canaillou2k5](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/c/839c29/32.png) [@canaillou2k5](https://www.debian-fr.org/u/canaillou2k5)\
**Post date:** [Février 21, 2016, 3:39 UTC](https://www.debian-fr.org/t/resolu-recuperer-le-screen-dune-session-par-php/34313/10 "2016-02-21T03:39:55Z")

</div>

Oui tout était bon; sauf que screen à un bug avec les fichiers dans /dev/pts; il faut faire un Chmod pour que ça fonctionne.

De plus je lors de mes essais j’utilisai la session “site”, mais avec la session www-data plus de problèmes.

J’ai également autoriser directement mon script en .sh plutôt que l’application screen; mon script fait de toute façon appel à screen donc je suppose que c’est pareil au final.

Le problème est résolu et c’est bien moins complexe que ssh2 ^^

Merci pour l’aide.

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 21, 2016, 3:39 UTC](https://www.debian-fr.org/t/resolu-recuperer-le-screen-dune-session-par-php/34313/11 "2016-02-21T03:39:58Z")

</div>

[quote=“ricardo”]Qu’appelles-tu “protéger” François ?  
Un exemple stp !  
J’avais suivi un tuto, de toi, il me semble, mais je ne le retrouve pas.[/quote]

Si il met les clefs ssh dans un répertoire accessible par apache, ces clefs pourront être chargées par un visiteur…
