自宅サーバーをみんなで使う
sudo
通常一般ユーザーはroot権限を使う必要がありませんし使わないほうが安全です。昔UNIX OSが非常に高価だった頃、UNIXを一般ユーザーとして使っていた若かりし頃の著者はroot権限を全く必要と感じませんでしたし、下手にroot権限を持って壊してしまっては怖いのでroot権限を欲しいと全然思いませんでした。何かしたいときはroot管理者様にお伺いを立てて対応いただくといった重みが当時のUNIXの世界にはありました。
ところがUNIX系OSがこれだけ一般化してしまうとroot権限で操作することに対する特別な感覚はなくなり、またみんなroot操作に慣れているのでroot管理者にいちいち何かやってもらうよりは自分でやりたいと言い出します。しかしrootアカウントを共用にしてしまうと収拾がつかなくなるので、現在はrootアカウントを渡す代わりにsudoを細かく設定することでroot権限を扱える範囲を制限する方向で対応するのが良いと思います。
例えばuser1はapacheの再起動しかできない、user2はapacheの再起動とfindコマンドの実行ができる、user3は全てのコマンドを実行できる、といった感じです。
sudoは/etc/sudoersという設定ファイルにてアクセス制限を行います。しかしこのファイルを直接vi等で編集すると危険なため、この設定ファイルを編集するためのvisudoという専用のコマンドが用意されています。
# visudo
sudoersの書式にはいろいろありますが、ここでは代表的なものの例のみ紹介します。
sudoで特定ユーザーが全てのコマンドを使えるようにする
yamada ALL=(ALL) NOPASSWD: /usr/bin/find
sudoで特定ユーザーが特定コマンドだけ使えるようにする
yamada ALL=(ALL) /usr/bin/find
sudoで特定ユーザーが特定コマンドだけパスワード入力なしで使えるようにする
yamada ALL=(ALL) NOPASSWD: /usr/bin/find
sudoで特定グループが特定コマンドだけ使えるようにする
%admingrp ALL=(ALL) /usr/sbin/httpd
最後に
今回自宅サーバー実践編ということで、4回に亘って自宅サーバーで実際に使われそうな実例をいろいろご紹介させていただきました。誌面の都合で説明不足な部分も多々あったかと思いますが、全体の流れや雰囲気をつかんでいただいた後、ご自身で周辺知識を勉強しながら補完していただければと思います。どうもありがとうございました。