伝統的なUnixでは、su ないし su – でroot権限になってから各種コマンドを実行するのが普通でした
ところがroot権限のシェルでいろいろコマンドを打つと間違えたときの被害が大きいので、通常は一般ユーザ権限で作業して、どうしてもroot権限でないと実行出来ない場合だけそのコマンドをsudoを前置して実行するような方法が考えられました。例えば、ソースからプログラムをインストールする場合は、
$ tar xvfz program.tar.gz
$ cd program
$ ./configure
$ make
$ make test
$ sudo make install
のように、コンパイルは一般ユーザで行ってインストールだけsudoを使います。
どのユーザがどのコマンドをsudoで実行出来るかは/etc/sudoersに書いてあります。
root権限のシェルで作業したいときは sudo -s で出来ますが、本来はそうせずに、必要最小限のコマンドだけをsudoで実行すべきです。
あと、sudo su と su の違いとしては、パスワードで保護されている場合、sudo su で入れるのは今ログインしている一般ユーザのパスワード、su はrootのパスワードという違いがあります。/etc/sudoers の設定でsudoする際にパスワード不要にも出来ます。
コメント