2009-02-02 8 views
1

Je souhaite utiliser l'écran GNU de manière à ce que l'utilisateur ne sache pas qu'il est présent. C'est pour m'assurer qu'une application de gestion basée sur le texte que j'écris ne peut être utilisée que par un seul utilisateur à la fois. Pour se prémunir contre les utilisateurs qui verrouillent tout le monde en exécutant l'application et en la lâchant, en la laissant en cours de route, je veux pouvoir détacher leur session et permettre à un autre utilisateur de s'y attacher.Comment utiliser GNU Screen de manière transparente

Mes questions est:

  • Puis-je définir la clé d'échappement dans .screenrc null, de sorte que l'utilisateur ne peut accéder à l'une des fonctionnalités de l'écran lui-même?

Répondre

3

Il ressemble à ce qui suit dans .screenrc le tour est joué:

escape '' 

Cela ne définit pas le caractère d'échappement à ', mais désactive entièrement le mécanisme d'échappement.

+0

J'ai réussi à entrer dans le mode de commande de l'écran (ou autre) en tapant Ctrl-Shift- @ (qui envoie 0x00 au terminal) en utilisant votre exemple. – strager

+0

Hmm, j'ai aussi essayé cette frappe, mais je n'ai pas réussi à faire ce travail. C'est pourquoi j'ai dit que je ne compterais pas dessus. :) –

+0

Votre mise à jour fonctionne (ou, au moins, je ne trouve pas la séquence qui le permet). Une autre étape pour rendre l'écran transparent est de définir le TERM à autre chose que "screen". – strager

1

Peut-être simplement définir le caractère d'échappement dans .screenrc à un caractère obscur de la table ASCII qui ne peut pas être tapé sur un clavier. Je pense que le caractère 176 serait un exemple (ou essayez une autre à l'extérieur de la plage normale):

escape ^°° 

Il suffit de le mettre dans votre fichier .screenrc et vos utilisateurs ne seront pas en mesure d'accéder à toutes les fonctionnalités screen :

perl -e 'print "escape ^", chr(176), chr(176), "\n"' >> .screenrc 
+0

Que diriez-vous de 0x7F (supprimer le caractère)? – strager

+0

Vous pouvez toujours taper n'importe quel caractère ASCII arbitraire, en utilisant Alt + nnn ou copier et coller. Y compris chr (0x7F). –

+0

@Hewgill, Vous pouvez utiliser Alt + nnn sur un terminal moyen? – strager

0

empêcher l'utilisateur d'utiliser la fonctionnalité de l'écran est mauvaise forme (sauf si vous avez une connexion partagée qui exécute votre application).

Au lieu de cela, faites votre demande accord avec le cas d'utilisation que vous avez montré par autologout, avertissement nouvelle connexion des utilisateurs et en leur donnant la possibilité de démarrer l'autre utilisateur, la gestion de plusieurs utilisateurs, etc.

0

au lieu d'utiliser l'écran , pensez à utiliser detachtty/attachtty

Questions connexes