ログの所有者とグループをrsyslog.confとは別のユーザーに変更しようとしています。
#
# Set the default permissions for all log files.
#
$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup syslog
/etc/rsyslog.d/99-custom.confにカスタム.confファイルがあります。
#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
私は新旧の構文を試しましたが、権限は次のようになります。
-rw-r--r-- 1 syslog syslog 263 Nov 8 15:40 datastore.log
$ PrivDropToUserおよび$ PrivDropToGroupをrootに設定した場合のみ、次のようになります。
-rw-r--r-- 1 xxxxx xxxxx 263 Nov 8 15:45 datastore.log
なぜアイデア??
このドキュメントページ によると、PrivDropToUserおよびPrivDropToGroupディレクティブは、初期起動後にどのユーザー/グループになるかをrsyslogに伝えます。 rootのように、syslogユーザーには他のユーザーのようにファイルを作成するための適切な権限がないと仮定します。
上記のページを読んだところ、ログファイルを下位レベルのユーザーが所有する場合は、そのユーザーをProvDropToUserに配置することを意図していると思います。例えば$PrivDropToUser xxxxx
$PrivDropToGroup xxxxx
。
また、ログファイルの書き込み先のフォルダーで、PrivDropToUserからのユーザーまたはPrivDropToGroupからのグループによる書き込みアクセスが許可されていることを確認する必要があります。
このページは、自分のWebアプリのログファイルを自分のアプリで読み取れるようにする方法を見つけようとしているのに気づき、答えがないので見つけたものを共有したいと思いました。私は専門家ではありません。
あなたの質問をありがとう、それは私が自分の答えを見つけるのに役立ちました。