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

3 ответа3

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' работать, пока подан в качестве другого пользователя?

4

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

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

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

1

Если ты:

ls -l /dev/pts/7

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

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

chmod a+rw /dev/pts/X

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .