sudoの#includeおよび#includedirディレクティブの前にポンド(#)文字が付くのはなぜですか?

sudoの#includeおよび#includedirディレクティブの前にポンド(#)文字が付くのはなぜですか?

環境の設定中に、sudoインクルードディレクティブの前にポンド(#)文字が付いていることがわかりました。

Solarisはこれを次のように表示します。

## Read drop-in files from /etc/sudoers.d
## (the '#' here does not indicate a comment)
#includedir /etc/sudoers.d

ドキュメント(LinuxおよびSolaris)には、次のように記載されています。

sudoersに他のファイルを含める#includeおよび#includedirディレクティブを使用して、現在解析中のsudoersファイル内に他のsudoersファイルを含めることができます。

そして:

他の特殊文字と予約語ポンド記号( '#')は、コメントを表示するために使用されます(#includeディレクティブの一部であるか、ユーザー名のコンテキストで発生し、後に1つ以上の数字が続かない限り)。この場合、uidとして扱われます。コメント文字とその後のすべてのテキスト(行末まで)は無視されます。

#includeandディレクティブでポンド文字を使用することを選択した理由を知っている人はいますか#includedir

参考までに、私は基本的ではない/アクティブな構成設定を得るために同様のアプローチを頻繁に使用しますが、これは明らかにこのファイルegrep -v '^#|^$' configfileでは機能しません。sudoers

ベストアンサー1

#include参加する2004年。既存のコンテンツと互換性がなければなりません。しかし、あいまいだとは思わないが、パーサーが(指示文を含む)と(ユーザーがコマンドを実行できるようにする)をinclude /path/to/file区別する必要があるため、構文解析が少し難しい場合があります。include /path/to/fileinclude = fooincludefoo

しかし、最大の理由はCプリプロセッサと似ているからだと思います。手動インスピレーションとして明示的に引用されました。

おすすめ記事