ファイルを含む生態系全体のVisudo完全性チェックを実行しますか?

ファイルを含む生態系全体のVisudo完全性チェックを実行しますか?

visudo含まれている他のファイルのコンテキストでファイルの完全性チェックを実行できますか/etc/sudoers.d

想像する:

/etc/sudoers.dファイルに新しいファイルを追加したいです。ファイル自体が正確で、visudo -cパーサーを通過します。

ただし、.NETCmnd_Aliasの他のファイルと競合する行が含まれていますetc/sudoers.d

aに移動すると、エラーが原因でコマンドが中断さ/etc/sudoers.dれます。sudoAlias '<name>' already defined near line

質問:

sudo新しいファイルを挿入した後にファイルが破損していないことを確認する方法はありますかsudoers.d

sudoまたは、エラーが発生したときに埋め込まれたファイル処理を無視/停止する方法はありますか?

答え1

/etc/sudoers提案された新しいファイルの関連付けを確認してください。

sudo bash -c 'visudo -cf <(cat /etc/sudoers /path/to/to-be-added-file)'

invisudoが解析されるため、in内のすべての関連ファイルもチェックされます。#includedir/etc/sudoerssudoers.d

$ sudo cat /etc/sudoers.d/foo
Cmnd_Alias FOO = /bin/bar
$ sudo cat /tmp/bar
Cmnd_Alias FOO = /bin/foo
$ sudo bash -c 'visudo -cf <(cat /etc/sudoers /tmp/bar)'
>>> /dev/fd/63: Alias `FOO' already defined near line 31 <<<
parse error in /dev/fd/63 near line 31

関連情報