Niveau :
Résumé : screen -x
Un article pour ceux qui ont des amis geeks. Donc supposons que vous en ayez, sinon un stagiaire ou un chat feront l'affaire. En tant qu'ami intime, il peut partager votre terminal. Pour cela nous allons utiliser screen. Premier exemple avec deux terminaux et le même utilisateur :
# terminal 1 $ screen -S moi
# terminal 2 $ screen -x moi
Mais même un ami n'a pas accès à votre compte. Première solution, passons sur son compte à travers le compte root, attention, il y a un problème de droit au passage.
# terminal 1 $ screen -S moi
# terminal 2 $ su - $ chmod a+rw `tty` $ su - monami $ screen -x moi
Ce qui est bien, mais pas top. Faisons donc les choses dans l'autre sens, c'est la personne dans le terminal 1 qui accordera à celle de terminal 2 le droit de lire son terminal. Pour cela, il faut que screen soit setuid root. C'est un risque, si un utilisateur trouve une faille dans screen, peut-être qu'il pourra devenir root.
$ chmod +s /usr/bin/screen
Attention, si screen est setuid root, la variable SCREENDIR ne fonctionnera plus.
Mettons donc le maître sur le terminal1.
# terminal 1 $ screen -S moi Ctrl-a :multiuser on Ctrl-a :addacl user2
# terminal 2 $ screen -x user1/moi
Wahoo, c'est cool ! Maintenant vous voulez que l'utilisateur qui vous espionne ne puisse pas interagir avec votre ligne de commande (si vous voulez jouer au prof avec votre chat). Il suffit simplement de lui retirer les droits qui sont activés par défaut.
Ctrl-a :chacl user2 -wx "#?"
Notez que vous pouvez mettre ces commandes dans votre .screenrc :
multiuser on addacl user2 # cette commande ne fonctionne pas dans le sceenrc chacl user2 -wx "#?"
Comments