sudoコマンドを利用すると
% sudo コマンド…
によって、root権限でその「コマンド…」を実行できます。このとき、パスワー ドを聞いて来るので *自分の* パスワードを入れれば実際に実行します。 また、パスワードを打ってから5分は次のsudoをパスワード無しで行えるように なっているので、root作業で2〜3個のコマンドだけを使いたいときには
% cd /var/yp % sudo vi src/group Password: (ここで一回だけパスワードを打つ) % sudo vi src/netgroup % sudo make
のように続けて作業できます。
rootユーザの環境を設定した上でシェルを起動したいときは、
% sudo -H -s
のようにします。
sudoコマンド利用前には、その利用を許可するユーザ一覧をあらかじめ決めてお きます。/etc/sudoers ファイルがその定義ファイルです。sudoersファイルを編 集するには、rootになって visudo コマンドを利用します。
visudoファイルで、あるユーザに実行許可を与えるには、主に次のような形式 で記述します。
ユーザ(orユーザのalias) ホスト = コマンド または ユーザ(orユーザのalias) ホスト =(どのユーザとして実行するるか) コマンド
最も簡単な例としては、
user ALL=(ALL) ALLこれは、ユーザuserは全てのマシン上で、全てのコマンドを全てのユーザ権限で 動作させる事ができるということを意味します。
もし、特定のコマンドだけを、特定のユーザだけに、root権限で実行させたいと いう場合は sudoers ファイルに以下のようなエントリを足します。
User_Alias FLOPPY_USER=user1,user2,user3 Cmnd_Alias FLOPPY=/usr/local/bin/mountfloppy,/usr/local/bin/umountfloppy FLOPPY_USER ALL=FLOPPY
上の例では user1, user2, user3 だけが /usr/local/bin/mountfloppy,
/usr/local/bin/unmountfloppy コマンドをroot権限で実行することができます。
(aliasは必ず大文字で定義します)
ほかにも、ホスト名にnetmask記法を利用したりときめ細やかな処理ができます が、それらに関しては man sudoers に説明があります。