На каком системном пользователе мой простой демон в Linux должен работать по умолчанию для лучшей совместимости? - PullRequest
2 голосов
/ 17 августа 2011

Я занимаюсь разработкой простого сетевого демона Linux, который запускается как root, chroot() в каталог файлов данных и удаляет права доступа root.Мне нравится подход «соглашение о конфигурации», и даже если у моего программного обеспечения есть конфигурация, позволяющая установить, какого пользователя и группу оно будет использовать, я хочу использовать разумное значение по умолчанию.

Какое значение по умолчанию следует использовать?Пользователь nobody и группа nogroup?Пользователь daemon и группа daemon?Другой

1 Ответ

0 голосов
/ 17 августа 2011

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

Таким образом, вы можете осуществлять жесткий контроль над его разрешениями, а также более жесткий контроль над файлами, управляемыми вашим сервисом.

Примерно так (скажем, ваш демон называется antoniod):

useradd -s /sbin/nologin antoniod

Затем вы можете соответствующим образом преобразить / chmod ваши файлы (скажем, у вас есть двоичные файлы в / opt / antoniod и данные в / var/ antoniod-data):

  chown -R antoniod:antoniod /opt/antoniod/
  chown -R antoniod:antoniod /var/antoniod-data/
  chmod -R 0550 /opt/antoniod/
  chmod -R 0770 /var/antoniod-data/

Если вы хотите получить совет по самому сценарию запуска, обратитесь к специальной поддержке дистрибутива, например, daemon функция (RedHat) или stop-start-daemon (Debian)

НТН

...