utiliser l'écran gnu lorsqu'il est utilisé en tant qu'utilisateur, mais en tant qu'autre

8

Voici ce qui se passe lorsque vous essayez d'utiliser l'écran gnu. Essentiellement, tout fonctionne bien jusqu'à ce que je su en tant qu'un autre utilisateur. alors j'obtiens une Cannot open your terminal '/dev/pts/7' - please check.erreur

l413:~$ ssh [email protected]
[email protected] password: 
sbird@example:~$ screen
[screen is terminating]
sbird@example:~$ su - gradplan
Password: 
gradplan@example:~$ screen 
Cannot open your terminal '/dev/pts/7' - please check.
gradplan@example:~$ 

Comment puis-je me connecter en tant que sbird, su sur gradplan et continuer à utiliser screen?

Alexander Bird
la source

Réponses:

4

Pour répondre directement à votre question:

ssh [email protected] su grandplan -c “script /dev/null -qc \"screen\""

Ne modifiez pas les autorisations sur votre / dev / pts / X - cela introduit simplement un trou de sécurité inutile.

Joseph Riopelle
la source
11

Tapez script /dev/nullavant de commencer screen.

$ su - gradplan
$ screen
Cannot open your terminal '/dev/pts/15' - please check.
$ script /dev/null
Script started, file is /dev/null
$ screen
# do whatever inside the screen
[detached]
$

ref: ServerFault: Pourquoi la redirection du 'script' vers / dev / null / permet-elle à 'screen' de fonctionner tout en étant poursuivi comme un autre utilisateur?

ento
la source
Pour les futurs lecteurs, j'ai trouvé que suivre l'intérieur de l'écran était en fait une meilleure pratique, mais comme cela répond mieux à ce que je demandais, j'ai accepté cela comme la bonne réponse.
Alexander Bird
1

Si vous:

ls -l /dev/pts/7

Vous verrez qu'il appartient à sbird, lorsque vous passez à gradplan, il n'a pas de permission pour toucher cet appareil.

Vous pouvez essayer de faire

chmod a+rw /dev/pts/X

(X étant le pts # auquel vous êtes actuellement connecté, car il changera) avant de filtrer.

Ou vous pouvez filtrer en tant que sbird, puis dans chaque fenêtre d'écran.

superfro
la source