sudoコマンドを利用し、一般ユーザーにroot権限を部分的に与えるUNIX処方箋

現場ですぐに役立つ知識を欲するあなたに贈る珠玉のTips集。今回は、一般ユーザーに必要最小限のroot権限を与えるための設定を紹介します。

» 2008年12月02日 00時00分 公開
[ITmedia]

sudoコマンドを利用し、一般ユーザーにroot権限を部分的に与えるrootの権限を持っている一般ユーザーを作成したいと考えています。必要最小限のroot権限を与えるには、どのような設定を行えばよいでしょうか?


一般ユーザーにroot権限を全体または部分的に与える場合、sudoというコマンドを利用します。ソースコードを利用しsudoのインストールを行うには、まずsudoのソースを入手します。2008年12月現在、sudoの最新バージョンは1.6.9p18(sudo-1.6.9p18.tar.gz)となっています。FreeBSD、HP-UX、IRIX、Linux、Mac OS X、Solarisなど一般的なUNIX環境にほぼ対応しています。

 ダウンロードしたファイルsudo-1.6.9p18.tar.gzを展開したら、「./configure」、「make && make install」を実行しインストールを行います。

 導入完了後、sudoの設定が記述されている/etc/sudoersファイルを編集し、一般ユーザーにroot権限を与えるための設定を行います。この編集は、rootユーザーとなりsudoのメンテナンス用コマンド/usr/local/sbin/visudoを実行することで行います(リスト1)。編集を終了し保存するには、Shift+Zキーを2回押します(大文字の「ZZ」を入力)。


# sudoers file.
#
# This file MUST be edited with the ‘visudo’ command as root.
#
# See the man page for the details on how to writed a sudoers file.
#
# Host alias specification
# User alias specification
# Cmnd alias specificaton
# User privilege specification
root ALL=(ALL) ALL
<アカウント(userid)> ALL=/usr/local/resin/bin/httpd.sh,/usr/local/apache/bin/apachectl
↑指定アカウント(userid)は、すべての接続元(ALL)においてroot権限でhttpd.sh、apachectlを実行できる
<アカウント(userid)> ALL=(ALL) ALL
↑指定アカウント(userid)は、すべての接続元(ALL)において、すべての権限(ALL)ですべてのコマンド(ALL)を実行できる

リスト1 /etc/sudoersファイルの編集内容

 sudoコマンドの一般的な使い方は次のとおりです。


$ sudo vi /etc/passwd
password : ←パスワードを入力

 またこのとき入力するパスワードは、rootユーザーのものではなく一般ユーザーのものとなります。

 これで、設定した一般ユーザーがroot権限で/etc/passwdを編集できるようになります。

関連キーワード

UNIX処方箋 | アクセス制御 | UNIX | Linux | 認証


Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ