
構文は次のとおりsudo
です。
user ALL=(ALL) ALL
したがって:
最初のフィールドは実行できるユーザーです。
sudo
sudo
3番目のフィールドは入力できるユーザーです。4番目のフィールドは実行できるコマンドです。
sudo
2位sudo
フィールドは、実行可能なホストを配置するために使用されます。
===================================
使い方を理解していない2位大地。sudo
他のホストBで使用するためにホストAでこれをどのように有効にしますか?
答え1
2位みんな=すべてのホストで(sudoers
同じファイルを複数のコンピュータに展開する場合)
答え2
これsudoers構文の完全な仕様あなたがリストしたものよりも複雑です。ホスト仕様は、ユーザーがこれらのコマンドを実行できるホストをsudoに通知します。マニュアルページに記載されているように、ホスト仕様が「ALL」の場合:
予約語ALLは、常に成功した一致結果をもたらす組み込みエイリアスです。 Cmnd_Alias、User_Alias、Runas_Alias、またはHost_Aliasが使用できる任意の場所で使用できます。
sudoは、ローカルホストのsudoルールにのみ興味があります。他のホストに接続されたコマンドを実行すると、そのホストで処理が再開されます。
複数のホストのsudoer設定を見ると混乱する可能性があります。特定のホストに適用される唯一のルールセットは、そのホスト名と「ALL」を含むルールです。
答え3
したがって、2番目のフィールドは実際にはローカルシステムにのみ適用されます。そうですか?ホストAのユーザーが他の権限でsudoを実行することを許可しませんか? - 愚かな奴
はい。ファイルはすべてのホストで使用される単一のコピーではなく、ホストの数だけ複製されます。単一のsudoersファイルを作成し、そのファイルのコピーを複数のホストに提供する方が簡単です。
実際の例を挙げるために、sudoers 構成の 80% を共有する数十台のサーバーがありますが、各サーバーにはいくつかの特別な構成があるとします。ホストリストを使用すると、適切なホスト固有の設定を維持しながら、各ホストに同じsudoersファイルを提供できます(たとえば、Ansibleを使用してすべてのホストにファイルのコピーを提供するなど)。
host_list
inという単語を検索すると、man sudoers
そこにEBNFが表示されます。 sudoersのマニュアルページによれば、「コンマで区切られている」とホスト名、IPアドレス、オプションのネットマスクを持つネットワーク、ネットグループ、またはホストエイリアスを使用できます。
Host_List ::= Host |
Host ',' Host_List
Host ::= '!'* host name |
'!'* ip_addr |
'!'* network(/netmask)? |
'!'* +netgroup |
'!'* Host_Alias