Show Table of Contents
6.2. sudo ユーティリティーを使用した管理アクセスを設定
ユーザーに管理アクセスを付与する別のアプローチとして
sudo コマンドを利用できます。信頼できるユーザーが、管理コマンドの前に sudo を付けると、このユーザー自身の パスワードが要求されます。ユーザーが認証され、コマンドが許可されると、管理コマンドは root ユーザーが実行しているかのように実行されます。
sudo コマンドの基本的なフォーマットは、以下のとおりです。
sudo command
上記の例の command の部分を、通常は
root ユーザーのみが使用する mount といったコマンドに置き換えます。
sudo コマンドでは、ハイレベルの柔軟性が可能になります。たとえば、/etc/sudoers 設定ファイルに記載されているユーザーのみが sudo コマンドを使うことができ、root シェルではなく、ユーザーの シェルでコマンドが実行されます。つまり、『Red Hat Enterprise Linux 7 セキュリティガイド』 にあるように、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
重要
TTY の監査システムの
pam_tty_audit PAM モジュールを設定すると、TTY 入力のみが記録されます。つまり、監査されるユーザーがログインすると、pam_tty_audit には、/var/log/audit/audit.log ファイルに記録されるキーストロークと同じ内容が記録されます。詳細は、pam_tty_audit(8) man ページを参照してください。
sudo コマンドのもう一つの利点は、各ユーザーのニーズに応じて特定のコマンドへのアクセスを管理者が許可できることです。
管理者が
sudo 設定ファイルである /etc/sudoers を編集する場合は、visudo コマンドを使用することが推奨されます。
他のユーザーに完全な管理権限を付与する場合は、
visudo と入力し、ユーザー権限の指定セクションに以下の行を追加します。
juan ALL=(ALL) ALL
この例では、ユーザーの
juan は sudo を使用すれば、どのホストからでもどのコマンドを実行できます。
以下の例では、
sudo を設定する際に可能な粒度を示しています。
%users localhost=/usr/sbin/shutdown -h now
この例が示しているのは、コンソールからであれば、
users システムグループのどのユーザーでも /sbin/shutdown -h now コマンドを発行できるということです。
sudoers の man ページにはこのファイルのオプションの詳細なリストが記載されています。
重要
sudo コマンドの使用時には、潜在的なリスクがいくつかあることを覚えておく必要があります。このリスクは、上記のように visudo を使用して /etc/sudoers 設定ファイルを編集することで回避できます。/etc/sudoers ファイルをデフォルトの状態にしておくと、wheel グループのユーザー全員に無制限の root アクセスを与えることになります。
sudoはデフォルトで、パスワードをタイムアウトの 5 分間、保存します。この間にコマンドを続けて使用しても、ユーザーはパスワードを要求されません。このため、ユーザーがログイン状態のままワークステーションを離れたりロックしない状態にしておくと、攻撃者に悪用されかねません。この動作は、以下の行を/etc/sudoersファイルに追加することで変更できます。Defaults timestamp_timeout=value
value には、指定するタイムアウトの分数を入れます。value を 0 にするとsudoは毎回パスワードを要求します。- sudo 使用者のアカウントが侵害されると、攻撃者は
sudoを使って管理権限のある新たなシェルを開くことができます。sudo /bin/bashこの方法や同様の方法でrootとして新たなシェルを開くと、/etc/sudoersファイルで指定されたタイムアウト時間を無視し、新たに開かれたセッションが閉じられるまで攻撃者にsudoパスワード入力を要求することがないため、理論上は攻撃者に時間無制限の管理アクセスを与えることになります。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.