質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
logrotate

logrotateはログの世代管理やサイズ制限を行うLinux標準のツールです。

Q&A

解決済

2回答

6218閲覧

rsyslogで出した動的フォルダ及びファイルに権限付与したい

reisin

総合スコア3

logrotate

logrotateはログの世代管理やサイズ制限を行うLinux標準のツールです。

0グッド

0クリップ

投稿2022/03/16 04:52

編集2022/03/16 05:01

前提・実現したいこと

某システムサーバからrsyslogで受信しているログに権限を付与したいです。
調べるとlogrotateで実現出来るようですが、rsyslog.conf内のテンプレートでログを動的フォルダ名で作成されたフォルダ内に静的ファイル名で作成されたファイルに書き込んでいます。

動的フォルダ名/静的ファイル名 なログにlogrotateで権限を付与する方法はあるのでしょうか。当方Linux初心者のためご教示いただきたいです。

コンフィグ・例

  • /etc/rsyslog.conf 一部抜粋
### /var/log/system_log/ログ出力年/ログ出力月/ログ出力日/system_loginout.logに出力されるテンプレート $template System-LogInOut, "/var/log/system_log/%$year%/%$month%/%$day%/system_loginout.log"
  • 例えばログ受信日が2022/3/16の場合、/var/log/system_log/2022/03/16/system_loginout.log が出力されます。
  • rsyslogによって自動作成されるフォルダはsystem_logフォルダ及びその配下の日付フォルダたちです。
  • system_logフォルダ及びその配下の日付フォルダとログファイルにそれぞれ権限を付与したい、というものです(伝わりづらかったらすみません。。)
    ※付与したい権限は、「一派ユーザでも閲覧出来る権限」です。個人的にはchmod 755 ほにゃららのような権限が与えられればと思っています。
  • 恐らくlogrotateで静的フォルダ名/静的ファイル名 の組み合わせであれば付与可能なんだろうなと思っていますが、動的フォルダ名が絡んできたらどうなるんだろう、と思った次第です。

不明な点があればお教えください。
回答宜しくおねがいします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

$umask 0000 を設定すればパーミッション 0644 になりませんでしょうか?

もし、パーミッションを指定するのであれば、新フォーマット actionFileCreateMode= で設定します。
$umask も必要です。

$umask 0000 $template System-LogInOut, "/var/log/system_log/%$year%/%$month%/%$day%/system_loginout.log" local0.* action(type="omfile" dynaFile="System-LogInOut" FileCreateMode="0755")

(2022/03/16 17:33) 追記
ディレクトリのパーミッションは dirCreateMode で設定します。
既に作成済みのファイル、ディレクトリのパーミッションは変更できません。

$umask 0000 $template System-LogInOut, "/var/log/system_log/%$year%/%$month%/%$day%/system_loginout.log" local0.* action(type="omfile" dynaFile="System-LogInOut" fileCreateMode="0755" dirCreateMode="0755")

投稿2022/03/16 07:10

編集2022/03/16 08:33
TaichiYanagiya

総合スコア12173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

reisin

2022/03/16 08:18

回答ありがとうございます。 ログファイル自体のパーミッション変更には成功しました。しかし、そのログファイルがあるフォルダはパーミッション指定出来ませんでした。(ログファイルは755に出来たが、フォルダたちは700のまま)結果、ログファイルが一般ユーザでは閲覧できずにいます。rsyslogでフォルダのパーミッションまで変更することは出来ないのでしょうか。
guest

0

logrotateは、固定のファイル名で作られたログファイルを、日付付きもしくは連番付きのファイルにリネームして、次回用ファイルを作るのが目的なので、使用目的が違います。
普通に、cronジョブとして、ファイル作成とパーミッション変更をすれば良いかと思います。私なら毎日翌日用を作るか。

sh

1#!/bin/sh 2FILE=`date "+/var/log/system_log/%Y/%m/%d/system_loginout.log" -d "+ 1 day"` 3touch "$FILE" 4chmod 755 "$FILE"

これを23時台に実行する。

投稿2022/03/16 06:20

otn

総合スコア85768

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

reisin

2022/03/16 08:14

回答ありがとうございます。 取り急ぎ上記TaichiYanagiya様のご回答を試してみてからotn様の回答を試してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問