suとsudoの違いとは?ユーザーやrootって何?プログラマーがわかりやすく解説
sudo:別ユーザーになりすまして実行
sudoは「substitute user do」の略です。後ろにdoが増えましたね。doは「する」、つまり何かのコマンドを実行することです。誰か別のユーザの代理でコマンドを1個実行するのがsudoになります。
この説明だけだと、なぜsuやsudoをわざわざ使う必要があるのかと思いますよね。ログインし直してしまえば同じことができます。しかし、個人で使う前提のパソコンのOSであるWindowsと、多くのユーザーで利用する前提のUNIX系OSでは考え方が違うのです。ユーザーの考え方やセキュリティも含めて、suやsudoの違いやなぜ必要かを説明していきます。
こちらの記事もおすすめ
3分でわかるWindowsとMacの違い!操作性は?どちらを選ぶべき?情報科出身ライターがわかりやすく解説!
コンピュータは大勢で使う?UNIX系OSのユーザーとは
image by iStockphoto
パソコンはパーソナルコンピュータの略。個人で使うものです。家庭や会社で1台のパソコンを共用するとはあっても、誰かが使っている時に別の人が使うことはできませんよね。Windowsはパソコン用ですので同時に使うのは1人だけという前提です。
一方、LinuxなどのUNIX系OSは1台のコンピュータを同時に何人かで使う前提になっています。最近はパソコンにLinuxをインストールして個人で使う事も多いです。しかし元々は同時に何人ものユーザーで使うもの。そのため、WindowsとUNIX系OSでは考え方が違う部分も多いです。まずはUNIX系OSのユーザーと、suやsudoとの関係を見ていきましょう。
Windowsはプライベートビーチ?UNIX系は海水浴場?
パソコンでのユーザーというのは主にその人のデスクトップやドキュメントフォルダを指すことが多いかと思います。これらはユーザごとに別物です。個人で使うことが多いパソコンはユーザー=パソコンの所有者のことが多いので、パソコン全体が個人のものであることも多くなります。プライベートビーチのようなものですね。
UNIX系OSでも基本は同じ。しかし、もっと細かくユーザーごとに何ができるかということを決めることが可能です。海水浴場にビニールシートを敷いてこの範囲がパーソナルスペースですよ、というのと似ています。パブリックスペースなので、貴重品の管理とかも自分でしないといけませんよね。そのためUNIX系OSでは細かい管理が必須なのです。
一人二役以上?ユーザーを切り替えて使うUNIX系OS
Windowsでは、ある人が複数のユーザーを使い分けるというケースは少ないかと思います。会社や家族で共用する場合も1人1ユーザーアカウントで、1人が複数のユーザーアカウントを使い分けることはあまりないです。
それがUNIX系OSでは個人のユーザーアカウントとは別に役割に応じたユーザーアカウントを持つことがあります。ある人がいくつかの役割のためのユーザーアカウントを持つ事もあれば、逆にある役割のユーザーアカウントを何人かで共用する事も。そのためWindowsとは違い、同じユーザーアカウントが同時にログインしてコンピュータを使う事もできます。
ユーザーの切り替え?別のユーザーに変わるsu
ユーザー=個人というWIndowsと異なりUNIX系OSではユーザーに役割の意味を含みます。つまり、役割が違う場合にユーザーも切り替えることになります。役割を切り替えるのにいちいちログインし直していたら面倒ですよね。場合によっては役割A→役割B→役割A→役割C→役割Aなどと行ったり来たりする事もあります。
そのため、簡単にユーザーを切り替えるsuという仕組みが必要になったわけです。
\次のページで「なりすまし?別のユーザーの権限で動かすsudo」を解説!/