材料
材料の入手
ソース・コードを入手しないと話になりませんので、誰かにもらうかお買い物に行きましょう。
下記の場所や雑誌の付録から入手してください。
Web site だと http://www.courtesan.com/sudo/ がオリジナルサイトで ftp site だと ftp://ftp.courtesan.com の下の /pub/sudo がオリジナルサイトのようです。
ftp://ftp.win.ne.jp/pub/misc/sudo/ などにもあります。
Linux や FreeBSD の配布に含まれているようですので、その辺を探してみてください。
今回は、 ftp://sunsite.sut.ac.jp の /pub/archives/linux/distributions/slackware/source/ap/sudo/ から sudo_1.5.4.orig.tar.gz を持ってきました。
下拵え
まず材料を解凍します。
./configure という優れものを利用して Makefile を作成します。
この時、 ./configure のオプションはいっぱいありますが、基本的にデフォルトでお料理をしましょう。
パスは[ /usr/bin /usr/sbin /usr/ccs /usr/ccs/bin /usr/openwin/bin /usr/openwin/bin/xview /usr/local/bin . ]に貼ってあります。
# cd /usr/local/compile
# gzip -dc sudo_1.5.4.orig.tar.gz | tar xvf -
# cd sudo-1.5.4.orig
# ./configure
さてコンパイル
./configure で出来た Makefile では、コンパイルオプションが -g -O2 になっているので、デバッグなんてしないから -O2 だけに編集して make しましょ。
# vi Makefile
CFLAGS = -g -O2 → CFLAGS = -O2
# make
さぁ、盛り付け
Makefile に install オプションがあるのでこれで盛り付けてしまいましょう。 デフォルトだと実行ファイルは /usr/local/bin と /usr/local/etc に sudo の設定ファイルは /etc にマニュアルは /usr/local/man/man5 と /usr/local/man/man8 にインストールされます。
# make install
食事
さっそく sudo を試してみましょう。まず設定ファイル /etc/sudoers を編集して Super user コマンドを実行できる人を設定しましょ。設定ファイルに関しては、 man sudoers(5) に詳しく書かれているのでよく読んでください。じゃないとセキュリティホールだらけになります。まぁ、今回の食事は動かしてみるということで ...。
まず、 /usr/local/etc/visudo を使用して /etc/sudoers を編集します。ユーザーさんは pochi で、実行時に一応 root のパスワードを聞いてくるようにして cat /etc/shadow を実行してます。
# /usr/local/etc/visudo
# User alias specification
↓
# User alias specification
User_Ailas FULLTIME=prom
# User privilege secification
root ALL=(ALL)ALL
↓
# User privilege secification
root ALL=(ALL)ALL
FULLTIME ALL=ALL
# su pochi
% sudo cat /etc/shadow
Pasword :
今度はパスワードも要求しなくしちゃいます。
# /usr/local/etc/visudo
# User privilege secification
root ALL=(ALL)ALL
FULLTIME ALL=ALL
↓
# User privilege secification
root ALL=(ALL)ALL NOPASSWD: ALL
FULLTIME ALL=ALL
# su pochi
% sudo cat /etc/shadow
/usr/local/etc/visudo を使うと /etc/sudoers の中の書式ミスなんかをチェックしてくれます。えらいなぁ〜
後片付け
ソース・コードなどはバックアップしておいて作業した生ごみは必要がなければ消してしまいましょう。
# cd /usr/local/compile
# rm -r sudo_1.5.4.orig.tar.gz sudo-1.5.4