Page 1 sur 1
[bash] Commande who pour session X (résolu)
Publié : lun. 22 juil. 2013, 12:48
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?
Re: [bash] Commande who pour session X (en cours)
Publié : lun. 22 juil. 2013, 13:04
par benjarobin
Re: [bash] Commande who pour session X (en cours)
Publié : lun. 22 juil. 2013, 20:30
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
Re: [bash] Commande who pour session X (en cours)
Publié : lun. 22 juil. 2013, 21:40
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

Re: [bash] Commande who pour session X (en cours)
Publié : lun. 22 juil. 2013, 22:30
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
Re: [bash] Commande who pour session X (en cours)
Publié : lun. 22 juil. 2013, 23:35
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 ~]$
Re: [bash] Commande who pour session X (en cours)
Publié : mar. 23 juil. 2013, 20:24
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!
Re: [bash] Commande who pour session X (en cours)
Publié : mer. 31 juil. 2013, 17:11
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 ...)
Re: [bash] Commande who pour session X (en cours)
Publié : mar. 13 août 2013, 23:00
par lesebas
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!
Re: [bash] Commande who pour session X (en cours)
Publié : ven. 06 sept. 2013, 13:37
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
Re: [bash] Commande who pour session X (en cours)
Publié : jeu. 12 sept. 2013, 23:25
par lesebas
OK bug résolu dans la dernière version du git de lxdm !
