sudo に関するインストールメモ(2003/03/13)
unix の世界では、su(root)になるということは、特権ユーザになりなんでもまかり通り存在なのです。ですので例えば「rm -r /」コマンドを実行すると、一般ユーザの場合には決して消すことの出来ないファイルでも、特権ユーザの場合は、全てなくなってしまうなどど、馬鹿となんとかは使い様っていうくらいの怖い存在なのです。(※:一般ユーザで「rm -r /」ってやっても被害甚大ですけどね)
なよくわからない文章となってしまいましたが「suコマンド」は、基本的には、一般の人が使えないようにするための配慮が必要であり、また例え「suコマンド」により root になってもその形跡を辿るのための仕組みや、どうしても一般の人に「suコマンド」を使わす時の機能制限などのセキュリティを確保しなければなりません。
本家 : Sudo(英語です)
参考 : sudoコマンドについて : セキュリティの確保について
参考 : sudo
1.まずはインストールをしようね♪
% gzip -cd sudo-1.6.6.tar.gz | tar xf -
% cd sudo-1.6.6
% ./configure
% make
% su
# make install2.インストールされる主要ファイルは以下の通りっす。
/usr/local/bin/sudo ←本体
/usr/local/sbin/visudo ←設定編集用エディタ
/etc/sudoers ←設定ファイル3.sudo のデフォルト設定です。(/etc/sudoers)
# 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.
#
# Override builtin defaults
# 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 now4.sudo の環境設定を設定しましょう♪ (/etc/sudoers)
# Override builtin defaults
Defaults syslog=auth,timestamp_timeout=10,!set_logname
# User alias specification
User_Alias HOGE2=hoge2
# Cmnd alias specification
# Defaults specification
# User privilege specification
root ALL=(ALL) ALL
HOGE2 ALL=(ALL) NOPASSWD:ALL ← hoge2 さんは、ノーパスワード
hoge ALL=(ALL) PASSWD:ALL ← hoge さんは、パスワード5.設定が終わったら実行してみましょ。
% whoami
hoge2
% sudo su
# ← rootユーザになれましたね
--------------------
% whoami
hoge
% sudo su
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these two things:
#1) Respect the privacy of others.
#2) Think before you type.
Password: ← ここでは、hoge さんのパスワードを入れます
# ← rootユーザになれましたね補足
1) wheel所属のユーザーはパスワードなしでsudoを使えるようにするには
# Same thing without a password
%wheel ALL=(ALL) NOPASSWD: ALL
2) sudo 実行時に記録される syslog の facility は、local2 に記録されます
3) syslog の facility を変更するには
#
Defaults syslog=auth
4) sudo によって rootユーザになっていられる時間は、最後のコマンド実行から5分間
この値をかえるには
#
Defaults timestamp_timeout=30
5) 上記両方の指定をする場合は
#
Defaults syslog=auth,timestamp_timeout=30