rsyslog ändert den Dateibesitzer

2412
Andy

Ich versuche, den Besitzer und die Gruppe eines Protokolls in einen anderen Benutzer als die Datei rsyslog.conf zu ändern, die Folgendes hat:

# # Set the default permissions for all log files. # $FileOwner syslog $FileGroup adm $FileCreateMode 0640 $DirCreateMode 0755 $Umask 0022 $PrivDropToUser syslog $PrivDropToGroup syslog 

Ich habe eine benutzerdefinierte .conf-Datei in /etc/rsyslog.d/99-custom.conf, die aus folgenden Elementen besteht:

#Set the ownership to xxxxx #$FileOwner xxxxx  # Send datastore logs to separate file  if $programname == 'datastore' then { action( type="omfile" FileCreateMode="0644" FileGroup="xxxxx" FileOwner="xxxxx" File="/var/log/folder/datastore.log" ) #/var/log/folder/datastore.log ~ }  #$FileOwner xxxxx local6.* -/var/log/folder/datastore.log local6.notice -/var/log/folder/notice.log  #Reset file ownership to root #$FileOwner root 

Ich habe die alte und die neue Syntax ausprobiert, aber die Berechtigungen lauten:

-rw-r--r-- 1 syslog syslog 263 Nov 8 15:40 datastore.log 

Nur wenn ich $ PrivDropToUser und $ PrivDropToGroup auf root gesetzt habe, wird Folgendes ausgegeben:

-rw-r--r-- 1 xxxxx xxxxx 263 Nov 8 15:45 datastore.log 

Irgendwelche Ideen warum?

4

1 Antwort auf die Frage

2
Joe Carey

Gemäß dieser Dokumentationsseite teilen rsyslog die Anweisungen PrivDropToUser und PrivDropToGroup mit, welche Benutzer / Gruppen nach dem ersten Start verwendet werden sollen. Ich würde die Hypothese aufstellen, dass der Syslog-Benutzer keine ausreichenden Berechtigungen zum Erstellen von Dateien als andere Benutzer hat, während Root dies tut.

Nach meiner Lektüre der obigen Seite glaube ich, dass die Absicht darin besteht, dass Sie den Benutzer in ProvDropToUser setzen würden, wenn Sie möchten, dass Ihre Protokolldateien einem Benutzer niedrigerer Ebene gehören. zB $PrivDropToUser xxxxx $PrivDropToGroup xxxxx.

Sie müssen auch sicherstellen, dass der Ordner, in den Ihre Protokolldateien geschrieben werden sollen, Schreibzugriff für den Benutzer aus PrivDropToUser oder einer Gruppe aus PrivDropToGroup zulässt.

Ich fand diese Seite, um herauszufinden, wie die Protokolldateien meiner Web-App für meine App lesbar sind, und dachte, ich würde das freigeben, was ich gefunden habe, da es keine Antwort gibt. Ich bin aber kein Experte.

Vielen Dank für Ihre Frage, es hat mir geholfen, meine eigene Antwort zu finden.