pamのモジュールインターフェイスの前についてるhyphenについて


この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

はじめに

前回投稿した記事(https://cloud5.jp/run-user-uid/) でpamの設定を確認したところ、以下のようなディレクティブがありました。

-session     optional      pam_systemd.so

「session の前の ‘-‘ はなんなんだ…..!!!」

というわけで、気になって眠れなくなる前に調べました。

私以外にも、「気になったけど調べ切れなかった」という記事を見かけましたので、
折角だからと記事にした次第です。

結論ファースト

ちゃんとman pam.dに書いてありました!!

以下スクショ。
file

マークアップした箇所を引用します。

If the type value from the list above is prepended with a – character the PAM library will not log to the system log if it is not possible to load the module because it is missing in the system. This can be useful especially for modules which are not always installed on the system and are not required for correct authentication and authorization of the login session.

ざっくり意訳すると、モジュールタイプの前に’-‘(hyphen)をつけると、もしシステムにそのモジュールがなければログを記録しないようすることができるので常にインストールされているわけではないモジュール等を使う場合などに便利ですよ、とあります。

なるほどですね。

おわりに

ちなみに今回の質問をchat-gpt4に聞いてみると次のような回答がありました

ハイフンを使うと、「このモジュールが失敗しても処理を続ける(失敗を無視する)」という意味になります。これは、そのモジュールがオプショナルであることを示しています。

manを読んだ後なら分かりますが、違いますね。

ちゃんと公式ドキュメントを読まないとなと改めて思った次第です。

英語勉強してよかったなと思う今日この頃、それではまたお会いしましょう。
あでゅー!

Last modified: 2023-12-23

Author