використовувати gnu screen, коли ssh'ed як користувач, але su як інший


8

Нижче описано, що відбувається при спробі використовувати gnu screen. По суті, це добре працює, поки я не став іншим користувачем. то я отримую 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: Чому переадресація "скрипта" на / dev / null / дозволяє "екрану" працювати, коли він поданий до іншого користувача?


Для майбутніх читачів я виявив, що суїнг всередині екрану є фактично кращою практикою, але оскільки це відповідає тому, що я насправді просив краще, я прийняв це як правильну відповідь.
Олександр Птах

1

Якщо ви:

ls -l /dev/pts/7

Ви побачите, що йому належить sbird, коли ви перейдете на gradplan, у нього немає дозволу на дотик до цього пристрою.

Можна спробувати робити

chmod a+rw /dev/pts/X

(X - до якого пункту # ви зараз підключені, оскільки він зміниться) перед екраном.

Або ви можете екранувати як sbird, то в кожному вікні екрана є такий.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.