Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.2. sudo コマンド

ユーザーに管理アクセスを付与する別のアプローチとして sudo コマンドを利用できます。信頼されたユーザーが、管理コマンドの前に sudo を付けると、それらは 独自 のパスワードを要求します。ユーザーが認証され、コマンドが許可されると、管理コマンドは root 権限で実行されているかのように実行されます。
sudo コマンドの基本的なフォーマットは、以下のとおりです。
sudo <command>
上記の例では、& lt;command& gt; は、通常、mount などの root ユーザー用に予約されているコマンドに置き換えられます。
sudo コマンドでは、ハイレベルの柔軟性が可能になります。たとえば、/etc/sudoers 設定ファイルに一覧表示されているユーザーのみが sudo コマンドを使用することができ、root シェルではなく、その ユーザーの シェルでコマンドが実行されます。これは、Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;Linux 『Red Hat Enterprise Linux 6nbsp;6 セキュリティーガイド』 に示されるように、root シェルを完全に無効にできることを意味します。
sudo を使用した正常な認証のログはすべて /var/log/messages ファイルに記録され、このコマンドを実行したユーザー名で実行されたコマンドは /var/log/secure ファイルに記録されます。追加のロギングが必要な場合は、以下の行を /etc/pam.d/system-auth ファイルに追加して、pam_tty_audit モジュールを使用して、指定したユーザーの TTY 監査を有効にします。
session required pam_tty_audit.so disable=<pattern> enable=<pattern>
pattern は、オプションでグロブを使用し、ユーザーのコンマ区切りリストを表します。例えば、以下の設定は、root ユーザーのTTY 監査を有効にし、その他のユーザーについては無効にします。
session required pam_tty_audit.so disable=* enable=root
sudo コマンドのもう 1 つの利点は、管理者がそれぞれのニーズに応じて特定のコマンドへのアクセスを管理者が許可できることです。
管理者が sudo 設定ファイル /etc/sudoers を編集する場合は、visudo コマンドを使用する必要があります。
他のユーザーに完全な管理権限を付与するには、visudo と入力し、ユーザー権限の指定セクションに以下のような行を追加します。
juan ALL=(ALL) ALL
この例では、ユーザー juan は、任意のホストから sudo を使用し、任意のコマンドを実行できます。
以下の例では、sudo を設定する際に可能な粒度を示しています。
%users localhost=/sbin/shutdown -h now
この例では、コンソールから実行した限り、すべてのユーザーがコマンド /sbin/shutdown -h now を実行できることを示しています。
sudoers の man ページには、このファイルのオプションの詳細なリストが記載されています。
重要
sudo コマンドの使用時には、潜在的なリスクがいくつか存在することを覚えておく必要があります。上記のように visudo を使用して /etc/sudoers 設定ファイルを編集することで回避できます。/etc/sudoers ファイルをデフォルトの状態にしておくと、wheel グループのすべてのユーザーが無制限の root アクセスを許可します。
  • デフォルトでは、sudo は sudoer のパスワードを 5 分間保存します。この間はコマンドを続けて使用しても、ユーザーはパスワードを要求されません。このため、ユーザーがログイン状態のままワークステーションを離れたりロックしない状態にしておくと、攻撃者に悪用されかねません。この動作は、以下の行を /etc/sudoers ファイルに追加することで変更できます。
    Defaults    timestamp_timeout=<value>
    <value> には、指定するタイムアウトの分数を入れます。< value> を 0 に設定すると、sudo は毎回パスワードを要求します。
  • sudoer のアカウントが侵害されると、攻撃者は sudo を使用して管理権限のある新たなシェルを開くことができます。
    sudo /bin/bash
    この方法や同様の方法で root として新しいシェルを開くと、/etc/sudoers ファイルで指定されたタイムアウト時間を無視し、新たに開かれたセッションが閉じられるまで攻撃者に sudo のパスワード入力を要求することがありません。