[bash] Commande who pour session X (résolu)

Xorg, Compiz, KDE / Gnome / Xfce / Fluxbox / e17 / fvwm ... GDM/KDM/XDM...
Répondre
Avatar de l’utilisateur
lesebas
Chu Ko Nu
Messages : 330
Inscription : ven. 01 févr. 2013, 19:16

[bash] Commande who pour session X (résolu)

Message par lesebas »

Bonjour,

Je cherche, dans un script, à connaitre le nom des utilisateurs logués sur une session graphique et quel tty ils utilisent. La commande who me renvoie uniquement les utilisateurs logués en session console (tty1 à tty6)mais rien sur les session X. Quelqu'un a-t-il une idée?
Dernière modification par lesebas le jeu. 12 sept. 2013, 23:26, modifié 1 fois.
Seb

Archlinux sur AMD64 (xfce / lightdm)
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17187
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [bash] Commande who pour session X (en cours)

Message par benjarobin »

Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
lesebas
Chu Ko Nu
Messages : 330
Inscription : ven. 01 févr. 2013, 19:16

Re: [bash] Commande who pour session X (en cours)

Message par lesebas »

Salut,

Bien c'est pas mieux... loginctl ne me retourne que mes sessions, que je lance depuis n'importe quelle console (voir un xterminal ouvert par un autre user):

Code : Tout sélectionner

[stephanie@Vulpus ~]$ loginctl
   SESSION        UID USER             SEAT            
         1       1000 sebastien        seat0           
         4       1000 sebastien        seat0           

2 sessions listed.
[stephanie@Vulpus ~]$ 
Voila ce que me retourne cat /etc/passwd :

Code : Tout sélectionner

[sebastien@Vulpus ~]$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/false
daemon:x:2:2:daemon:/sbin:/bin/false
mail:x:8:12:mail:/var/spool/mail:/bin/false
ftp:x:14:11:ftp:/srv/ftp:/bin/false
http:x:33:33:http:/srv/http:/bin/false
uuidd:x:68:68:uuidd:/:/sbin/nologin
dbus:x:81:81:dbus:/:/sbin/nologin
nobody:x:99:99:nobody:/:/bin/false
sebastien:x:1000:100:Sébastien:/home/sebastien:/bin/bash
avahi:x:84:84:avahi:/:/bin/false
polkitd:x:102:102:Policy Kit Daemon:/:/bin/false
usbmux:x:140:140:usbmux user:/:/sbin/nologin
lxdm:x:121:121::/var/lib/lxdm:/bin/bash
stephanie:x:1001:100:Stéphanie:/home/stephanie:/bin/bash
gdm:x:120:120:Gnome Display Manager:/var/lib/gdm:/sbin/nologin
Seb

Archlinux sur AMD64 (xfce / lightdm)
Avatar de l’utilisateur
lesebas
Chu Ko Nu
Messages : 330
Inscription : ven. 01 févr. 2013, 19:16

Re: [bash] Commande who pour session X (en cours)

Message par lesebas »

En fait j'utilise XFCE avec lxdm pour me loguer. loginctl retourne en fait l'ID de la première session ouverte, ensuite quand j'ouvre une autre session en repassant par lxdm c'est comme si les nouveau utilisateur utilisait la session initial. D'ailleurs si je ferme la première session loginctl retouren toujours le nopm de l'utilisateur qui veint d'être déloguer... Je ne sais pas si c'est clair :?
Seb

Archlinux sur AMD64 (xfce / lightdm)
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17187
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [bash] Commande who pour session X (en cours)

Message par benjarobin »

loginctl est à lancer en root bien sûr, pour des questions évidente de sécurité ton user ne peut voir que ses propres sessions
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
lesebas
Chu Ko Nu
Messages : 330
Inscription : ven. 01 févr. 2013, 19:16

Re: [bash] Commande who pour session X (en cours)

Message par lesebas »

Non ce n'est pas mieux en root :

Code : Tout sélectionner

[root@Vulpus sebastien]# loginctl
   SESSION        UID USER             SEAT            
         1       1001 stephanie        seat0           

1 sessions listed.
[root@Vulpus sebastien]# 
Par contre si j'ouvre des sessions dans des terminaux (tty 1 et 2 pour l'exemple) en lançant la commande même sans être en root je les vois :

Code : Tout sélectionner

[root@Vulpus sebastien]# exit
exit
[sebastien@Vulpus ~]$ loginctl
   SESSION        UID USER             SEAT            
         1       1001 stephanie        seat0           
         2       1000 sebastien        seat0           
         3       1001 stephanie        seat0           

3 sessions listed.
[sebastien@Vulpus ~]$
Seb

Archlinux sur AMD64 (xfce / lightdm)
Avatar de l’utilisateur
lesebas
Chu Ko Nu
Messages : 330
Inscription : ven. 01 févr. 2013, 19:16

Re: [bash] Commande who pour session X (en cours)

Message par lesebas »

Bon j'ai réussi à contourner le problème en ajoutant un petit script à l'ouverture des sessions qui enregistre le numéro de terminal et le nom d'utilisateur :

Code : Tout sélectionner

#!/bin/bash

list_user="/tmp/list_user_connected"
user_tty=$(sudo fgconsole)
user_name=$(eval whoami)

#vérifie si le fichier contenant la liste des utilisateurs connectés existe
# s'il existe, supprime l'utilisateur qui se connecte (deconnexion + reconnexion)
# ajoute le numéro de tty + nom user

if test -e $list_user 
then
	sed -i "/$user_name/d" $list_user		
	echo -e $user_tty" "$user_name\\r >> $list_user
else
	echo -e $user_tty" "$user_name\\r > $list_user
	chmod g+rw $list_user
	chmod o+rw $list_user
fi
Mais c'est quand même bizarre tout ça!
Seb

Archlinux sur AMD64 (xfce / lightdm)
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Re: [bash] Commande who pour session X (en cours)

Message par tuxce »

Tu devrais essayer ceci : https://bbs.archlinux.org/viewtopic.php ... 8#p1247658
Tu pourrais aussi essayer avec lightdm par exemple (comme le souci semble lié à lxdm ...)
Avatar de l’utilisateur
lesebas
Chu Ko Nu
Messages : 330
Inscription : ven. 01 févr. 2013, 19:16

Re: [bash] Commande who pour session X (en cours)

Message par lesebas »

tuxce a écrit :Tu devrais essayer ceci : https://bbs.archlinux.org/viewtopic.php ... 8#p1247658
Non ça n'ai pas vraiment mon problème...

J'ai bien suivi ce post, mais la correction est déja inclus dans la version courrante de lxdm :

https://bbs.archlinux.org/viewtopic.php?id=143913
tuxce a écrit :Tu pourrais aussi essayer avec lightdm par exemple (comme le souci semble lié à lxdm ...)
Par contre je viens de tester lightdm... tout fonctionne correctement du coté de loginctl... donc visiblement ça vient de lxdm. J'attends d'avoir d'autres avis pour reporter un bug!
Seb

Archlinux sur AMD64 (xfce / lightdm)
Avatar de l’utilisateur
lesebas
Chu Ko Nu
Messages : 330
Inscription : ven. 01 févr. 2013, 19:16

Re: [bash] Commande who pour session X (en cours)

Message par lesebas »

Bon il s'agit bien d'un bug de lxdm :

https://bugs.archlinux.org/task/36533

Mais apparemment pas trop de solution pour le moment... j'ai reporté dans le upstream :

https://sourceforge.net/tracker/?func=d ... tid=894869
Seb

Archlinux sur AMD64 (xfce / lightdm)
Avatar de l’utilisateur
lesebas
Chu Ko Nu
Messages : 330
Inscription : ven. 01 févr. 2013, 19:16

Re: [bash] Commande who pour session X (en cours)

Message par lesebas »

OK bug résolu dans la dernière version du git de lxdm ! :D
Seb

Archlinux sur AMD64 (xfce / lightdm)
Répondre