マウントされたドライブに書き込もうとすると、Rsyslogでエラーが発生する

マウントされたドライブに書き込もうとすると、Rsyslogでエラーが発生する

誰かがこれを見て、私が何か間違っていることを確認できますか?

私はRockyLinuxを実行しており、syslogサーバーを設定しようとしています。追加の2TBデータドライブが接続されているAzure VMで実行されます。

Rockyにドライブをインストールして修正し、fstab再起動後にドライブが存在することを確認して書き込むことができます。

Rsyslogはすべて設定および構成されており、デフォルト設定をそのままにしてログが/ var / logに送信されることを許可すると正常に動作しますが、データドライブを指すとすぐに権限エラーが発生します。

May 24 11:30:20 MyServer rsyslogd[4315]: error during config processing: Could not open dynamic file '/datadrive/syslogs/MyServer/rsyslogd.log' [state -3000] - discarding message [v8>
May 24 11:30:20 MyServer rsyslogd[4315]: error during config processing: omfile: creating parent directories for file  '/datadrive/syslogs/MyServer/rsyslogd.log' failed: Permission denied

Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs           3.8G     0  3.8G   0% /dev/shm
tmpfs           1.6G  148M  1.4G  10% /run
/dev/sda3       7.9G  1.8G  6.1G  23% /
/dev/sda2       994M  430M  564M  44% /boot
/dev/sda1       100M  7.0M   93M   7% /boot/efi
/dev/sdb1        16G   28K   15G   1% /mnt
tmpfs           769M     0  769M   0% /run/user/1000
/dev/sdc1       2.0T   15G  2.0T   1% /datadrive

どちらのディレクトリにも同じ権限と所有者があります。

[myroot@MyServer log]$ pwd
/var/log
.......
drwx------.  2 root   root     31 May 24 11:09 remote-device


[myroot@MyServer /]$ pwd
/
.....    
drwx------.   3 root root   21 May 24 10:03 datadrive

私が唯一気づいたのは、データドライブに入ろうとしていますが、機能しないときにディレクトリを/ datadriveに変更する前に問題を発行する必要があるcd /datadriveということです。sudo cd /datadrivesudo su

これで問題が発生する可能性がありますか?どんなアイデアでも大いに感謝します。

答え1

あなたの問題は、おそらくAppArmorによって制御されるACLだと思います。

ただし、後でこの回答を読む他の人にとって、あなたのログ権限は標準ではありません。ロギングが実行されるのは正常ではありませんroot。通常、これはグループsyslogに属するユーザーの下で発生します。したがって、カスタムログの場所を準備するには、通常、グループが必要なディレクトリに書き込むことができることをadm確認する必要があります。syslog引き続き使用するには、以下とコマンドを個人的にスキップできますが、chgrp他の人が必要な場合があります。chmodroot

1. 構成

/etc/apparmor.d/usr.sbin.rsyslogd最初の行の下に2番目の行を更新して追加します。

  /var/log/**                   rw,
  /datadrive/**                 rw,

最初の行は、構成ファイルにすでに存在するデフォルトの場所です。 2行目はデータドライブのマウントポイントです。他の読者はこの場所を適切に変更する必要があります。

2. コマンド

ランニング:

sudo chgrp syslog /datadrive/
sudo chmod g+w /datadrive/

sudo systemctl restart apparmor.service
sudo systemctl restart rsyslog.service

最初のコマンドはデータファンデーションログの場所のグループ所有権をsyslog標準に変更し、2番目のコマンドはグループがディレクトリに書き込むことを許可します(ファイルとサブディレクトリの作成を含む)。続行する場合は、これら2つのコマンドを直接スキップできますが、root上記のように標準設定を使用している他のユーザーにはこのコマンドが必要です。

その後、AppArmorを再起動して設定変更を適用し、rsyslogdを再起動しました。

sudo systemctl status rsyslogこれで、実際にデータが場所に追加されていることを確認して成功を確認できます/datadrive

追加

ちなみに、これは所有権と権限を通常のデフォルトに完全にリセットします。つまり、上記の特定の手術の変更ではなく、全体的な変更です。

sudo chown root:syslog /datadrive/
sudo chmod 775 /datadrive/

そしてそれは可能(しかし、その可能性は低いです)ACLを具体的に制御するために、次の行に沿って何かを実行する必要があるかもしれません。しかし、Rocky LinuxはAppArmorを使用しているように見えるので、これは最も可能性の高い犯人です。

sudo setfacl -m user:syslog:rwx /datadrive/

ちなみに、私はRocky Linuxユーザーではありませんが、Ubuntu / Debianで従う必要がありました。

より広く観察するには、ファイルの場所を変更する場合は、常に標準のシステムサービスに対するAppArmorの制限を確認することをお勧めします。 AppArmor がインストールされているシステムには、通常、そのプロセスに対して厳密なセキュリティ制御が定義されているためです。

関連情報