Translated message

A translation of this page exists in English.

sudo を使用して通常のユーザーが root ユーザーとしてコマンドを実行できるようにする方法

Solution Verified - Updated -

Environment

  • Red Hat Enterprise Linux 5
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 7

Issue

  • sudo を使用して通常のユーザーが root としてコマンドを実行できるようにする方法
  • sudo の使用方法
  • sudo の設定方法
  • sudo ユーザーの設定方法

Resolution

  • sudo コマンドを使用すると、別のユーザーとして Red Hat Enterprise Linux システムでタスクを実行できます。

  • sudosu コマンドとは異なり、より柔軟で安全です。 大きな利点の 1 つは、使用状況をログに記録できることです。 デフォルトでは、プログラムはログデータを /var/log/secure ファイルに保存します。

  • sudo プログラムは設定ファイル /etc/sudoers を使用して、コマンドを許可するかどうかの決定に使用するルールを保存します。 sudo パッケージによって提供されるプログラム visudo を使用して、/etc/sudoers ファイルを編集することをお勧めします。

  • normaluser というユーザーから root としてプログラムを実行できるようにするとします。 まず、sudo を使用して特権コマンドを実行してみてください。

$ sudo /sbin/service sendmail restart
Password:
normaluser is not in the sudoers file. This incident will be reported.
  • sudo コマンドは、ログファイル /var/log/secure への試行をログに記録しています。
# tail /var/log/secure
...
Aug 2 14:37:49 somehost sudo: normaluser : user NOT in sudoers ;
TTY=pts/2 ; PWD=/home/normaluser ; USER=root ;
COMMAND=/sbin/service sendmail restart
  • Red Hat Enterprise Linux システムには、特別なグループ「wheel」が存在し、これは従来から特権アクティビティーに使用されます。

  • ユーザーに補助グループ 'wheel' を追加します (このコマンドは root として実行する必要があります)。

# usermod -aG wheel normaluser
  • ユーザーが wheel グループのメンバーになっていることを確認します。
# groups normaluser
normaluser : normaluser wheel
  • /etc/sudoersvisudo コマンドで編集します。
# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#

# Host alias specification

# User alias specification

# Cmnd alias specification

# Defaults specification

# User privilege specification
root ALL=(ALL) ALL

# Uncomment to allow people in group wheel to run all commands
# %wheel ALL=(ALL) ALL

# Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL

# Samples
# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users localhost=/sbin/shutdown -h now
  • /etc/sudoers ファイルには例とコメントが含まれていることがわかります。 グループ 'wheel' のメンバーが sudo を使って root としてコマンドを実行できるようにするには、以下の行のコメントを解除します。
...
# Uncomment to allow people in group wheel to run all commands
%wheel ALL=(ALL) ALL
...
  • visudo プログラムは、vi エディターでキーバインドとコマンドを使用します。 visudo プログラムに変更を加えるには、'i' キー(挿入モード) を押します。 キーボードのカーソルキーを使用してカーソルを正しい位置に移動し、Delete キーを押して '#' 文字を削除します。

  • 変更を記述して保存するには、エスケープキーを押してから ':write'、':quit' の順に押して終了します。

...
# Uncomment to allow people in group wheel to run all commands
%wheel ALL=(ALL) ALL

#Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL

# Samples
# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users localhost=/sbin/shutdown -h now

# ALL ALL=NOPASSWD: /usr/bin/mindspring
  • 次に、特権コマンドを normaluser として再度実行します。
$ sudo /sbin/service sendmail restart
Password:
Shutting down sendmail: [ OK ]
Shutting down sm-client: [ OK ]
Starting sendmail: [ OK ]
Starting sm-client: [ OK ]
  • /var/log/secure ファイルは、sudo が問題なく使用された場合にも記録します。
# tail /var/log/secure
...
Aug 2 15:05:49 somehost sudo: normaluser : TTY=pts/2 ;
PWD=/home/normaluser ; USER=root ;
COMMAND=/sbin/service sendmail restart

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments