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

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

13
02.06.2015, 01:05
3 ответа

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

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

Должен ли я дать «возможности», например «Cap_Sys_Time»?

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

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

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

  • Запустите службу как безвисковой пользователь, без оболочки.
  • Используйте Chroot , чтобы заблокировать пользователя в домашнем каталоге IT.
15
27.01.2020, 19:52

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

5
27.01.2020, 19:52
  • Применить ли мне другой способ, который можно было бы считать "хорошей практикой"?

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

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

13
27.01.2020, 19:52

Теги

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