sudoersファイルを直接変更するのではなく、visudoを使用する必要があるのはなぜですか?


83

あなたが誰が使用sudoできるか、そして彼らがそれで何ができるかを変更したいなら、あなたは使用すべきであると理解していますvisudo。/ etc / sudoersファイルを自分で直接変更することは想定されていません。

visudoファイルを直接変更しても何ができないのですか?何がうまくいかないのでしょうか?

回答:


104

visudo実際にファイルを上書きするに、ファイルの構文をチェックしますsudoers

プレーンエディターを使用し、構文を台無しにすると、save ... sudoが(おそらく)動作を停止し、で/etc/sudoersのみ変更できるためroot、(ルートを取得する別の方法がない限り)動けなくなります。

さらに、編集が1つのアトミック操作になるようにします。このロックは、慎重に検討された設定変更を台無しにできないようにする必要がある場合に重要です。ルート以外の他のファイルを編集するために、このような編集の競合を防ぐコマンドも/etc/sudoersありますsudoedit


3
うわー、sudoeditについて知らなかった。OS Xでは動作しないので、GNUツールだと思いますか?とにかく、ここでクールな情報。私はいつも手動で編集していたので、問題は一度もありませんでした。幸運であり、このツールは大惨事を防ぐのに役立つことがわかったのです。ありがとう!
Harv

2
@Harv。GNUはなくsudo、OS XにはGNUツールがあります。sudoは最初にオープンソースアプリケーションとして作成されたため、それらが多くの実装である理由はおそらくないでしょう。sudoおよびsudoeditは同じコマンドで、sudoとしてsudo -e呼び出されsudoeditたときと同じように動作します。OS Xがsudoedit -> sudoリンクを追加するのを忘れただけだと思いますが、同じ動作を得るためにargv [0]を設定して使用sudo -eまたは呼び出すことができるはずです。sudosudoedit
ステファンシャゼル

興味深いことに、visudoデフォルトでnanoを使用します。
ティム14

3
@Tim:「実際の」デフォルトはviですが、他の何かを使用するように設定できます。したがって、nanoが実際のdistro / setupのデフォルトになります。マニュアルページを参照してください
マット14

2
@ AngularInDepth.com、結果はかなり明白です。無効なsudoersファイルを保存すると、システムはそれを解析できなくなります。そのsudo vim /etc/sudoersため、構文sudo vim /etc/sudoersを修正してから修正すると、再度修正することはできなくなります。事実上、システムがファイルを解析できないため、sudoを介して特権を昇格するすべての機能が失われます。
スペンサーD

23

visudo manページから:

visudoは、複数の同時編集に対してsudoersファイルをロックし、基本的な健全性チェックを提供し、解析エラーをチェックします。sudoersファイルが現在編集中の場合、後で再試行するメッセージが表示されます。

serverfaultからこの回答も確認してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.