Help us understand the problem. What is going on with this article?

sudo -s って何?

More than 5 years have passed since last update.

nginx のインストールしようと思ったら sudo -s というのが出てきた。

man sudo によると

      -s [command]
                 The -s (shell) option runs the shell specified by the SHELL
                 environment variable if it is set or the shell as specified
                 in the password database.  If a command is specified, it is
                 passed to the shell for execution via the shell's -c
                 option.  If no command is specified, an interactive shell
                 is 

ということでシェルを指定するらしいんだけど、実際は現在のユーザーがrootに変更される。

何故か?

初めは意味がわからなかったけど、これはつまり今使ってるシェルがbashなら

$ sudo /bin/bash と同じことになるらしい。

例えば $ /bin/bash と入力すると画面の見た目は変わらないけど、実際はbashの入れ子構造になってて $ exit してもコンソールウィンドウは閉じずに”中の”bashだけが終了される。それを sudo, つまり root 権限で行ってるのでユーザーが root に変更されるというわけだ。多分そういうことだと思う。

もっと詳しく知りたい人は下にある「"su -s" と "sudo -s" の違いって何?」をお読みください。
私はよくわからなくなってきたのでそっとタブを閉じました。

参考

linux - What does "sudo -s" actually do? - Super User
http://superuser.com/questions/306923/what-does-sudo-s-actually-do

linux - What's the difference between the commands "su -s" and "sudo -s"? - Super User http://superuser.com/questions/29/whats-the-difference-between-the-commands-su-s-and-sudo-s

ironsand
思いついたアイデアをすぐに形にできる能力を身につけたいのでRailsを頑張って習得中。仕事ください。
http://programming.ironsand.net/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away