использовать экран 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 там.

superfro
источник