Назад | Перейти на главную страницу

использование экрана у другого пользователя с помощью su

Итак, если я сделаю это:

su -c 'screen -dmS screenname script to run' - user to run as

Это не сработает. Экранная команда работает, если исключена из root, так что проблем нет.

Если я сделаю:

su - user
screen

Я получил:

Cannot open your terminal '/dev/pts/0' - please check.

Что случилось?

РЕДАКТИРОВАТЬ: Я искал и не нашел хорошего решения этой проблемы.

Я сделаю следующее: запускать экраны как root.

Там есть лучший трюк:

su - user
script /dev/null
screen

Причина в том, что при входе в систему вы получаете tty, который в вашем случае в настоящее время называется / dev / pts / 0. Вы единственный, у кого есть доступ к этому терминалу, иначе другие пользователи могут вмешиваться в ваш сеанс, пока вы работаете. (Root, конечно, тоже имеет доступ, потому что root всегда имеет доступ ко всему.)

Когда вы отправляете запрос кому-то другому, вы по-прежнему сохраняете свой собственный терминал - потому что там будут отображаться ваши данные. Но теперь вы хотите, чтобы другой пользователь, которому вы предъявляете иск, мог взять на себя ваш tty и начать показывать на нем свои собственные данные.

Если вы доверяете всем остальным на сервере или, по крайней мере, другому пользователю, на которого подаете в суд, вы можете сделать свой tty доступным для записи для всех или добавить себя и этого другого пользователя в группу и сделать его доступным для записи для этой группы. Или вы можете запустить экран от имени себя, а затем вместо этого выполнить su.

Вы можете запустить свой экран следующим образом:

скрипт -q -c "экран -RD" / dev / null