Domanda

Sto scrivendo un nuovo demone, che sarà ospitato su Debian Linux.

Ho scoperto che / var / log ha i permessi di scrittura solo root, quindi il mio demone non può scrivere file di log lì.

Tuttavia, se scrive lì, sembra che otterrà la rotazione automatica del registro e funzionerà anche come potrebbe aspettarsi un utente.

Qual è il modo raccomandato per un demone di scrivere voci di registro che appaiono in / var / log, senza dover essere eseguito come root?

Il demone è un server web, quindi il traffico dei log sarà simile ad Apache.

È stato utile?

Soluzione

Dovresti creare una sottodirectory come /var/log/mydaemon con la proprietà dell'utente del demone

Altri suggerimenti

Come root, crea lì un file di log e cambia il proprietario dei file con l'utente del server web:

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

Quindi il server può scrivere sui file se eseguito come utente wwwuser. Tuttavia, non otterrà la rotazione automatica del registro. Devi aggiungere il file di registro a /etc/logrotate.conf o /etc/logrotate.d/... e riaprire il tuo server il file di registro quando logrotate lo segnala dovrebbe.

Puoi anche utilizzare syslog per la registrazione, se si adatta meglio al tuo scenario.

Due opzioni:

  1. Inizia come root, apri il file, quindi rilascia le autorizzazioni con setuid. (Non ricordo le esatte chiamate di sistema per il rilascio delle autorizzazioni.) Dovrai farlo comunque se desideri associare la porta TCP 80 o qualsiasi porta inferiore a 1024.
  2. Crea una sottodirectory come / var / log / mydaemon con la proprietà dell'utente del demone, come disse WiseTechi .

I file in /var/log non vengono ruotati automaticamente; invece, la rotazione è controllata da /etc/logrotate.conf e i file in /etc/logrotate.d.

usa il " logger " comando

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top