who コマンドが動作しない問題
who コマンドが動作しない問題が報告されています。who コマンド
who コマンドは現在ログインしているユーザーの情報を表示するコマンドです。実行しても何も出力されない
who コマンドを実行しても何も出力されません。systemd から utmp のサポートがなくなったのですが、who コマンドは utmp に依存したままであり、それが原因で本現象が発生しているのではないかとの報告があります。
単純にこれが原因なら who コマンドは utmp の代わりに、systemd-logind API に対応することになります。
Ubuntu 側のビルドがおかしい?
しかしアップストリームでは、Ubuntu 側のビルドがおかしいのではないかとの報告もあります。uutils coreutils のデバッグビルドだと、以下のように who コマンド実行時にユーザー名が出力されるとのことです。
なのですが、なぜか uutils coreutils のリリースビルドだと、何も出力されなくなるとのことです。
どういうことなのでしょうか。
gnuwho コマンドも動作しない
加えて Ubuntu 26.04 LTS では GNU coreutils の gnuwho コマンドも動作しません。who コマンドと同様に gnuwho コマンドを実行しても、以下のように何も出力されません。
ということは who / gnuwho コマンドが動作しない原因は、他もしくは他にもありそうです。
拒否ログが出る
さて監査ログを見てみましょう。who コマンドを実行した時に、以下のようにアクセス拒否のログが出力されます。
audit: type=1400 audit(1782351659.826:361): apparmor="DENIED" operation="open" class="file" profile="who" name="/usr/share/coreutils/locales/uucore/en-US.ftl" pid=6825 comm="who" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
who コマンド実行時に /usr/share/coreutils/locales/uucore/en-US.ftl ファイルへのアクセスが拒否されています。
次に gnuwho コマンドを実行した時に、以下のようにアクセス拒否のログが出力されます。
audit: type=1400 audit(1782351550.820:360): apparmor="DENIED" operation="open" class="file" profile="who" name="/run/systemd/sessions/3" pid=6763 comm="gnuwho" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
こちらは /run/systemd/sessions/3 へのアクセスが拒否されています。
AppArmor ですか?
AppArmor で who プロファイルを complain モードに変更し、gnuwho コマンドを実行すると、以下のように期待した情報が出力されます。しかし who コマンドを実行しても、相変わらず何も出力されません。
複合的な原因でしょうか。
いずれにせよ本件は、そのうち原因が判明するかと思います。
Ubuntu 25.04 の時にも似たような出来事があった
本件とは別の話ですが、Ubuntu 25.04 で utmp のサポートなしで systemd がビルドされるようになりました。この時にも GNU coreutils の who コマンドが動作しなくなった出来事がありました。





