Wo sind alle Möglichkeiten zum Speichern einer Protokolldatei

8

Ich schreibe ein Programm und möchte, dass es eine Protokolldatei speichert. Das Problem ist, dass das Programm wirklich nicht als root ausgeführt werden sollte.

Wenn ich also an den Traditionen festhalten möchte, wo Dateien abgelegt werden, wo könnte ich die Protokolldatei aufbewahren, wenn nicht in / var / log, für die ein normaler Benutzer Berechtigungen hätte?

Edit: Ich benutze Arch Linux.

Joshua Strot
quelle

Antworten:

7

Da das von Ihnen verwendete Betriebssystem fehlt, könnte ein allgemeinerer Ansatz sein: Erstellen Sie ein Verzeichnis mit dem Namen Ihrer App (z. B. foo) /var/log

# mkdir /var/log/foo

Vor allem Unix-ähnliche Betriebssysteme ermöglichen es Ihnen, durch var_log-Ordner zu navigieren, aber nicht den Inhalt der Protokolldateien anzuzeigen (wie erwartet).

Geben Sie dem Benutzer, mit dem Sie Ihr Programm ausführen, den Besitz und diesem Benutzer (nur) die Berechtigung, diese Protokolldateien anzuzeigen / zu schreiben

# chown userfoo /var/log/foo
# chmod 600 /var/log/foo

Sie können auch mit Gruppen spielen und beispielsweise Operatoren Lesezugriff gewähren (und natürlich einen anderen Berechtigungssatz von chmod, wie z 640.

Erledigt. Dies sollte für jedes Unix-ähnliche System allgemein genug sein und möglicherweise einen besseren Ansatz darstellen, als einen Benutzer zu Verwaltungsgruppen hinzuzufügen.


quelle
1
Mein schlechtes, ich sollte hinzufügen, dass ich Arch Linux verwende. Ich bin mir nicht sicher, ob ich eine Methode möchte, da diese in ein Paket aufgenommen wird. Ich hatte wirklich mehr gehofft, dass es einen Ordner in einem Home-Verzeichnis des Benutzers geben könnte, in dem Protokolldateien gespeichert werden könnten.
Joshua Strot
1
Ok, hilf mir zu verstehen. Dieses Programm wird durch „normale Benutzer“ ausgeführt wird (wie password, cd, yes...) oder ein Dämon oder eine Server - Software , dass der Bedarf als normalen Benutzer oder Benutzer mit Administratorrechten ausführen , um die Risiken des Systems kompromittiert zu reduzieren? Ich sehe keinen geeigneteren Ort, um Benutzerprotokolle zu erstellen, da selbst die FHS nicht darüber spricht - refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html . Vielleicht: /home/user/.your_app/logswie fast alle Anwendungen in den Home-Ordnern der Benutzer, um Konfigurationsdateien und