agetty が以下のメッセージを吐くので、対策を採ります。

Jun 17 06:29:25 hostname agetty[656]: failed to open credentials directory
Jun 17 06:29:25 hostname agetty[660]: failed to open credentials directory

メッセージの意味は?

credentials directory が開けません、というメッセージですが、そんなものを設定した覚えもないですし、そもそも credential って何のこと? って状態です。agetty はコンソールからログインするためのデーモンですが、普通にログインできているので、特に対応する必要はありません。しかし、意味のないメッセージでログが汚くなるのはよくありません。

今回同じ時刻に2回同じメッセージが出ているのは、コンソール以外にシリアルコンソールも動いているためです。細かいことのようですが、問題解決の際は、なぜ同じメッセージが 2回出るのか、理由を明らかにしておくことは大切です。

$ systemctl status
● hostname
    State: running
    Units: 382 loaded (incl. loaded aliases)
     Jobs: 0 queued
   Failed: 0 units
    Since: Mon 2024-06-17 06:29:21 JST; 1 day 1h ago
  systemd: 255.7-1.fc40
   CGroup: /
...
           ├─system.slice
           │ ├─system-getty.slice
           │ │ └─getty@tty1.service
           │ │   └─656 /sbin/agetty -o "-p -- \\u" --noclear - linux
           │ ├─system-serial\x2dgetty.slice
           │ │ └─serial-getty@ttyS0.service
           │ │   └─660 /sbin/agetty -o "-p -- \\u" --keep-baud 115200,57600,38400,9600 - vt220
...

credential って何?

credential は systemd で使用される概念です。暗号化キー、証明書、パスワード、ID などが該当します。これらの機密性が高い情報を安全に取り扱うための機能、ということは分かるのですが、通常の PAM の認証で十分な場合はこれ以上の設定は必要ないです。

対策の方針

今回採用した対策

/etc/rsyslog.conf をインストールしたパッケージを調べます。

$ rpm -qf /etc/rsyslog.conf
rsyslog-8.2312.0-1.fc40.x86_64
$ 

rsyslog と特定できたので、Fedora のパッケージソースを見に行きます。rawhide の rsyslog パッケージに含まれる /etc/rsyslog.conf を見ると、既に以下のように修正されているので、放置しておいても、いずれ対策されるものと推定されます。

# Use default timestamp format
module(load="builtin:omfile" Template="RSYSLOG_TraditionalFileFormat")

# To listen only on localhost and do not receive packets on other
module(load="imuxsock"    # provides support for local system logging (e.g. via logger command)
       SysSock.Use="off") # Turn off message reception via local log socket; 
                          # local messages are retrieved through imjournal now.
module(load="imjournal"             # provides access to the systemd journal
       FileCreateMode="0600"        # Quiet warning and ensure privacy
       StateFile="imjournal.state") # File to store the position in the journal

# Include all config files in /etc/rsyslog.d/

今回は、将来的な衝突を避けるため、rawhide の修正に習って、/etc/rsyslog.conf を修正することにします(緑色の行を挿入する)。コメントを見ても、同じ意図で修正されています。

これで、rsyslog を再起動すると、warning が出なくなります。