Это хорошая практика, чтобы запустить демон под учетной записью пользователя без root?
Да, и это обычно. Например, Apache начинается как root, а затем новый процесс вилки как www-data (по умолчанию).
Как уже говорилось, если ваша программа взломана (например, инъекция кода), злоумышленник не получит доступе к корню, но будет ограничен привилегиями, которые вы дали этому конкретному пользователю.
Должен ли я дать «возможности», например «Cap_Sys_Time»?
Это хорошая идея, поскольку вы избегаете использования SETUID , а также ограничивать разрешения на эту очень специфическую возможности.
Должен ли я использовать другой способ сделать это, что считается «хорошей практикой»?
Вы можете увеличить безопасность, например:
Если у вас есть программа, которая должна иметь возможность делать функцию x (например, манипулировать часами), И вы можете дать ему привилегию / возможность делать функции x и ничего больше, Это лучше, чем давать ему всю банку супа алфавита. Это известно как принцип наименьших привилегий . Подумайте, что если у вашей программы есть ошибка - либо обычная ошибка программирования или эксплуатационная уязвимость безопасности. Если он работает как «root», он мог удалить файлы всех или отправьте их злоумышленником. Если единственное, что программа умеет делать , манипулирует часами (и невилегированные функции, Как управлять файлами в заблокированном каталоге), Тогда это худшее, что может произойти, если программа идет мошенничество.
- Применить ли мне другой способ, который можно было бы считать "хорошей практикой"?
Если у вас нет веских, неопровержимых причин для обратного, вам следует просто пользоваться пакетом NTP, который поставляется с вашим дистрибутивом GNU/Linux. Стандартному демону NTP потребовались годы, чтобы повзрослеть, и он поставляется со сложными функциями, такими, как замедление или ускорение системных часов, чтобы синхронизировать их с сетью или GPS-часами. Он был разработан для синхронизации часов, поэтому, скорее всего, является лучшим инструментом для этой цели.
ntpd
все еще поддерживается, , судя по последним обновлениям (на момент написания этой заметки). Если вам нужно больше возможностей, я бы предложил вам связаться непосредственно с разработчиками, доверьтесь тому, что они скажут по этому поводу.