誰かがこれを見て、私が何か間違っていることを確認できますか?
私は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 /datadrive
sudo su
これで問題が発生する可能性がありますか?どんなアイデアでも大いに感謝します。
答え1
あなたの問題は、おそらくAppArmorによって制御されるACLだと思います。
ただし、後でこの回答を読む他の人にとって、あなたのログ権限は標準ではありません。ロギングが実行されるのは正常ではありませんroot
。通常、これはグループsyslog
に属するユーザーの下で発生します。したがって、カスタムログの場所を準備するには、通常、グループが必要なディレクトリに書き込むことができることをadm
確認する必要があります。syslog
引き続き使用するには、以下とコマンドを個人的にスキップできますが、chgrp
他の人が必要な場合があります。chmod
root
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 がインストールされているシステムには、通常、そのプロセスに対して厳密なセキュリティ制御が定義されているためです。