Come devo accedere da un demone Debian Linux non root?
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.
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:
- Inizia come
root
, apri il file, quindi rilascia le autorizzazioni consetuid
. (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. - 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