目次にジャンプページナビゲーションにジャンプ: 前のページ[アクセスキーp]/次のページ[アクセスキーn]
documentation.suse.com / sudoを使用したスーパーユーザ特権の設定

sudoを使用したスーパーユーザ特権の設定

発行日: 06/03/2025
概要

sudo設定の基本を理解し、sudoを使用してスーパーユーザ特権を委任する方法を習得します。

目的

コマンドによっては、管理者特権またはroot特権が必要なものがあります。sudoを使用すると、そのようなコマンドを実行する特権を特定のユーザやグループに委任できます。

所要時間

この記事の理解には20分ほどを要します。最初のsudo設定ルールの作成に要する時間は数分たらずですが、環境全体で機能するsudo設定を確立するには、設定の複雑さに応じて相応の時間を要します。

目標

sudo設定の基本的な特性を理解します。sudo設定の一般的な使用例に対処します。sudoセットアップでユーザ、ユーザグループ、およびエイリアスを操作する方法を習得します。sudoのベストプラクティスとトラブルシューティングを理解します。

要件

1 sudoの設定の概要

sudoは、特定のユーザまたはグループにスーパーユーザ特権を安全かつ効率的に委任する手段を提供します。

Linuxシステムでは、特定の操作にroot特権または管理者特権が必要です。ホームユーザが自身のシステムを管理する場合、スーパーユーザ特権を委任する必要はありません。このシナリオでは、管理者と通常のユーザが同一人物であるためです。ただし、システムが複数のユーザ、グループ、およびホストで構成される大規模なシステム環境の一部になるとすぐに、誰がどこで何を実行できるかを常に制御することが不可欠になります。同時に、すべてのユーザとグループにそのタスクを実行するために必要な特権を付与することも重要になります。

sudoは、このような環境を支援するように設計されています。次のような機能が得られます。

システムセキュリティの強化

sudoを使用すると、ユーザ、グループ、ホスト、およびコマンドをきめ細かく制御できるため、侵入者やシステムユーザによる悪意のある損害や偶発的な損傷を受けるリスクが減り、システムのセキュリティが向上します。

優れた監査証跡

これは、ユーザが特権を切り替えるたびにシステムのログに表示され、このユーザが昇格された特権で実行したすべての操作を遡って追跡できます。

root固有のタスクを委任する方法

sudoを使用すると、システム管理者は、単一のユーザやグループがrootパスワードを入力したり、rootアカウントに切り替えたりすることなく、特定のタスクを実行できるようにすることができます。

重要
重要: この記事の利用方法

この記事では、sudoの詳しい設定情報を提供します。ただし、包括的で安全なsudoポリシーの構築方法に関するアドバイスは提供しません。セキュリティ関連のポリシーは非常に複雑であり、ポリシーの作成対象の環境によって大きく異なります。

2 カスタムsudo設定の作成

簡単なカスタムのsudo設定例を構築し、それを段階的に拡張する方法について習得します。グループを作成し、エイリアスを使用することで、カスタム設定の簡潔性と効率性を維持します。

警告
警告: 設定例はデモンストレーションのみを目的としています

以下で紹介するルールの例はデモンストレーションのみを目的としています。これらのルール例を利用して、sudo設定ファイルの一般的な構文を理解してください。実際の環境では、このルール例をそのまま使用しないでください。環境の複雑さを反映していないからです。

2.1 sudoの設定でのベストプラクティス

まず、sudo設定を維持するための基本ルールについて説明します。

sudoの設定ファイルの編集には必ずvisudoを使用する

sudoの設定の変更では、どの場合もvisudoコマンドを使用する必要があります。visudoは、sudo設定ファイルを編集できる特別なツールです。また、基本的な構文チェックを実行して、設定が壊れておらず機能することを確認することもできます。sudoの設定に不備があると、ユーザが自身のシステムからロックアウトされることがあります。

必ず/etc/sudoers.d/にカスタム設定を作成する

カスタム設定は、sudoによって取得できるように、/etc/sudoers.d/に置く必要があります。カスタム設定ファイルに記述した設定は、/etc/sudoersのデフォルト設定よりも優先されます。

設定が読み取られる順序にいつでも注意する

カスタム設定が確実に正しい順序で読み取られるように数字のプレフィクスを付加します。先頭に0を付加してファイルの読み取り順序を指定します。これにより、たとえば01_myfirstconfig10_myotherconfigよりも前に解析されます。順番に読み取られる複数のディレクティブを設定したファイルで、これらの各ディレクティブに記述された情報が互いに矛盾していると、最後に読み込まれたディレクティブが適用されます。

必ずわかりやすいファイル名を使用する

設定ファイルの機能がわかるようなファイル名を使用します。sudoのセットアップで想定している動作を追跡する際に、この措置が効果的です。

ヒント
ヒント: sudo設定と不変ファイルシステム

不変ファイルシステムとは、一度インストールしたら変更できないファイルシステムのことです。このファイルシステムは読み込み専用でアクセスされます。使用しているSUSE製品が不変ファイルシステムに依存する場合、製品に付属するデフォルトのsudo設定は/usr/etc/sudoersにインストールされ、事前設定の調整は/usr/etc/sudoers.d/にあります。

独自のカスタム設定は/etc/sudoers.d/に置かれ、/usr/etc/sudoers.d/で指定された設定よりも優先されます。visudoコマンドは、/usr/etc/sudoersを開き、古いsudoersファイルがなければ、変更されたファイルを/etc/sudoersに保存します。ファイルがすでに存在していた場合、visudoはそのファイルを開き、そのファイルに書き込みます。/etc/にあるインスタンスは、/usr/etc/に保存されているインスタンスよりも優先されます。こうすることで、ユーザが行った設定の調整が更新時に壊れないようにします。

2.2 ユーザ固有の設定ファイルの作成

通常のユーザ(tux)が、rootパスワードではなく自身のパスワードを使用して、useraddコマンドを使用できるように、sudoの設定ファイルを作成します。

例 1: ユーザ固有の設定ファイルの作成
  1. 新しいユーザ固有のディレクティブを保持するカスタム設定ファイルを作成します。そのためには、システム管理者(root)としてvisudoを起動します。番号とわかりやすい名前の両方を使用します。

    # visudo -f /etc/sudoers.d/02_usermanagement
  2. このsudo設定を適用する環境全体でtux/usr/sbin/useraddバイナリを実行できるようにするルールを作成します。

    tux1 ALL2 = /usr/sbin/useradd3

    1

    ユーザまたはグループを指定します。ユーザは名前または#UIDで一覧にし、グループは%GROUPNAMEで一覧にします。複数の項目はコンマで区切って記述します。エントリを無効にするには!を使用します。

    2

    ホストを1つまたはコンマで区切って複数指定します。完全修飾ホスト名またはIPアドレスを使用します。すべてのホストにこの設定をグローバルに適用するにはALLを追記します。適用しない場合は!を使用します。

    3

    実行可能ファイルを1つまたはコンマで区切って複数指定します。各ファイルの指定では次のルールに留意します。

    /usr/sbin/useradd

    追加オプションを追記しない場合は、実行可能なすべてのuseraddコマンドを実行できます。

    /usr/sbin/useradd -c

    明示的にオプションを指定すると、そのオプションのみが適用されます。上記で指定したユーザは、これ以外のオプションを利用できません。

    /usr/sbin/useradd ""

    オプションを指定せずにuseraddの呼び出しのみができるようにします。

    上記の例では、すべてのオプションとサブコマンドを許可するか、またはセキュリティ上の理由から数個に制限したいと考えていますが、ユーザによるオプションの指定を一切禁止することは、この状況では無意味です。

  3. ユーザがrootパスワードではなく自身のパスワードを使用できるようにするには、次の行を追加します。

    Defaults:tux !targetpw

    このフラグがアクティブな場合、目的のユーザ(root)のパスワードの入力が求められます。SLE Microシステムでは、このフラグがデフォルトで有効になっています。!を使用してこれを否定し、ユーザにrootパスワードではなく自身のパスワードの入力を要求します。

  4. 設定を保存してエディタを終了し、2つ目のシェルを開いて、sudoが新しい設定に従っているかどうかをテストします。

2.3 項目のグループ化によるカスタム設定の作成

指定したユーザのグループがrootパスワードを必要とせずにuseraddコマンドを実行できるように、例1「ユーザ固有の設定ファイルの作成」の設定を変更します。また、このグループで利用可能なコマンドのリストにusermoduserdelを追加します。

例 2: 項目のグループ化によるカスタム設定の作成
  1. この設定例を変更するには、visudoを使用してシステム管理者として設定を開きます。

    # visudo /etc/sudoers.d/02_usermanagement
  2. コンマ区切りで記述した複数のユーザをルールに追加します。

    tux, wilber ALL = /usr/sbin/useradd
  3. ここで記述したユーザが複数のコマンドを実行できるようにするには、それらのコマンドをコンマ区切りで指定します。

    tux, wilber ALL = /usr/sbin/useradd, /usr/sbin/usermod, /usr/sbin/userdel
  4. 一覧にしたユーザがrootパスワードではなく自身のパスワードを使用できるようにするには、次の行を追加します。

    Defaults:tux, wilber !targetpw

    このフラグがアクティブな場合、目的のユーザ(root)のパスワードの入力が求められます。SLE Microシステムでは、このフラグがデフォルトで有効になっています。!を使用してこれを否定し、一覧にしたユーザにrootパスワードではなく自身のパスワードの入力を要求します。

  5. 設定を保存してエディタを終了し、2つ目のシェルを開いて、sudoが新しい設定に従っているかどうかをテストします。

2.4 エイリアスの適用による設定の簡潔化

エイリアスを使用して、例2「項目のグループ化によるカスタム設定の作成」のカスタム設定の簡素化を進めます。項目をグループ化することはある程度は役に立ちますが、ユーザ、コマンド、およびホストにグローバルエイリアスを使用すると、クリーンで簡潔なsudo設定を最も効率的に維持できます。

リストではなくエイリアスとグループを使用する方が、より効果的にセットアップの変更に対処できます。グループからユーザが離れる場合は、独立したカスタム設定ファイルをすべて調べるのではなく、User_Aliasのグローバル宣言からそのユーザを削除するだけで済みます。他のタイプのエイリアス(Host_AliasCmnd_Alias、およびRunas_Alias)にも同じ手順が当てはまります。

例 3: エイリアスの適用による設定の簡潔化
  1. グローバルエイリアス定義を保持する新しいファイルを作成します。

    # visudo /etc/sudoers.d/01_aliases
  2. 次の行を追加して、TEAMLEADERSエイリアスを作成します。

    User_Alias    TEAMLEADERS = tux, wilber
  3. 次の行を追加して、USERMANAGEMENTエイリアスを作成します。

    Cmnd_Alias    USERMANAGEMENT = /usr/sbin/useradd, /usr/sbin/usermod, /usr/sbin/userdel
  4. 変更を保存して、visudoを終了します。

  5. システム管理者としてvisudoを起動して、設定ファイル例を次のように編集します。

    # visudo -f /etc/sudoers.d/02_usermanagement
  6. 以前のルールを削除し、上記で定義したエイリアスを使用する次のルールに置き換えます。

    TEAMLEADERS ALL = USERMANAGEMENT
  7. User_Aliasで定義されているすべてのユーザがrootパスワードではなく自身のパスワードを使用できるようにするには、次の行を追加します。

    Defaults:TEAMLEADERS !targetpw
  8. 設定を保存してエディタを終了し、2つ目のシェルを開いて、sudoが新しい設定に従っているかどうかをテストします。

注記
注記: 詳細情報

7項 「sudo設定のリファレンス」sudo設定構文の詳細な説明を参照するか、sudoのマニュアルページを参照してください。

3 sudoのパスワードプロンプトのタイムアウト変更

コマンドごとにrootパスワードの入力を求められることなく、root特権を必要とするコマンドを実行する際のタイムアウト設定を変更する方法について説明します。

先頭がsudoであるコマンドを初めて実行するときにrootパスワードの入力を求められます。このパスワードは一定期間有効です。この期間が経過すると、パスワードの入力を再度求められます。root特権を必要とするコマンドを実行する際のこのタイムアウトを延長または短縮するには、sudo設定ファイルを次のように変更します。

警告
警告: root特権にパスワードを使用しないアクセスを無制限に許可しないようにします

セキュリティ上の理由から、root特権に無制限のアクセスを許可しないでください。代わりに、侵入者によるrootアカウントの悪用を防止するために適切なタイムアウトを設定します。

手順 1: sudoのパスワードプロンプトのタイムアウト変更
  1. システム管理者として、次のようにtimestamp設定を指定した新しいsudo設定ファイルを作成します。

    # visudo --f=/etc/sudoers.d/timestamp_timeout

    rootパスワードによって正しく認証されると、この設定ファイルが開きます。

  2. 編集を有効にし、行timestamp_timeout=を追加します。timestampの値を入力します。

    たとえば、タイムアウトを3分に短縮するには次のように指定します。

    timestamp_timeout=3

    タイムアウトを0に設定していると、sudoコマンドを実行するたびにrootパスワードの入力を求められます。

  3. 変更を保存して、ファイルを閉じます。

sudo設定ファイルを作成し、sudoコマンドの実行のタイムアウト設定を短くしました。

4 root特権によるシェルの起動

sudo -sコマンドまたはsudo -iコマンドを使用して、永続的なroot特権でシェルを起動します。どちらのコマンドでも、rootパスワードの入力を一度だけ求められます。

4.1 sudo -ssudo -iの違い

rootとしてコマンドを実行するたびにsudoの入力が必要であると煩雑な作業になることがあります。代わりに、いずれかの組み込み機能を使用して永続的なroot特権でシェルを起動できます。この方法では次の2つのコマンドオプションを利用できます。

  • sudo -sでは、現在のユーザの環境でシェルを起動し、いくつかの特権制御手段も使用できます。このコマンドを実行するにはrootパスワードを入力します。

  • sudo -i: クリーンな環境で対話型ログインシェルとしてシェルを起動します。このコマンドを実行するにはrootパスワードを入力します。

どちらのコマンドでも、シェルは新しい環境で起動し、ユーザはrootとしてログインします。起動したシェルで実行する各コマンドは、パスワードの再入力を必要としない昇格した特権で実行されます。この環境はシェルを閉じると終了するため、別のsudoコマンドでは再度パスワードを入力する必要があります。

4.2 sudo -sによるシェルの起動

sudo -sコマンドでは対話型の非ログインシェルが起動します。rootパスワードによって正しく認証されると、以降のすべてのコマンドは昇格した特権で実行されます。

SHELL環境変数またはユーザのデフォルトのシェルで、どのシェルを開くかを指定します。この変数が空の場合は、/etc/passwdで定義したシェルが選択されます。

デフォルトでは、現在のユーザが前のユーザの環境を継承することから、前のユーザのディレクトリからsudo -sコマンドが実行されます。このコマンドは履歴にも記録されます。

永続的に昇格した特権でシェルを起動するには次のコマンドを入力します。

tux:~ > sudo -s
[sudo] password for root:
root:/home/tux # exit
tux:~ > 

プロンプトが> から# に変わります。

これで、永続的に昇格した特権でシェルが起動しています。以降のすべてのコマンドは、パスワードの再入力を求められることなく実行できます。

4.3 sudo -iによるシェルの起動

sudo -isudo -sコマンドラインオプションに似ていますが、起動するシェルは対話型ログインシェルです。sudo -sコマンドを使用すると、現在のユーザは前のユーザの環境を継承します。sudo -iコマンドを使用すると、これを防ぐことができます。この場合、ターゲットユーザはクリーンな環境を取得し、専用の$HOMEディレクトリで起動します。

sudo -iでコマンドを実行するには次のように入力します。

tux:~ > sudo -i
[sudo] password for root:
root:~ # exit
tux:~ > 

永続的に昇格された特権でシェルが起動し、コマンドが履歴に記録されます。以降のすべてのコマンドは、パスワードの再入力を求められることなく実行できます。

5 sudoのベストプラクティス

システムアクセスを制御し、ユーザの生産性を向上させるためのsudoのベストプラクティスをいくつか説明します。

sudo設定を徹底的にテストおよび監査します。

真に効率的で安全なsudo設定フレームワークを構築するには、定期的なテストと監査を定型業務として確立します。考えられる抜け穴を特定し、それに対処します。セキュリティよりも利便性を優先しないようにします。

独立したファイルにカスタムsudo設定を保存する

sudo向けの主なポリシー設定ファイルは、/etc/sudoersです。このファイルはシステムパッケージで提供されており、変更すると更新が動作しなくなる可能性があります。したがって、カスタム設定を記述した別の設定ファイルを/etc/sudoers.d/ディレクトリに作成します。/etc/sudoersのディレクティブによって、これらのファイルがデフォルトで取り込まれます。

sudoのタイムアウトを制限する

セキュリティ上の理由から、root特権に無制限のアクセスを許可しないでください。代わりに、侵入者によるrootアカウントの悪用を防止するために適切なタイムアウトを設定します。詳細については、3項 「sudoのパスワードプロンプトのタイムアウト変更」を参照してください。

visudoコマンドを使用する

/etc/sudoersファイルを安全に編集するにはvisudoコマンドを使用します。変更を保存する前に、このコマンドによってファイルの構文が確認されるからです。これは、システム中断の原因となりかねないエラーを修正するための予防的な手段です。基本的な構文チェックのほかに、visudo -cを実行して、sudo設定のフレームワーク全体が正しい順序で解析されていてエラーがないかどうかをチェックすることもできます。

個人ではなくグループでユーザを管理する

sudo設定をできるだけ簡潔で管理しやすい状態に保ちます。ユーザをグループに追加し、個人ではなくそのグループに特権を付与することによって、ユーザを管理します。これにより、設定全体でユーザを探すことなく、グループ設定を変更するだけでユーザの追加や削除ができます。

%admingrpグループに属するすべてのユーザがすべてのコマンドを実行できるようにするルールの例を以下に示します。

%admingrp ALL = (ALL) ALL
バイナリを実行できるパスを制限する

secure_pathディレクティブを使用して、ユーザがコマンドを実行できる領域を制限します。次の例は、SLE Microにデフォルトで用意されている設定です。

Defaults secure_path="/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/bin:/usr/local/sbin"
sudoログ記録の透過性を維持する

sudoでは、ログのエントリを見失いやすい標準ログファイルにログが記録されます。設定に次のルールを追加して専用のsudoログファイルを指定します。

Defaults logfile=/var/log/sudo.log

6 トラブルシューティング

sudo設定の問題をデバッグおよびトラブルシューティングする方法について説明します。

6.1 /etc/sudoers.d/にあるカスタム設定の無視

/etc/sudoers#includedirディレクティブでは、ファイル名の末尾が~文字であるファイルとファイル名に.文字が使用されているファイルが無視されます。これは、パッケージマネージャに用意されている設定ファイル(ファイル名に.が使用されいるファイル)と、エディタの一時ファイルやバックアップファイル(ファイル名の末尾が~であるファイル)に伴う問題を回避するための措置です。カスタム設定ファイルのファイル名にこのような文字を使用していないこと、ファイル名がこのような文字で終わっていないことを確認します。このような文字を使用しているファイル名、末尾がこのような文字であるファイル名は変更します。

6.2 カスタムディレクティブの競合

設定ファイルを読み取る順序によって、sudo設定ディレクティブが適用されるタイミングが決まります。/etc/sudoers.d/にあるファイルに記述したディレクティブは、/etc/sudoersにある同じディレクティブより優先されます。/etc/sudoers.d/に記述したカスタムディレクティブが機能しない場合は、visudo -cを使用してファイルの読み取り順序を確認します。必要に応じて、この順序を調整します。

6.3 破損したsudo設定によるロックアウト

誤ってシステムのsudo設定を破損してしまい、sudoからロックアウトされた場合は、su -rootパスワードを使用してルートシェルを起動します。visudo -cを実行してエラーがないかどうかをチェックし、visudoを使用してエラーを修正します。

7 sudo設定のリファレンス

このセクションでは、デフォルトおよびカスタムの両方のsudo設定を理解および管理するのに役立つ基本的なsudo設定リファレンスを提供します。

7.1 sudoers設定の構文

sudoersの設定ファイルには、2種類のオプション(文字列とフラグ)があります。文字列には任意の値を指定できますが、フラグはONかOFFのいずれかです。sudoersの設定ファイルで最も重要な構文構造は次のとおりです。

# Everything on a line after # is ignored1
Defaults !insults # Disable the insults flag2
Defaults env_keep += "DISPLAY HOME" # Add DISPLAY and HOME to env_keep3
tux ALL = NOPASSWD: /usr/bin/frobnicate, PASSWD: /usr/bin/journalctl4

1

例外が2つあります。#include#includedirは通常のコマンドです。最近のバージョンでは#が使用されなくなっています。代わりに、includeディレクティブの前には@を記述します。下位互換性を維持するために、#表記が引き続きサポートされています。

2

目的のフラグをONに設定するには!文字を削除します。

3

env_resetが有効な場合に保持する必要がある環境変数を列挙します。

4

ユーザtuxは、/usr/bin/journalctlを実行するにはパスワードが必要だが、すべてのホスト上で/usr/bin/frobnicateを実行するにはパスワードは不要であることを規定する複雑なルール。

有用なフラグとオプション
targetpw

設定すると、sudoによって、-uオプションで指定されたユーザパスワードの入力が求められ、-uが使用されていない場合はrootパスワードの入力が求められます。デフォルトはONです。

Defaults targetpw # Turn targetpw flag ON
rootpw

設定すると、sudoによってrootパスワードの入力が求められます。デフォルトはOFFです。

Defaults !rootpw # Turn rootpw flag OFF
env_reset

設定すると、sudoは、TERMPATHHOMEMAILSHELLLOGNAMEUSERUSERNAME、およびSUDO_*で構成される最小限の環境を構築します。また、env_keepに列挙されている変数は、呼び出し元の環境からインポートされます。デフォルトはONです。

Defaults env_reset # Turn env_reset flag ON
env_keep

env_resetフラグがONの場合に保持する環境変数の列挙。

# Set env_keep to contain EDITOR and PROMPT
Defaults env_keep = "EDITOR PROMPT"
Defaults env_keep += "JRE_HOME" # Add JRE_HOME
Defaults env_keep -= "JRE_HOME" # Remove JRE_HOME
env_delete

env_resetフラグがOFFの場合に削除する環境変数の列挙。

# Set env_delete to contain EDITOR and PROMPT
Defaults env_delete = "EDITOR PROMPT"
Defaults env_delete += "JRE_HOME" # Add JRE_HOME
Defaults env_delete -= "JRE_HOME" # Remove JRE_HOME

7.2 基本的なsudoersルール

各ルールは、次のスキームに従います([]はオプション部分を示しています)。

#Who      Where         As whom      Tag                What
User_List Host_List = [(User_List)] [NOPASSWD:|PASSWD:] Cmnd_List
sudoersルールの構文
User_List

1つ以上の(コンマで区切られた)識別子。ユーザ名、%GROUPNAME形式のグループ、または#UID形式のユーザIDを指定します。否定は!プレフィクスで指定できます。

Host_List

1つ以上の(コンマで区切られた)識別子。(完全修飾された)ホスト名またはIPアドレスのいずれかを指定します。否定は!プレフィクスで指定できます。通常、Host_ListにはALLを選択します。

NOPASSWD:|PASSWD:

NOPASSWD:の後に記述した、Cmd_Listと一致するコマンドを実行する場合は、パスワードが要求されません。

PASSWD:はデフォルトです。PASSWD:NOPASSWD:の両方が同じ行に存在する場合にのみ指定する必要があります。

tux ALL = PASSWD: /usr/bin/foo, NOPASSWD: /usr/bin/bar
Cmnd_List

1つまたは複数の(コンマで区切られた)指定子。実行可能ファイルへのパスの後に、オプションで使用可能な引数を指定します。

/usr/bin/foo     # Anything allowed
/usr/bin/foo bar # Only "/usr/bin/foo bar" allowed
/usr/bin/foo ""  # No arguments allowed

ALLは、User_ListHost_List、およびCmnd_Listとして使用できます。

7.3 エイリアスを使用したsudoersの簡潔化

エイリアスを取り入れて項目をグループ化すると、管理者は繰り返しの多い一連のルールを個別に維持する必要がなくなります。これらの構文はルールの構文と同じです。次のタイプのエイリアスがサポートされています。

User_Alias

ユーザ名のリスト

Runas_Alias

UID別のユーザのグループ

Host_Alias

ホスト名のリスト

Cmnd_Alias

コマンドとディレクトリ、およびエイリアスのリスト

エイリアスは、ユーザ、グループ、コマンド、およびホストの名前付きリストと考えてください。次にエイリアスの機能例を挙げます。

Host_Alias    WEBSERVERS = www1, www2, www31
User_Alias    ADMINS = tux, wilber, suzanne2
Cmnd_Alias    REBOOT = /sbin/halt, /sbin/reboot, /sbin/poweroff3
ADMINS WEBSERVERS = REBOOT4

1

3台のサーバを1つのHost_Alias WEBSERVERSにグループ化しています。(完全修飾)ホスト名またはIPアドレスを使用できます。

2

前記のグループ化したホストと同様に、グループユーザやユーザのグループ(%wheelなど)も、ここに列挙します。否定は、通常どおりにプレフィクス!で指定します。

3

同じコンテキストで使用するコマンドのグループを指定しています。

4

Host_Aliasで指定したすべてのホスト上でUser_Aliasで指定したすべてのユーザが、Cmnd_Aliasで指定したコマンドグループを実行できることを規定した単一のルールにすべてのエイリアスをまとめています。

要約すると、エイリアスは、管理者がsudoersを管理しやすく簡潔な状態(したがって安全な状態)に保つのに役立ちます。たとえば、ユーザの1人が退職した場合、この特定のユーザを含むルールをすべて検索するのではなく、User_Aliasステートメントと、そのユーザが属していたシステムグループからこの人物の名前を一度削除するだけです。