
sudoers ファイルには次の行があります。
root ALL=(ALL) ALL
最初のフィールドがユーザーであることを読みました。最初ALL
はすべてのユーザーを意味するすべての端末、(ALL)
最後はALL
すべてのコマンドを意味します。
sudoersファイルにその行がない場合はどうなりますか?では、ルートは何もできませんか?
username ALL= /bin/passwd
このように「username」を解釈して、すべての端末でpasswdを実行することは可能ですか?firstの代わりにどのような値を指定できますか
ALL
?
答え1
このファイルは可能な通話
sudoers
のみを制御します。何でもできるsudo
ようにする行は通常役に立ちません。なぜなら、ルートは決して役に立たないからです。root
sudo
必要sudo
何でも。より便利です。これにより、ルートや他のsudoerが勝手に呼び出すことができ、sudo
権限を向上させるために呼び出すことができるスクリプトを作成できます。username ALL = /bin/passwd
ユーザーがpasswd
すべてのコンピュータで(そしてすべての端末でコマンドを実行できるようにします。sudoはそれを気にしません)Sudoを使用すると、ファイルにコンピュータ名を使用できるため、変更せずにネットワーク上のすべてのコンピュータにファイルを配布sudoers
できます。まだ特定のコンピュータにのみ適用されるいくつかの規則があります。sudoers
2番目の場所にはホストのリストがあります(マニュアル
Host_List
を参照)。sudoers
これは、コンマで区切られたホスト名のリストです。ホスト名の代わりにエイリアス(詳細についてはマニュアルを参照)、IPアドレス、またはさまざまなサブネットを指定する方法(詳細についてはマニュアルを参照)を使用できます。
マニュアルsudoers
は読みやすくありませんが、最後に良い例のリストがあります。そのセクションを最初に読むことをお勧めします。
答え2
sudo
実際、rootユーザーに対する権限はありません。この行は、ルートがプレフィックス付きのコマンドを実行した場合に表示されますsudo
。このルールは、ルートがこれを行うことを許可します。
sudo
スクリプトにプレフィックス付きのコマンドを含めることができる場合は、ルートがブロックされないように保護することをお勧めします。
ところで、あなたが読んだ規則は次のとおりです。
root ALL=(ALL) ALL
これは、ルートがすべてのホストのすべてのユーザーとしてすべてのコマンドを実行できることを意味します。したがって、ルールをあるシステムから別のシステムに移動する場合、ルートを特定のホストに制限すること、または何らかの方法でsudoルートを介して制限することに言及しないという点で、ルールは移植可能です。