17

logrotateを使用しようとすると、logrotate.dの特定の定義に対してログローテーションスクリプトを実行すると、次のエラーが発生します。

error: error creating state file /var/lib/logrotate/status: Permission denied

/var/lib/logrotate$ ls -lah
total 12K
drwxr-xr-x  2 root root 4.0K 2012-05-11 06:25 .
drwxr-xr-x 43 root root 4.0K 2012-05-18 08:07 ..
-rw-r--r--  1 root root  911 2012-05-25 06:25 status

私はそのパスに触れていないので、なぜデフォルトでエラーが発生するのだろうか...

4

3 に答える 3

34

chmodデフォルトのステータスファイルを666にしないでください。その場合chmod、システム上のすべてのユーザーがlogrotate攻撃ベクトルとして使用できます。

オプションを使用して、ユーザーの(プライベート)状態ファイルを定義するだけです(通常のユーザーとして実行しようとしていると仮定します)[-s|--state file]

于 2012-10-20T18:36:30.033 に答える
4

このコマンドをrootとして実行してもよろしいですか...?;)その場合は、システムにAppArmourがあるかどうかを確認してください。ある場合は、構成を確認するか、アンインストールしてください(Ubuntuの場合)。

于 2012-05-25T21:40:18.643 に答える
2

crontabに次の行がありました:

*  *  *  *  *   root    logrotate -s /var/run/logrotate.status /etc/logrotate.conf

ルートとして実行されていても、「エラー:状態ファイル/ var / run / logrotate / statusの作成中にエラーが発生しました:アクセスが拒否されました」というエラーを取り除くことができませんでした。

だから私は別のディレクトリを使用しました:

*  *  *  *  *    root    /usr/sbin/logrotate -s /var/log/logrotate.status -v /etc/logrotate.conf >/tmp/logrotate.out 2>&1

https://serverfault.com/questions/762587/daily-logrotate-error-creating-unique-temp-file-permission-deniedのデバッグのアイデアを使用しましたが、出力ファイルが無期限に大きくならないように変更しました。皮肉なことです。

ちなみに、この場合、冗長モードでは追加情報は提供されず、読み取っていた構成ファイルと同じエラーメッセージが表示されました。ただし、/ var/mailspoolよりもそのファイルに出力する方が適切でした。

于 2017-07-12T14:33:09.923 に答える