Red Hat Training

A Red Hat training course is available for RHEL 8

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

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

たとえば、sudo 権限で dnf コマンドを使用して、ユーザー <example.user>host.example.com ワークステーションにプログラムをインストールできるようにします。

前提条件

  • システムへの root アクセス権限がある。

手順

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

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

    # visudo -f /etc/sudoers.d/<example.user>

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

  3. 以下の行を /etc/sudoers.d/<example.user> ファイルに追加します。

    <example.user> <host.example.com> = /usr/bin/dnf

    同じホストで 2 つ以上のコマンドを 1 行で許可するには、コンマで区切り , コンマの後にスペースを付けることができます。

  4. オプション: ユーザー <example.user>sudo 特権の使用を試みるたびにメール通知を受け取るには、以下の行をファイルに追加します。

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

検証

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

    # su <example.user> -
  2. sudo dnf を実行します。

    $ sudo dnf
    [sudo] password for <example.user>:

    ユーザー <example.user>sudo パスワードを入力します。

  3. システムは、dnf コマンドおよびオプションの一覧を表示します。

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

    システムが <example.user> is not in the sudoers file.This incident will be reported エラーメッセージを報告した場合、/etc/sudoers.d/<example.user> にファイルを作成していません。

    <example.user> is not allowed to run sudo on <host.example.com> エラーメッセージを受け取った場合は、設定を正しく完了していません。root としてログインしており、手順を完全に従っていることを確認します。

関連情報

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