Хорошей практикой является запуск демона под учетной записью пользователя без полномочий root?

Я разработал приложение, которое использует NTP для изменения сетевого времени, для синхронизации двух моих компьютеров. Он работает от имени root , поскольку только последнему разрешено изменять время и дату в Linux (я думаю).

Теперь я хочу запустить его как пользователь. Но мне нужно получить доступ к времени.

  • Хорошей практикой является запуск демона под учетной записью пользователя без полномочий root?
  • Должен ли я предоставить моему приложению такие возможности , как CAP_SYS_TIME ?
  • Разве это не приводит к уязвимости безопасности?
  • Есть ли способ лучше?

3 Solutions collect form web for “Хорошей практикой является запуск демона под учетной записью пользователя без полномочий root?”

Хорошей практикой является запуск демона под учетной записью пользователя без полномочий root?

Да, и это распространено. Например, Apache запускается с правами root, а затем запускает новый процесс как www-data (по умолчанию).
Как говорилось ранее, если ваша программа взломана (например, инъекция кода), злоумышленник не получит права доступа root, но будет ограничен привилегиями, которые вы предоставили этому конкретному пользователю.

Должен ли я дать «Способность», например «CAP_SYS_TIME»?

Это хорошая идея, так как вы избегаете использования setuid и ограничиваете разрешения этой специфической возможностью.

Должен ли я использовать другой способ сделать так, чтобы это считалось «хорошей практикой»?

Вы можете повысить безопасность, например:

  • Запустите службу как непривилегированный пользователь без оболочки.
  • Используйте chroot, чтобы заблокировать пользователя в его домашнем каталоге.
  • Должен ли я использовать другой способ сделать так, чтобы это считалось «хорошей практикой»?

Если у вас нет серьезных, неопровержимых причин, вы должны просто использовать пакет NTP, который поставляется вместе с вашим дистрибутивом GNU / Linux. Стандартный демон NTP занял много лет, чтобы созреть и оснащен сложными функциями, такими как замедление или ускорение часов вашей системы, чтобы синхронизировать его с сетью или GPS-часами. Он предназначен для синхронизации часов, поэтому, скорее всего, это лучший инструмент для этой цели.

ntpd по-прежнему поддерживается, судя по последним обновлениям (на момент написания этой публикации). Если вам нужно больше возможностей, я бы посоветовал вам напрямую связаться с разработчиками, доверять тому, что они могут сказать об этом.

Если у вас есть программа, которая должна иметь возможность выполнять функцию X (например, манипулировать часами), и вы можете дать ей привилегию / силу для выполнения функции X и ничего больше, это лучше, чем дать ей целую азбуку суп. Это называется принципом наименьших привилегий . Учтите, что, если ваша программа имеет ошибку – либо обычную ошибку программирования, либо уязвимость, связанную с безопасностью. Если он работает как «root», он может удалить все файлы – или отправить их злоумышленнику. Если единственное, что может сделать программа, это манипулировать часами (и непривилегированными функциями, такими как манипулирование файлами в заблокированном каталоге), то это самое худшее, что может случиться, если программа станет изгоем.

  • Как защитить паролем скрипт от Linux?
  • PBS-эквивалент команды «верхний»: не запускать «qstat» повторно
  • Инструмент сетевого мониторинга
  • Как я могу устранить SELinux, не позволяя законным программам использовать доступ к моей системе?
  • Как заставить конфликт зависимости для контрольных показателей?
  • Как я могу узнать, подключен ли кто-то к моей машине удаленно?
  • Cron, чтобы проверить, запущен ли PHP-скрипт, если он не запускается
  • Как обнаружить и остановить пользователя от удаления определенного файла в Linux?
  • Сделать топ-шоу только серверным процессом
  • Элементы управления Parentals?
  • В чем разница между / proc / self / stack и выходом из pstack?
  • Interesting Posts

    Regex: все греческие буквы с 5 уникальными буквами (это означает, что каждая буква появляется только один раз)

    Различия между построением из git-клона и загруженным почтовым индексом

    Исключительно высокое использование shmem

    Установка подкаталога дома на собственный раздел сбивает с толку отчет об использовании диска

    Разрешать ли пользователям домена права на акции cifs?

    vim latex: отключить quickfix

    Jabra BIZ 2400 USB HeadSet не выводит звук

    Улучшить команду sed для замены первого экземпляра символа и всех следующих символов?

    Как копировать символические ссылки при сохранении правильности ссылки?

    Не удается использовать Python3 Package Installer

    Разница между закрытием терминала с помощью кнопки закрытия и Ctrl-D

    Как найти процесс, который наводняет всю сеть

    Общие сведения о виртуальных коммутаторах в Linux

    Red Hat не может загрузиться после клонирования с dd

    Как установить точно такие же пакеты на другом компьютере в openSUSE?

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