【root作業を手軽かつ安全に】

Last modified Sun Jan 9 00:37:40 2000 on firestorm

sudoで上手にマシン管理

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 に説明があります。


yuuji@example.org
Fingerprint16 = FF F9 FF CC E0 FE 5C F7 19 97 28 24 EC 5D 39 BA
HIROSE Yuuji - ASTROLOGY / BIKE / EPO / GUEST BOOK / YaTeX [Tweet]