Red Hat Training
A Red Hat training course is available for RHEL 8
12.3. 非特権ユーザーが特定のコマンドを実行できるようにする
管理者は、/etc/sudoers.d/
ディレクトリーにポリシーを設定することで、非特権ユーザーが特定のワークステーションに特定のコマンドを入力できるようにすることができます。
前提条件
- システムへの root アクセス権があります。
手順
root で、
/etc/
の下に新しいsudoers.d
ディレクトリーを作成します。# mkdir -p /etc/sudoers.d/
/etc/sudoers.d
ディレクトリーに新規ファイルを作成します。# visudo -f /etc/sudoers.d/<filename>
ファイルが自動的に開きます。
次の行を
/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.com
でdnf
およびreboot
コマンドを実行できるようにするには、user1 host1.example.com =/bin/dnf、/sbin/reboot
と入力します。
-
オプション: ユーザーが
sudo
権限を使用しようとするたびにメール通知を受信するには、ファイルに次の行を追加します。Defaults mail_always Defaults mailto="<email@example.com>"
- 変更を保存し、エディターを終了します。
検証
ユーザーが
sudo
権限でコマンドを実行できるかどうかを確認するには、アカウントを切り替えます。# su <username> -
ユーザーとして、
sudo
コマンドを使用してコマンドを入力します。$ sudo <command> [sudo] password for
<username>
:ユーザーの
sudo
パスワードを入力します。権限が正しく設定されている場合、システムはコマンドとオプションのリストを表示します。たとえば、
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 ページ