使用してのもう一つの利点visudo -f
いくつかの回答で述べたように、対応するオプションもありです-c
か--check
あなたはsudoers.dファイルまたはあなたがsudoers.dに置きたいかもしれません、他のファイルに無効な情報を持っていないことを確認しが。これは、自動化ツールで言及されている場合に本当に便利です。たとえば、
sudo visudo -c -q -f /home/myuser/mysudoers && \
sudo chmod 600 /home/myuser/mysudoers && \
sudo cp /home/myuser/mysudoers /etc/sudoers.d/mysudoers
これはサイレントにファイルをチェックし(-qによる出力なし)、エラーが返されない場合のみ(出口1は無効なsudoersファイルを意味します)、ファイルをsudoers.dにコピーします。最初に正しくする必要なく作業します(使用sudo visudo -f /etc/sudoers.d/myfile
しないと、修正しないとコンテンツが破棄されます)。
また、他の回答からのこれらのステートメントに関する注意の言葉。
私の経験では、このディレクトリ内のファイルの規則は/ etc / sudoersよりも緩やかです。これには以下が含まれます:
ファイルの間違いが原因でsudoが失敗することはありませんでした。ただし、ファイルは無視されました。許可ルールはそれほど厳しくはありません。該当するグループにファイルの読み取りを許可します。/ etc / sudoでそれが可能だとは思わない。
/etc/sudoers.d内のファイルは、/ etc / sudoersと同じ構文に従う必要があります。なぜなら、同じエントリが複数ある場合、システムは単にすべてのファイルを「winning」の最後のファイルと連結するからです。特異な設定。
/etc/sudoers.d/内のファイルに対するアクセス許可がひどく間違っている(誰もが書き込み可能)場合、それらは無視されます。これが無効なファイルを見落とす原因となっている可能性がsudo
あります。正しい許可を持つdファイル。
別のユーザーとして、またはルート端末からこのコマンドを実行するために必要な書き込み許可を誤って「その他」に許可した場合、sudoersファイルを誰でも読み取り可能にすることができます。これは、ファイルがroot:root以外の誰かによって所有されている場合にも破損する可能性があります。
sudo chmod 644 /etc/sudoers.d/mysudoers
sudo chown root:root /etc/sudoers.d/mysudoers
実行するchmod o+w /etc/sudoers.d/vagrant
と、Vagrantユーザーとしてsudoが実行できなくなると、パスワードの入力を求められて失敗することを確認しました。
私が走ったときにsudo -l
別の有効なsudoのユーザーとして応用命令権限を表示するために、私はまた、ファイルのアクセス権に関する警告を受けました。これは、o+w
ユーザーにsudo権限を付与するファイルに権限を適用したときに、「迷惑な」ユーザーがsudoを失ったことを確認するために使用したのと同じコマンドです。