Экран сигнализирует главному терминалу, что он завершен и закрыт.

Выбор между sudoersи sudoers.dне имеет ничего общего с безопасностью, но имеет отношение к ремонтопригодности.

  • Раскомментировав строку группы sudoв /etc/sudoers, вы можете добавить всех пользователей, которым требуется доступ к sudo, в группу sudo. Это может быть проще, а может и нет, чем добавление нового файла в sudoers.d, в зависимости от ваших настроек. Однако изменение поставляемого файла конфигурации может усложнить задачу (. Например, если есть обновление вашего дистрибутива, которое перезапишет файл sudoers, вы должны убедиться, что ваши изменения сохранены ).
  • Добавив файл в /etc/sudoers.d, вы не столкнетесь с проблемой обновления, на которую я намекал выше, но затем, если вы явно добавите конфигурацию для adminuser1, а не для группы sudo, вы добавите больше пользователей в наличие прав sudo потребует добавления дополнительных файлов в /etc/sudoers.d; это может или не может быть более сложным, чем просто добавление их в нужную группу.

Не существует единственного пути, который был бы «наилучшим»; и, конечно же, нет проблемы безопасности, основанной на том, «в каком файле я настраиваю права sudo». Просто рассмотрите преимущества и/или недостатки обоих методов и используйте тот, который лучше всего подходит для вашего случая использования.

1
19.09.2019, 18:58
1 ответ

Когда вы вызываете screen -dm, он запускает отсоединенный сеанс, не зависящий от вашей текущей оболочки. Поскольку новый сеанс не является дочерним элементом вашей текущей оболочки, вам нужно будет самостоятельно исследовать его статус с помощью некоторого цикла проверки занятости -.

Одним из вариантов может быть исследование вывода screen -ls myscreenи сравнение его с «Сокеты не найдены в…» (в отличие от текущего -вывода «Есть экран на...(Отдельный )... 1 Розетка в..." ). Это предполагает, что у вас будет только один запущенный сеанс «myscreen» :

.
while ! screen -ls myscreen | grep -q 'No Sockets found in'; do sleep 1; done

Команда screen -lsпросто анализирует содержимое каталога сокета; вы могли бы посмотреть там сами. Файл сокета обычно помещается в $SCREENDIR; в системе, которую я тестировал, SCREENDIR=/var/run/screen.Цикл ниже будет успешным, если есть хотя бы один файл, соответствующий подстановочному знаку, и завершится, когда таких файлов больше не будет:

while ls /var/run/screen/S-"$LOGNAME"/*.myscreen > /dev/null 2>&1; do sleep 1; done

Это по-прежнему основывается на предположении, что вы запустили только один сеанс экрана с именем «myscreen».

Если вы можете запустить более одного сеанса с одним и тем же именем, вам следует быть более внимательным при выборе PID, соответствующего каждому сеансу.

0
28.01.2020, 00:00

Теги

Похожие вопросы