Является /etc/rc.local хорошим местом для запуска скрипта, прежде чем какой-либо (обычный) пользователь сможет войти в систему?

У меня есть Ubuntu 14.04 Server, который во время загрузки должен синхронизировать некоторые вещи по сети, прежде чем любой обычный пользователь сможет войти в систему (через ssh).

Мне было интересно, правильно ли стоит сценарий /etc/rc.local ?

Глядя на комментарий этого скрипта:

Этот скрипт выполняется в конце каждого многоуровневого уровня запуска.

Похоже, он вызывается после того, как система готова принять логины от пользователей.

Вот как я понимаю «в конце каждого многоуровневого уровня».

Я видел ответ здесь: Цель и типичное использование /etc/rc.local , я все же нашел это немного двусмысленным.

ОБНОВИТЬ

Еще немного контекста присвоено: это автоматизированный процесс, в котором пользователь на самом деле много компьютеров, опросив сервер для входа в систему ….

  • где is / var / log / messages
  • Как подключить два компьютера Linux с Bluetooth?
  • туннель ssh, переадресация портов - путают
  • Запуск приложения как root во время загрузки на Ubuntu 14.04
  • разрешение umask - где он работает, где он не работает - ftp vs scp
  • Создание зашифрованного раздела на существующем диске с одним основным разделом при сохранении данных
  • Ошибка Grub 15 (файл не найден)
  • Файл asound.conf поврежден, не позволяет воспроизвести правильную звуковую карту, в результате она продолжает терпеть неудачу
  • 4 Solutions collect form web for “Является /etc/rc.local хорошим местом для запуска скрипта, прежде чем какой-либо (обычный) пользователь сможет войти в систему?”

    Обычно /etc/rc.local является допустимым параметром, но он также зависит от объема работы, связанной с «синхронизацией некоторых вещей» и важности того, что пользователи не могут войти в систему до того, как это действие завершится.

    Если вы хотите убедиться, что синхронизация завершилась до входа в систему, вы можете рассмотреть один из двух вариантов «nologin».

    1. Напишите сценарий, который устанавливает оболочку входа (определенной группы пользователей) в /usr/sbin/nologin перед синхронизацией и восстанавливает ее после синхронизации.

    2. Создайте пустой файл /etc/nologin перед синхронизацией с помощью touch /etc/nologin и удалите его после синхронизации. Обратите внимание, что этот параметр может легко заблокировать вас, если вы отключили вход в систему с правами root через SSH, поскольку он запрещает вход в систему всех учетных записей, отличных от root.

    Для описанного вами случая вызов сценария синхронизации из /etc/rc.local является допустимым решением. Это то, с чем я, вероятно, тоже поеду, хотя есть, несомненно, другие решения, которые придумали бы другие люди.

    Он выполняется после всех «встроенных» сценариев запуска rc, но перед приглашением на вход в консоль. Однако имейте в виду, что пользователи смогут войти в систему через SSH до rc.local . Если это вызывает беспокойство, вы можете поместить свой скрипт в последовательность запуска после запуска сети, но до запуска SSH. Причина, по которой я все еще буду использовать rc.local и не беспокоиться о перемещении ее местоположения, заключается в том, что время между запуском демона SSH и пользователями, реализующими систему, доступно, по всей вероятности, намного дольше, чем требуется системе для запуска и выполнения rc.local script.

    Похоже, он вызывается после того, как система готова принять логины от пользователей. Вот как я понимаю «в конце каждого многоуровневого уровня».

    Нет, /etc/rc.local выполняется при загрузке системы. (При входе пользователя в систему с помощью ssh он установит среду и запустит сценарии из /etc/profile ~/.bashrc , прочитайте эту страницу для получения дополнительной информации.)

    Мне было интересно, правильно ли стоит сценарий /etc/rc.local?

    Да, ты можешь

    Я бы лично пошел с решением Джона, но вы также можете установить последовательность запуска, чтобы в самом начале (около символических ссылок S01) она запускала эту команду:

     echo "Please try to log in later" > /etc/nologin 

    Затем /etc/rc.local :

     /root/yourscript.sh rm -f /etc/nologin 

    Наличие файла /etc/nologin предотвращает вход в систему пользователя, не /etc/nologin пользователем root, либо из SSH, либо из консоли. Это гарантирует, что пользователи не войдут в систему до завершения вашего скрипта.

    Interesting Posts

    Почему я хочу создавать дополнительные разделы, если RHEL будет распознавать только до 16?

    Вычитание времени Bash

    Как добавить подсказку подтверждения tmux, когда я убью окно?

    Как предотвратить шлоот от переопределения файла passwd и других файлов, уже присутствующих в chrooted системе?

    Как я могу получить HASH главного ключа LUKS?

    Выполнить функцию readline без привязки клавиш?

    Как указать программы, которые я хочу запустить при загрузке компьютера?

    Почему дочерний элемент vfork или fork вызывает _exit () вместо exit ()?

    Использовать inotifywait для перемещения файла при загрузке в папку Dropbox

    Разделить файл на основе требуемой строки

    Скрипт, создающий оконные окна, неожиданно ждет закрытия каждого окна перед тем, как открыть следующий

    Как создать настраиваемое динамическое решение DNS?

    Что такое inode для сокета?

    Включение / dev / fb0 на виртуальных машинах CentOS 7?

    Измените gid определенной группы

    Linux и Unix - лучшая ОС в мире.