Red Hat Training

A Red Hat training course is available for RHEL 8

12.3. 非特権ユーザーが特定のコマンドを実行できるようにする

管理者は、/etc/sudoers.d/ ディレクトリーにポリシーを設定することで、非特権ユーザーが特定のワークステーションに特定のコマンドを入力できるようにすることができます。

前提条件

  • システムへの root アクセス権があります。

手順

  1. root で、/etc/ の下に新しい sudoers.d ディレクトリーを作成します。

    # mkdir -p /etc/sudoers.d/
  2. /etc/sudoers.d ディレクトリーに新規ファイルを作成します。

    # visudo -f /etc/sudoers.d/<filename>

    ファイルが自動的に開きます。

  3. 次の行を /etc/sudoers.d/<filename> ファイルに追加します。

    <username> <hostname.example.com> = (<run_as_user>:<run_as_group>) <path/to/command>
    • <username> を ユーザーの名前に置き換えます。
    • <hostname.example.com> をホストの URL に置き換えます。
    • (<run_as_user> : <run_as_group>) を、コマンドを実行できるユーザーまたはグループに置き換えます。このセクションを省略すると、<username> は root としてコマンドを実行できます。
    • <path/to/command> をコマンドへの完全な絶対パスに置き換えます。また、コマンドパスの後にオプションを追加することにより、特定のオプションおよび引数を指定したコマンドのみを実行するようにユーザーを制限することもできます。オプションを指定しないと、すべてのオプションが有効な状態でコマンドを使用できます。
    • 同じホスト上で 2 つ以上のコマンドを 1 行で許可するには、コマンドをコンマとその後のスペースで区切ってリストします。

      たとえば、user1 がhost1.example.comdnf および reboot コマンドを実行できるようにするには、user1 host1.example.com =/bin/dnf、/sbin/reboot と入力します。

  4. オプション: ユーザーが sudo 権限を使用しようとするたびにメール通知を受信するには、ファイルに次の行を追加します。

    Defaults    mail_always
    Defaults    mailto="<email@example.com>"
  5. 変更を保存し、エディターを終了します。

検証

  1. ユーザーが sudo 権限でコマンドを実行できるかどうかを確認するには、アカウントを切り替えます。

    # su <username> -
  2. ユーザーとして、sudo コマンドを使用してコマンドを入力します。

    $ sudo <command>
    [sudo] password for <username>:

    ユーザーの sudo パスワードを入力します。

  3. 権限が正しく設定されている場合、システムはコマンドとオプションのリストを表示します。たとえば、dnf コマンドを使用すると、次の出力が表示されます。

    ...
    usage: dnf [options] COMMAND
    ...

    システムがエラーメッセージを返した場合<username> は sudoers ファイルにありません。この事件は報道されます/etc/sudoers.d/<username> のファイルが存在しません。

    システムがエラーメッセージ <username> では <host.example.com> で sudo を実行することは許可されていませんを 返した場合、設定は正しく完了していません。root としてログインしていること、および設定が正しく実行されたことを確認してください。

    システムがエラーメッセージ Sorry、user <username> is not allowed to run ' <path/to/command> ' as root on <host.example.com> を返した場合。、コマンドはユーザーのルールで正しく定義されていません。

関連情報

  • sudo(8)visudo(8)、および sudoers(5) の man ページ