/etc/sudoers.dのファイルを特定の順序で読みますか?それでは、このソートのルールは何ですか?
答え1
でman sudoers
次のコマンドを使用して正しい場所を見つけます。
$ LESS='+/sudo will suspend processing' man sudoers
ファイルは語彙順に解析されます。つまり、
/etc/sudoers.d/01_first
以前に解析されます/etc/sudoers.d/10_second
。ソートは数値ソートではなく語彙ソートなので、ファイル名の前にゼロを一貫して配置する/etc/sudoers.d/1_whoops
と、この問題を回避できます。/etc/sudoers.d/10_second
タイトルの下の内容は次のとおりです。Including other files from within sudoers
$ LESS='+/Including other files from within sudoers' man sudoers
LC_COLLATE
語彙の順序は「辞書順」とも呼ばれ、ロケール設定時に環境変数で定義された値C
(数字、大文字、小文字)で与えられます。これは与えられた順序と同じですLC_COLLATE=C ls /etc/sudoers.d/
。
含まれているファイルのリストとそのファイルがロードされる特定の順序は、次のように公開できます。
$ visudo -c
/etc/sudoers: parsed OK
/etc/sudoers.d/README: parsed OK
/etc/sudoers.d/me: parsed OK
/etc/dirtest/10-defaults: parsed OK
/etc/dirtest/1one: parsed OK
/etc/dirtest/2one: parsed OK
/etc/dirtest/30-alias: parsed OK
/etc/dirtest/50-users: parsed OK
/etc/dirtest/Aone: parsed OK
/etc/dirtest/Bone: parsed OK
/etc/dirtest/aone: parsed OK
/etc/dirtest/bone: parsed OK
/etc/dirtest/zone: parsed OK
/etc/dirtest/~one: parsed OK
/etc/dirtest/éone: parsed OK
/etc/dirtest/ÿone: parsed OK
順序はUNICODEではなくCです。
答え2
sudoers
マニュアルで(#includedir
ディレクティブについて):
#includedir /etc/sudoers.d
sudo
パッケージマネージャまたはエディタの一時/バックアップファイルに問題が発生するのを防ぐために、文字/etc/sudoers.d
で終わる~
か、文字を含むファイル名をスキップして各ファイルを読みます。.
ファイルは語彙順に解析されます。つまり、/etc/sudoers.d/01_first
以前に解析されます/etc/sudoers.d/10_second
。ソートは数値ソートではなく語彙ソートなので、ファイル名に一定数の先行ゼロを使用すると、この問題を回避できます/etc/sudoers.d/1_whoops
。/etc/sudoers.d/10_second
望むよりman 5 sudoers
。
上記の単語の順序は、またはロケールのls
(または)からecho *
取得した順序と同じです。C
POSIX