GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS/RHEL で /var/log/messages のデフォルトのアクセス許可を変更する方法

デフォルトでは、/var/log/messages* は「root」ユーザーのみの読み取り/書き込み権限で作成されます。アプリケーションがログ ファイル内のデータを読み取って処理できるようにするなど、ログ ファイルを誰でも読み取り可能にする必要がある場合があります。 「chmod」を使用してそのようなファイルのアクセス許可を変更することは、次の logrotate cron ジョブ中に元のアクセス許可で再作成されるため、一時的な解決策になる可能性があります。この投稿は、/var/log/messages にカスタム権限 (例:644) を永続的に設定する方法を理解するのに役立ちます。

CentOS/RHEL 4 および 5 の場合 (syslogd を使用)

1. 「xxxx の作成」 」 /etc/logrotate.d/syslog のディレクティブ config ファイルは、syslogd デーモンによって管理されるログ ファイルのアクセス許可を制御します。

2. 以下の例は、/var/log/messages の権限を 644 (誰でも読み取り可能) に変更する方法を示しています。単一のログ ファイル (例:/var/log/messages) のパーミッションのみを変更することを目的としているため、/var/log/messages の変更専用に /etc/logrotate.d/syslog に新しい構成セクションを作成しています。 /P>

現在の権限:

# ls -l /var/log/messages
-rw-------. 1 root root 424848 June 22 09:18 /var/log/messages

3. まず、ファイル /etc/logrotate.d/syslog のメイン セクションから /var/log/messages を削除します。

# vi /etc/logrotate.d/syslog

 /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {      ### Remove /var/log/messages from main section
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

以下に示すように /var/log/messages の新しいセクションを作成し、同じファイルに追加します。

/var/log/messages {                                                                    ### add /var/log/messages to a sub-section

   sharedscripts
   create 0644                                                                         ### This directive will change the permission on /var/log/messages* to 644
   postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript

}
注意 :syslogd は、既存のファイルのアクセス許可を自動的に変更しません。元のファイルをコピーまたは移動し、変更を有効にするためにすぐにローテーションを強制します。

4. syslog を手動でローテーションして、権限の変更を確認します。

# logrotate --force /etc/logrotate.d/syslog
# ls -l /var/log/messages
-rw-r--r--. 1 root root 231 June 22 09:19 /var/log/messages

以降のすべてのログ ファイルは、「644」権限で作成されます。

CentOS/RHEL 6 および 7 の場合 (rsyslogd バージョン>3 を使用)

$FileCreateMode ディレクティブと $umask /etc/rsyslog.conf のディレクティブ 構成ファイルを使用すると、rsyslogd が新しいファイルを作成する作成モードを指定できます。デフォルトでは、$FileCreateMode ディレクティブは 0644 としてコンパイルされます。理想的には、rsyslog によって管理されるファイルを権限 644 で作成する必要がありますが、実際の権限は rsyslogd のプロセス umask に依存するため、すべてのファイルは権限 600 で作成されます。これを修正するには、/etc/rsyslog.conf を編集し、変更が必要なファイルの先頭に「$umask 0000」を追加します。

以下の例は、/var/log/messages の許可を 644 (誰でも読み取り可能) に変更する方法を示しています

1. /va/log/messages ファイルの現在の権限を確認します:

# ls -l /var/log/messages
-rw-------. 1 root root 424848 June 22 09:18 /var/log/messages

2. /etc/rsyslog.conf 構成ファイルと、ファイルの先頭にあるディレクティブ「$umask 0000」を編集します。

# vi /etc/rsyslog.conf
..
$umask 0000                 ### Add this to reset the umask#
$FileCreateMode 0644        ### This line can be omitted as the compiled in default is already set to 644. Modify this value if you need to set permissions other than 644#
*.info;mail.none;authpriv.none;cron.none /var/log/messages
$umask 0077                 ### Add this to set umask back to default, otherwise all files managed by rsyslogd (/eg /var/log/secure) will be created as world readable (644)
注意 :rsyslogd は、既存のファイルのアクセス許可を自動的に変更しません。新しいアクセス許可を有効にするには、ファイルを削除または移動し、rsyslogd をリロードする必要があります。

3. 現在の /var/log/messages ファイルを別の場所に移動します。これにより、新しく定義した権限で新しいメッセージ ファイルを作成できます。

# mv /var/log/messsages /tmp/

4. rsyslog サービスを再起動して、新しい /var/log/messages ファイルを生成します。

# service rsyslog restart        ### CentOS/RHEL 6
# systemctl restart rsyslog      ### CentOS/RHEL 7

5. ファイルのパーミッションを再度確認してください。

# ls -l /var/log/messages
-rw-r--r--. 1 root root 231 June 22 09:19 /var/log/messages

それだけです。以降のすべてのログ ファイルは、「644」権限で作成されます。


Cent OS
  1. CentOS / RHEL 7 で systemd-tmpfiles が /tmp/ または /var/tmp (tmpwatch の置き換え) をクリーンアップする方法

  2. CentOS/RHEL 6,7 の Rsyslog でデフォルトのログ ディレクトリ (/var/log) を変更する方法

  3. auditd ログ ファイル /var/log/audit/audit.log のパスを変更する方法

  1. CentOS/RHEL で /var/log/audit/audit.log ファイルのデフォルトのアクセス許可を変更する方法

  2. システム ログ ファイル /var/log/messages が自動的に削除またはトリミングされる (CentOS/RHEL)

  3. /var/log/messages ファイルの「segfault」メッセージとは

  1. /var/log/messages、/var/log/syslog、および/var/log/kern.logの違いは?

  2. 監査されたメッセージが /var/log/messages をいっぱいにする

  3. /etc/sysconfig/authconfig で USEFPRINTD=no の場合でも、fprintd がメッセージを /var/log/messages に記録する (CentOS/RHEL 7)