Mon application nécessite un accès en lecture à /var/log/messages
, qui appartient à l'utilisateur et au groupe root
. Quel est le niveau d'exposition minimal requis pour /var/log/messages
que mon application puisse le lire?
Actuellement, mon plan est de changer la propriété du groupe /var/log/messages
en un nouveau groupe, et d'y ajouter root et mon utilisateur d'application, mais cela donnerait également des privilèges d'écriture à l'application /var/log/messages
.
Système d'exploitation: Centos 5.5
la source
Juste pour développer un peu les réponses ci-dessus, voici un cas d'utilisation réel. J'exécute l'application d'analyse de journal d'entreprise Splunk sur une boîte Redhat. Il s'exécute sous l'utilisateur splunk et le groupe splunk. Cela empêche Splunk d'accéder aux journaux dans / var / log car ils ne sont accessibles que par root (ou un administrateur sudo)
Afin d'autoriser l'accès en lecture seule pour Splunk uniquement, j'ai utilisé des ACL et modifié logrotate pour le conserver.
Vous pouvez définir manuellement l'ACL avec
Cela ne persistera pas car logrotate ne réappliquera pas le paramètre ACL, donc pour une solution plus permanente, j'ai ajouté une règle à logrotate pour réinitialiser l'ACL. J'ai ajouté le fichier ..
avec
Vérifiez l'état ACL d'un fichier avec
Pour plus d'informations sur les ACL, voir https://help.ubuntu.com/community/FilePermissionsACLs http://bencane.com/2012/05/27/acl-using-access-control-lists-on-linux/
la source
/etc/logrotate.d/Splunk_ACLs
que vous avez publié là-bas? Vous n'avez en fait pas besoin de spécifier de chemin pour que logrotate traite le bit postrotate?Votre plan est acceptable et dans le schéma d'autorisations Unix "traditionnel" est la meilleure façon de procéder.
Une autre option consiste à demander à syslog de détourner les messages d'intérêt vers un autre fichier (ce qui évite de donner à l'utilisateur de l'application l'accès à tout ce qui peut être sensible
/var/log/messages
).Si vous n'avez pas envie d'être lié par le schéma d'autorisations traditionnel de l'utilisateur / groupe / autre, vous pouvez également utiliser les listes de contrôle d'accès POSIX (autre, peut-être de meilleurs conseils / informations disponibles via Google) pour donner à l'utilisateur de votre application un accès en lecture seule à
/var/log/messages
- c'est un peu plus fin et ne risque pas de mettre accidentellement quelqu'un d'autre dans le groupe de l'application et de lui donner accès à des choses qu'il ne devrait pas voir.la source
Oui, je l'ai utilisé
setfacl
pour donner accès aumail.log
fichier à un client, vous n'aurez pas non plus besoin de coller une commande dans lelogrotate.conf
fichier pour réinitialiser l'ACL après la rotation des journaux, par exemple:Notez que je viens de configurer cela et que je n'ai pas testé, mais bien qu'il soit affiché ici, je ne peux pas voir pourquoi cela ne fonctionnerait pas, quelqu'un me corrige si je me trompe.
la source
Vous pouvez utiliser ACL pour cela. Il vous permet de définir des règles d'accès supplémentaires spécifiques pour des utilisateurs et des fichiers spécifiques.
la source
une fois que vous avez configuré votre ACL comme d'autres l'ont dit, au lieu de mettre toutes vos règles acl dans la configuration postrotate, vous pouvez utiliser logrotate pour utiliser copytruncate au lieu de créer un nouveau fichier journal à chaque fois
la source