Как мне войти в систему из демона Debian Linux без полномочий root?

StackOverflow https://stackoverflow.com/questions/483781

  •  20-08-2019
  •  | 
  •  

Вопрос

Я пишу новый демон, который будет размещен в Debian Linux.

Я обнаружил, что /var/log имеет права на запись только для root, поэтому мой демон не может записывать туда файлы журналов.

Однако, если он туда запишет, то, похоже, он получит автоматическую ротацию журналов, а также будет работать так, как ожидает пользователь.

Как демону рекомендуется записывать записи журнала, которые появляются в /var/log, без необходимости запуска от имени пользователя root?

Демон является веб-сервером, поэтому трафик журналов будет аналогичен Apache.

Это было полезно?

Решение

Вы должны создать подкаталог, например /var/log/mydaemon владение пользователем демона

Другие советы

От имени пользователя root создайте там файл журнала и измените владельца файла на пользователя веб-сервера:

# touch /var/log/myserver.log
# chown wwwuser /var/log/myserver.log

Затем сервер может записывать файлы, если он запущен от имени пользователя. wwwuser.Однако автоматическая ротация журналов не будет реализована.Вам необходимо добавить файл журнала в /etc/logrotate.conf или /etc/logrotate.d/... и заставьте ваш сервер повторно открыть файл журнала, когда логротировать сигнализирует, что так и должно быть.

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

Два варианта:

  1. Начать как root, откройте файл, затем сбросьте разрешения с помощью setuid.(Я не помню точных системных вызовов для удаления разрешений.) Вам все равно придется это сделать, если вы хотите привязаться к TCP-порту 80 или любому порту ниже 1024.
  2. Создайте подкаталог типа /var/log/mydaemon, принадлежащий пользователю демона, как WiseTechi сказал.

Файлы под /var/log не поворачиваются автоматически;вместо этого вращение контролируется /etc/logrotate.conf и файлы под /etc/logrotate.d.

используйте команду «регистратор»

http://linux.die.net/man/1/logger

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top