использовать экран GNU, когда ssh'ed как пользователь, но su как другой


8

Ниже описано, что происходит при попытке использовать экран GNU. По сути, все это прекрасно работает, пока я не су, как другой пользователь. тогда я получаю Cannot open your terminal '/dev/pts/7' - please check.ошибку

l413:~$ ssh sbird@example.com
sbird@example.com 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:~$ 

Как я могу войти как sbird, su в gradplan и все еще использовать экран?

Ответы:


4

Чтобы прямо ответить на ваш вопрос:

ssh sbird@example.com su grandplan -c “script /dev/null -qc \"screen\""

Не меняйте права доступа к вашему / dev / pts / X - это просто создает ненужную дыру в безопасности.


11

Введите script /dev/nullперед началом 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: почему перенаправление 'script' в / dev / null / позволяет 'screen' работать, пока подан в качестве другого пользователя?


Для будущих читателей я считаю, что использование внутреннего экрана на самом деле лучше для практики, но так как это отвечает на то, что я на самом деле спрашивал лучше, я принял это как правильный ответ.
Александр Берд

1

Если ты:

ls -l /dev/pts/7

Вы увидите, что он принадлежит sbird, когда вы переключитесь на gradplan, у него нет разрешений на прикосновение к этому устройству.

Вы можете попробовать сделать

chmod a+rw /dev/pts/X

(X - это точка, к которой вы сейчас подключены, потому что она изменится) перед вашим экраном.

Или вы можете просмотреть как sbird, а затем в каждом окне экрана su там.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.