2 votes

Prise d'une capture d'écran de la session de l'utilisateur actuel

(Pardonnez moi si ma terminologie n'est pas tout à fait exacte ici)

J'ai mis en place un travail cron qui utilise scrot pour faire des captures d'écran de mon bureau à différents intervalles.

Cependant, lorsque je change d'utilisateur pour un autre compte (sans me déconnecter), les captures d'écran qui reviennent ne sont que des clichés de l'écran de verrouillage.

Existe-t-il un moyen pour moi d'obtenir une capture d'écran de la session de l'utilisateur actuel ? C'est-à-dire, quel est en fait sur l'écran ?

3voto

Rmano Points 30303

En ce qui concerne X11, lorsque vous passez à un autre utilisateur, celui-ci se trouve sur un affichage complètement différent.

Dans votre session, si vous exécutez :

echo $DISPLAY

vous aurez :0 le premier écran virtuel. Dans le deuxième utilisateur, la même chose vous donnera :1 le deuxième affichage.

Vous pouvez voir les écrans utilisés avec la commande w :

[romano:~] % w  
 11:32:03 up  1:05,  8 users,  load average: 0,10, 0,24, 0,30
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
romano   :0       :0               10:27   ?xdm?   6:25   0.13s gdm-session-wor
romano   pts/1    :0               11:03   26:49   0.10s  0.10s zsh
romano   pts/3    :0               11:21    0.00s  0.12s  0.01s w
default  :1       :1               11:24   ?xdm?   6:25   0.07s gdm-session-wor
default  pts/15   :1               11:24    1:56   0.05s  0.05s bash

Pour pouvoir faire une capture d'écran d'un écran à l'autre, ou d'un autre utilisateur, il faut que l'utilisateur soit "photographié". doit donnez la commande

xhost + 

pour permettre l'accès (même pas root sera capable de faire l'instantané sinon). Après cela, vous pouvez faire un

DISPLAY=:1 scrot 

d'un script ou d'un autre utilisateur. Notez que si vous prenez un écran qui n'est pas actif (affiché), vous aurez un écran noir ou des choses étranges --- qui sait ce qu'il y a dans la mémoire tampon vidéo...

Maintenant c'est à vous d'écrire un script explorant tout cela... vous devriez en principe détecter quel utilisateur est actif (pas facile --- ou simplement tirer sur tout l'écran et écarter les noirs après) et faire la capture d'écran.

Bonne chance !

0voto

Maythux Points 77506

Lorsque vous passez à un autre utilisateur, vous ouvrez une nouvelle session pour le nouvel utilisateur, et l'ancienne session du premier utilisateur est juste sur le login. Il s'agit d'une attitude normale du cron, le cron est associé au premier utilisateur et il ne travaillera que sur sa session.

J'espère que vous comprenez ce que je veux dire. Je ne suis pas très bon en anglais de toute façon, pour que cela fonctionne pour l'autre utilisateur, vous devez créer le même cron pour le deuxième utilisateur, afin que vous puissiez prendre les clichés pour chaque utilisateur.

0voto

Sam Khan Points 372

Vous devez stocker les captures d'écran dans des zones accessibles au public, et aussi le xserver verrouille l'écran lors du changement d'utilisateur (ce n'est pas un fait démontré, mais une supposition raisonnable). Vous devez probablement configurer un xserver pour afficher cela dans un fichier dans le répertoire personnel, de sorte que lorsque la tâche cron est appelée, vous lancez le xserver pour rendre l'écran au fichier, plutôt que pour l'affichage.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X