OSにはユーザーという概念がある。ユーザーはコンピュータにログインする際に使ったりする。ユーザーはコンピュータリソースの分割単位になってる。一つのコンピューターには、複数のユーザーを作ることができて、それぞれに別々の設定をすることができる。
ユーザーには権限(パーミッションとも)が与えられてて、ファイルやフォルダの読み書きや実行などに制約がつく。例えば、同じコンピュータに2つのユーザがいても、ユーザーAはユーザーBのデスクトップフォルダを覗けないのは、この仕組みのおかげである。
一般的に、(気づいていないとしても、)ユーザーは権限が制限されている。しかし、コンピュータには一切制限を受けない特別なユーザがいる。このユーザーは、端的に言えば、そのコンピュータにあるどんなファイルでも読み書きでき、どんなプログラムでも動かせる権限をもつ。このようなユーザをわかりやすく、スーパーユーザー
と呼ぶ。他にも、管理者(Admin)
や、root
と呼ばれることもある。そしてそのユーザが持つ全能の力を、スーパーユーザー権限、管理者権限、root権限と呼んだりする。
TIPS: なぜ、スーパーユーザーのことをrootと呼ぶかは、昔のUNIX(Linuxの前身)では、スーパーユーザーのホームディレクトリがルートフォルダ(/)だったことに由来するという説がある。(c.f., http://www.linfo.org/root.html)
スーパーユーザーは、例えば新しいプログラムを、そのコンピューターを使ってる全てのユーザーに対してインストールする時などに使われる。(そのユーザーしか使わないプログラムのインストールにはスーパーユーザーでなくても良いこともある)
スーパーユーザの力を使いたいとき、シンプルな方法は2つある。一つは、自分はログアウトして、スーパーユーザーとしてログインすることだ。スーパーユーザーとしてログインすれば、文字通り、なんでもできる。2つ目は、スーパーユーザの権限だけを使わせてもらうことだ。これは、スーパーユーザ権限を使ってもいいよ、という許可制になっており、許可さえもらえば、いつでもスーパーユーザーの権限だけもらうことができる。
権限だけ使いたい時はsudo
コマンド経由でできる。使い方は、スーパーユーザー権限で実行したいコマンドの先頭にsudo
とつけるだけだ。これで、そのコマンドは、スーパーユーザーが実行したのと同じことになる。これならいちいちスーパーユーザにならなくて済むので、より手軽である。
さて、スーパーユーザは文字通り”スーパー”なので、誤って乗っ取られると、危険極まりない。例えば悪意のあるハッカーやウイルスは、まずはスーパーユーザ権限を奪取することを目標にしてくる。なので、近代的なOSはスーパーユーザーを持たないことが良いという案もあるくらいだ。くれぐれも、スーパーユーザになったままで席を離れたりしないように。。。;)