Я хотел бы иметь возможность проверять ход и результаты моих существующих screen
сеансов, но только для чтения, чтобы не допустить неправильной работы из-за ошибки пользователя. Есть ли способ сделать это?
источник
Я хотел бы иметь возможность проверять ход и результаты моих существующих screen
сеансов, но только для чтения, чтобы не допустить неправильной работы из-за ошибки пользователя. Есть ли способ сделать это?
К сожалению, я думаю, что ответ - нет. Ответчик на этот вопрос переключился на tmux именно потому, что он имеет эту функцию (вы устанавливаете -r
флаг при подключении), поэтому, если у вас есть возможность переключать мультиплексоры, это, вероятно, ваш лучший выбор
Можешь попробовать:
aclchg username -w "#"
если вы работаете screen
в многопользовательском режиме (но мне не нужно было делать ничего особенного, чтобы заставить его работать при тестировании как однопользовательский пользователь). Если вам нужно войти в многопользовательский режим, используйте multiuser on
.
Вы можете использовать *
для имени пользователя, чтобы повлиять на всех пользователей.
Использование +w
вместо -w
включает режим записи.
От man screen
:
список
разрешений userls aclchg список разрешений usernames chaclИзменить разрешения для списка пользователей через запятую. Биты разрешения представлены как 'r', 'w' и 'x'. Префикс «+» дает разрешение, «-» удаляет его. Третий параметр - это список команд и / или окон, разделенных запятыми (указывается либо номером, либо названием). Специальный список «#» относится ко всем окнам «?» на все команды. если имена пользователей состоят из одного '*', затрагиваются все известные пользователи. Команда может быть выполнена, когда у пользователя есть бит «x». Пользователь может вводить данные в окно, когда у него установлен бит w, и никакой другой пользователь не получает блокировку записи для этого окна. Другие биты в настоящее время игнорируются. Чтобы снять блокировку записи с другого пользователя в окне 2: «aclchg username -w + w 2». Чтобы разрешить доступ только для чтения к сеансу: 'aclchg username -w "#"'. Как только имя пользователя известно на экране, он может присоединиться к сеансу и (по умолчанию) имеет полные разрешения для всех команд и окон. Разрешение на выполнение команд acl, `at 'и других также должно быть удалено, иначе пользователь сможет восстановить разрешение на запись. Права специального имени пользователя никто не может быть изменен (см. Команду «su»). «Chacl» является синонимом «aclchg». Только многопользовательский режим. и другие также должны быть удалены, иначе пользователь сможет восстановить разрешение на запись. Права специального имени пользователя никто не может быть изменен (см. Команду «su»). «Chacl» является синонимом «aclchg». Только многопользовательский режим. и другие также должны быть удалены, иначе пользователь сможет восстановить разрешение на запись. Права специального имени пользователя никто не может быть изменен (см. Команду «su»). «Chacl» является синонимом «aclchg». Только многопользовательский режим.
screen
readonly везде, где присоединяется сеанс экрана, что, похоже, отличается от того, что запрашивал OP.aclcng
команда может указывать конкретных пользователей, конкретные команды и / или определенные окна, так что это довольно хорошая детализация. Так что это не "везде".Я нашел довольно простой обходной путь, который позволяет безопасно контролировать вывод.
Выполните следующие команды сразу после входа в сеанс экрана:
Отключите сеанс Ctrl-A dи следуйте выводу скрипта, например:
источник
Мое текущее решение для этого состоит в том, чтобы установить Terminal View на ReadOnly .
Может быть, это слишком очевидно. Однако вопрос сам по себе не требовал решения
screen
.источник
я написал скрипт php, который называется
readscreen
... прикреплять к сеансам экрана в режиме только для чтения. сохраните его/usr/bin/readscreen
и запуститеchmod 0555 /usr/bin/readscreen
, убедитесь, что у вас установлен php-cli с расширением php-pcntl, и вы можете написатьreadscreen
любую команду, которую вы используете для подключения к обычному экрану, например:и вы будете подключены к сессии foo только для чтения . обратите внимание, что он не был тщательно протестирован, но, кажется, работает нормально. читать исходный код:
источник