sudoコマンド
他のユーザーでコマンドを実行したい時に利用します。とはいっても、ルートユーザー(=スーパーユーザー)で
コマンドを実行するために利用することがほとんどです。
Ubuntuではルートユーザーでのログインは無効化されています。
従って、ルートユーザーでコマンドを実行するときはsudoコマンドを利用します。
ただしルートユーザーでコマンドを実行できるのは、管理者ユーザーだけです。
一般やゲストユーザーは、ルートユーザーでコマンドを実行できません。
sudoは、switch userしてコマンドをdoingの略でしょうか?
ルートユーザーでコマンドを実行する
使い方は以下のとおりです。sudo コマンド
このあとログインしているユーザーのパスワードを入力します。
パスワードの入力時、****が表示されませんがちゃんと入力されていますので、
入力し終えたら「エンター」キー押します。
例:ルートユーザーでlsを実行する
sudo ls -lと入力したら、「エンター」キー押します。そうすると以下のようにユーザーのパスワード入力が求められるので、
パスワードを入力します。
ユーザーとは端末にログインしているユーザーのことです。
以下では「ubuntu」ユーザーです
パスワードが正しければ、以下のようにルートユーザーでlsが実行されます。
見た目では何も変わっていないので分かりづらいですが・・・。
ところで、もう一度同じ作業を繰り返すと今度はパスワードが聞かれません。
連続してsudoで作業する場合は、パスワード入力を省略することができます。
ただし一定の時間が経つと、またパスワード入力が求められるようになります。
一時的にルートユーザーになる
ルートユーザーでログインできないと書いたばかりですが、一時的にルートユーザーになる方法はあります。
ルートユーザーでログインした状況と異なる点はありますが、
ルートユーザー権限で多くの処理をしたい場合は便利な方法です。
以下のコマンドを入力します。
sudo -s
上記と同じようにユーザーのパスワードを入力します。
以下のようにrootになります。
root@になっているのと、$が#に変わっているのが分かります。
元のユーザーに戻るにはexitコマンドを入力します。
ルートユーザーでログインした状況と異なる点
パスがホームディレクトリー(~)になっている状態で、pwdコマンド実行すると以下のようになります。
/home/ubuntu
元のユーザーのホームディレクトリーが表示されます。
本来ルートユーザーのホームディレクトリーは、/rootです。
これはsudoしたユーザーの情報が受け継がれているためです。
ホームディレクトリーを/rootにしたい場合、Hオプションを追加します。
sudo -sH
ルートユーザーでアプリを実行する
コマンドと似たようなものですが、アプリを実行する場合は以下のいずれかの方法で実行します。ルートユーザーでのファイル操作は、システムファイルの削除や移動ができますので、操作ミスに注意して慎重に行いましょう。