LinuxなどのUNIX系OSを使って作業しているとsudoなんとかって入力することあるよな。何かのおまじないのようでなぜ必要かの説明は省略されていたりするな。それと似ているがsuというのもあるらしいのです。このsudoとかsuって何かわかるか?ユーザーとか管理者権限が関係しているらしいのです。ユーザーの考え方からセキュリティまでUNIX歴も長いプログラマでもあるライターのwoinaryと一緒に解説していきます。

ライター/woinary

某社で社内向け業務システムの開発、運用を30年近くやっていたシステム屋さん。WindowsだけでなくUNIXやLinux歴も長い。現在はフリーランス。ガジェットやゲーム、ラノベが大好きなおっさんです。

ユーザーの切り替え?suとsudoの違い

image by iStockphoto

普段、パソコンを使う場合、ユーザー名とパスワードでログインして使うことが多いですよね。でも、パソコンは基本的に個人で使うものなので複数のユーザーを切り替えて使うことはまれです。

しかしLinuxなどのUNIX系OSではユーザーを切り替えて使うことがあります。その時に使うのがsuとsudoです。2つの違いはざっくり言うと切り替えるsuと、なりすますsudo。これだけでは分かりにくいので、詳しく説明していきます。

su:別ユーザーへの切り替え

ユーザーを切り替えるとはどういうことでしょうか。ログインすると自分が前回使った時のデスクトップが表示され、ドキュメントフォルダも以前のままですよね。このようにパソコン内に用意されている個人ごとの情報をユーザー情報やアカウント情報、単にアカウントと呼びます。この個人ごとのアカウントを切り替えることを「ユーザを切り替える」と呼ぶわけです。

suはユーザーを切り替えます。「substitute user」を略したものです。substituteは代用や代理と言う意味。つまり、ユーザー代理です。ユーザーの切り替えで「switch user」の略と思っていましたが、そうではないので気をつけてください。

\次のページで「sudo:別ユーザーになりすまして実行」を解説!/

sudo:別ユーザーになりすまして実行

sudoは「substitute user do」の略です。後ろにdoが増えましたね。doは「する」、つまり何かのコマンドを実行することです。誰か別のユーザの代理でコマンドを1個実行するのがsudoになります。

この説明だけだと、なぜsuやsudoをわざわざ使う必要があるのかと思いますよね。ログインし直してしまえば同じことができます。しかし、個人で使う前提のパソコンのOSであるWindowsと、多くのユーザーで利用する前提のUNIX系OSでは考え方が違うのです。ユーザーの考え方やセキュリティも含めて、suやsudoの違いやなぜ必要かを説明していきます。

コンピュータは大勢で使う?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」を解説!/

なりすまし?別のユーザーの権限で動かすsudo

役割を行ったり来たりすると書きましたが、それは1つのコマンドを実行するだけという事もあります。そのため、「ユーザーを切り替える→コマンドを実行する→ユーザーを切り替える(戻す)」という一連の動作を1コマンドでできたら便利ですよね。それがsudoです。

suとsudoの相違点をまとめましたので参考にしてください。

su
・切り替えるユーザーのユーザー名とパスワードが必要
 ・誰かにパスワードが漏れたらなりすましでなんでもできる
・切り替えたことは記録に残るが、その後は記録に残らない
 ・誰かが漏れたパスワードを使って何かしても記録に残らない

sudo
・切り替えるユーザーのユーザー名は必要だがパスワードは不要(自分のパスワードが必要)
・sudoを使うにはコンピュータの管理者の許可が必要
 ・仮にパスワードが漏れてもsudoは使えない
・sudoを使ったことはすべて記録される

セキュリティ対策?管理者権限とsu/sudo

image by iStockphoto

コンピュータには管理者が必要です。個人で使うパソコンの場合、最初のユーザーが管理者となっているので特に意識しないでも使えます。アプリのインストールや設定変更も自由にできますよね。UNIX系OSでもユーザーは自分の領域のファイルの読み書きやコマンドの実行、設定変更は可能です。しかし、多くの人が使うので全体で使うアプリのインストールや全体の設定変更は管理者でないとできない様になっています。

その時に必要になるのがsuやsudoなのです。ここでは管理者権限とsu/sudoや、セキュリティ対策について解説します。

一ユーザーは何もできない?rootとは

UNIX系OSで管理者のユーザー名は「root(ルート)」となっています。標準的に用意されているだけなので管理者ユーザーの追加も可能です。また、セキュリティのためにあえて無効にして別のユーザー名を使う事もあります。ただ、管理者ユーザーのことは実際のユーザー名と関係なく、通称でrootと呼ぶのが通例です。WindowsではAdministrator(アドミニストレーター、アドミン)と呼ばれます。OSによっても違うわけです。

Windowsでは利便性のために最初のユーザーが自動的に管理者になっています。一方、多くの人が同時に使うUNIX系OSでは全体に影響があることができるのはrootだけ。Windowsのようにユーザーを管理者にすることも可能です。しかし通常は避けるべきとされています。間違って何かすると困ったことになるので当然ですね。

直接ログインできない?セキリュティとsu

パソコンを使う時には自分のユーザー名とパスワードでログインしますよね。UNIX系OSでも同じ。しかし、UNIX系OSではrootではログインできないようになっていることも多いです。それはセキュリティ対策のため。

rootは全体に影響する変更ができる管理者なので使える人は制限すべきですよね。そのため、rootではログインできない様にすることが多いです。まずは自分のユーザー名とパスワードでそのコンピュータにログインして正当な利用者であることを証明します。それから、suでrootに切り替えるという二段構えにすることが多いです。パスワードは普通分かりにくいものにしますが、もしかすると破られてしまうかもしれません。そのため、二段構えにするわけです。

\次のページで「すべてを記録?sudoが生まれたわけ」を解説!/

すべてを記録?sudoが生まれたわけ

suで管理者の役割に切り替えることができます。しかし、suを使うにはrootのパスワードが必要。許可したい人だけにrootのパスワードを伝えても、その人がどこかにメモして誰かに見られたり、必要ない人に教えてしまうかもしれません。それでは意味がないですよね。

そこで生まれたのがsudoです。sudoでは管理者が登録した人であれば、その人のパスワードでrootの代理でコマンド実行できます。rootのパスワードを教える必要がないですし、許可していない人が使うことができないので安全です。また、sudoでは実行したコマンドが記録されているので、後で誰が何をしたのか分かります。UNIX系OSで何かの作業の際にrootで作業する必要が出てきます。そのような場合、セキュリティ面や作業ミスで全体に予期しない影響を与えないためにもsudoを使うことが推奨されているのです。

suは使わず、sudoを使おう

個人で使うパソコンは何か間違っても影響は自分自身だけということが多いです。一方、UNIX系OSは多くの人が同時に使う前提なので、管理者が何かミスすると大きな影響が出てしまいます。そのため、管理者であるrootでログインすることを制限している事も多いです。一方、個々のユーザーを管理者にしないため、何か作業をするのに管理者の役割を代行する必要も出てきます。

そのために必要なのがsuやsudosuは一時的にrootなどの別のユーザーになるもの。しかし、そのためにパスワードが必要。それでは安全とは言えませんよね。そのために登場したのがsudoです。sudoはあらかじめ設定した人だけが代行できます。記録も残るので安心ですね。そのため、sudoを利用するのが推奨されているのです。

" /> suとsudoの違いとは?ユーザーやrootって何?プログラマーがわかりやすく解説 – ページ 2 – Study-Z
IT・プログラミング雑学

suとsudoの違いとは?ユーザーやrootって何?プログラマーがわかりやすく解説

sudo:別ユーザーになりすまして実行

sudoは「substitute user do」の略です。後ろにdoが増えましたね。doは「する」、つまり何かのコマンドを実行することです。誰か別のユーザの代理でコマンドを1個実行するのがsudoになります。

この説明だけだと、なぜsuやsudoをわざわざ使う必要があるのかと思いますよね。ログインし直してしまえば同じことができます。しかし、個人で使う前提のパソコンのOSであるWindowsと、多くのユーザーで利用する前提のUNIX系OSでは考え方が違うのです。ユーザーの考え方やセキュリティも含めて、suやsudoの違いやなぜ必要かを説明していきます。

コンピュータは大勢で使う?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」を解説!/

次のページを読む
1 2 3 4
Share: