IT・プログラミング雑学

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

なりすまし?別のユーザーの権限で動かす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が生まれたわけ」を解説!/

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