Fedora 38 をインストールしました。設定上の変更点は以下のとおりです。

ssh ログイン時に Touch ID で認証する方式に切り替え

Secretive を導入し、 ssh ログイン時に Touch ID で認証する方式にしました。秘密鍵が漏洩する心配がないので、セキュアな運用ができます。Kickstart で OS をインストールする際に、公開鍵を authorized_keys に登録しておけば、OS インストール直後から Touch ID でログインできます。Fedora 37 の時に運用を切り替えて、Fedora 38 へのアップグレード(再インストール)までのサイクルで特に問題は生じていないので、運用上、問題なさそうです。

一方で、自動処理がしたい場合(rsync による定期バックアップなど)はこの方式は向かないので、自動処理が必要なケースは実行できるコマンドを制限した上で、従来の鍵交換としています。

最大の難点はコストです。あの Apple 純正のキーボードは高すぎます。一回買うだけなら値段は目をつぶるとしても、ユーザ交換不可の内蔵バッテリのため、大切に使っていても定期的にキーボードを購入させられるのは、Apple 商法にハメられてる感がします。

Fedora 37 からの非互換あれこれ

いくつか非互換がありました。いずれも小さな問題で解決策ありです。

SYSTEMD_EDITOR から sed を呼び出した際、-i オプションが正しく動作しない

viなどの対話的なエディタを起動させずに、だいぶ無理矢理な方法で、systemd の設定ファイルを書き換えていましたが、できなくなりました。

# cat << EOF | SYSTEMD_EDITOR='sed -i -f /dev/stdin' systemctl edit monit.service
4i [Service]'
4i RuntimeDirectory=monit'
4i RuntimeDirectoryMode=0775'
EOF
sed: +4 を読み込めません: そのようなファイルやディレクトリはありません
(editor) failed with exit status 2.
# 

sed を使うのをやめて、tee に変更しました(こちらの方がシンプル)。

# cat << EOF | SYSTEMD_EDITOR=tee systemctl edit monit.service
[Service]'
RuntimeDirectory=monit'
RuntimeDirectoryMode=0775'
EOF
# 

firewall-cmd で複数ゾーンの指定ができない

Fedora 37 (firewalld 1.2.5)までは、以下のような書き方ができていましたが、Fedora 38(firewalld 1.3.1)では不可になりました。

# firewall-cmd --permanent --zone={dmz,trusted} --add-service=ssh

面倒ですが、次のように書き直せば OK です。

# firewall-cmd --permanent --zone=dmz --add-service=ssh
# firewall-cmd --permanent --zone=trusted --add-service=ssh

なお、サービスは以下のように複数指定しても大丈夫です。

# firewall-cmd --permanent --zone=public --add-service={smtp,http,https}

uname -iuname -punknown を返す

代わりに -m を使えば OK です。

-i-p はマニュアルに「移植性なし」と記載がありますが、まさか後方互換性までなくなるとは思ってなかったです。コマンドのバージョンは変わって(9.1 のまま)いないので、カーネル側が返す情報が変わったようですね。

opendkim がデフォルトで opendkim.pid を作らない設定になった

/etc/opendkim.confPidFile の設定がコメントアウトされているので、解除すれば OK です。