Question

J'écris un nouveau démon, qui sera hébergé sur Debian Linux.

J'ai constaté que / var / log ne dispose que d'autorisations d'écriture sur les droits racine. Mon démon ne peut donc pas y écrire de fichiers journaux.

Cependant, s'il écrit à cet endroit, il apparaît que la rotation des journaux sera automatiquement effectuée et que l'utilisateur pourra s'y attendre.

Quelle est la méthode recommandée pour qu'un démon écrive les entrées de journal apparaissant dans / var / log, sans avoir à s'exécuter en tant que root?

Le démon est un serveur Web. Le trafic de journalisation sera donc similaire à Apache.

Était-ce utile?

La solution

Vous devez créer un sous-répertoire tel que /var/log/mydaemon la propriété de l'utilisateur du démon

Autres conseils

En tant qu'utilisateur root, créez un fichier journal à cet emplacement et remplacez le propriétaire des fichiers par l'utilisateur du serveur Web:

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

Ensuite, le serveur peut écrire dans les fichiers s'il est exécuté en tant qu'utilisateur wwwuser. Cependant, la rotation des journaux ne sera pas automatique. Vous devez ajouter le fichier journal à /etc/logrotate.conf ou /etc/logrotate.d/... et obliger votre serveur à rouvrir le fichier journal lorsque logrotate le signale. devrait.

Vous pouvez également utiliser syslog pour vous connecter, si cela vous convient mieux.

Deux options:

  1. Commencez par root, ouvrez le fichier, puis supprimez les autorisations avec setuid. (Je ne me souviens pas des appels système exacts pour la suppression d'autorisations.) Vous devrez le faire si vous souhaitez vous connecter au port TCP 80 ou à tout port inférieur à 1024.
  2. Créez un sous-répertoire tel que / var / log / mydaemon ayant la propriété de l'utilisateur du démon, comme a déclaré WiseTechi .

Les fichiers sous /var/log ne sont pas automatiquement pivotés; à la place, la rotation est contrôlée par /etc/logrotate.conf et les fichiers sous /etc/logrotate.d.

utilisez le " enregistreur " commande

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top