suとsudo

ここではシステムの変更など、システム全体に関わる処理を行う際に利用するコマンドsuとsudoについてお伝えします。

su(Substitute User)

suはユーザーを切り替えるコマンドです。

su - [任意のユーザー名]

として、該当のユーザのパスワードを入力することで、一時的に該当のユーザーとして処理を行うことができます。

特に、ユーザーを指定せずにsuコマンドを利用するとスーパーユーザー(root, 管理者)の権限を利用できるようになります。

su -

とすると、スーパーユーザーのパスワードを聞かれますのでここで入力することでスーパーユーザーの権限を取得します。スーパーユーザーの権限を取得するとプロンプト(コマンド入力箇所のすぐ左の表示)が$から#に切り替わります。

なお、suコマンドの後のハイフンはつけなくてもユーザーの切り替えはできますが、切り替えた後のユーザーのコマンドが利用できないなどの問題があります。詳細は割愛しますが、suコマンドを利用する際には -(ハイフン)をつけるよう心がけましょう。

(注)vagrantの場合

vagrantを利用する場合には、sudoを利用することでrootユーザーのパスワード不要でsuを利用することができます。

sudo su -

として管理者権限でsuを実行してください。

suの終了

suで他のユーザーに成り代わった後、元のユーザーに戻りたい時には

exit

を実行することで、元のユーザーに戻ることができます。

sudo

sudoは Super User(rootのユーザ、管理者)としてコマンドを実行するコマンドです。通常のユーザーが実行できないコマンドでもスーパーユーザーとして実行できる場合があります。設定ファイルの上書きなどを行うためにはこのコマンドを利用する必要があります。

sudo 実行したいコマンド

とすると、ログインユーザーにパスワードが設定されている場合はパスワードを入力する画面になります。パスワードが設定されていない場合は、そのまま実行されます。

su と sudo

suとsudoの違いは

  • suでスーパーユーザーに成り替わるにはスーパーユーザーのパスワードが必要
  • sudoではログインユーザーのパスワードが必要

ということです。

また、sudoはスーパーユーザーがあらかじめ利用を許可したコマンドのみスーパーユーザーとして実行可能です。 visudoコマンドなどを利用することでsudoで実行可能なコマンドを編集可能です。興味のある方は調べてみると良いでしょう。

スーパーユーザーの権限は強大で、システムの変更が自由にできてしまうため、スーパーユーザーのパスワードが外部に漏れることはなんとしても避けたい事態であり、そのためには内部であってもスーパーユーザーのパスワードを知っている人をできる限り制限する必要があります。 そのため、スーパーユーザーのパスワードが必要なsuではなく、スーパーユーザーの権限が必要なコマンドではsudoを利用して運用することが推奨されています。

results matching ""

    No results matching ""