スポンサーリンク

【Ubuntu】端末プロンプト $と#の違い

あれ?あのコマンドオプション何だっけ?といった時など、ネットで検索することがよくあります。
大抵見つかるのですが、記載方法について、これわからない人がいるのでは?といった感想を持ったので、これを書いてます。
具体的には↓のような感じです。

端末

root@user:/home/user# adduser test

$ でなく # になっているのがわかるでしょうか?
たまにさりげなく # で記載してあるHPがあるので、注意深く見る必要があります。
尚、adduserはユーザを追加するコマンド(上記ではユーザ名 test で追加)ですが、
$ で行うと、↓のようにエラーになります。

端末

user@user:/$ adduser test
adduser: rootだけがシステムにユーザーまたはグループを追加できます。

ではどうすれば良いの?を書いていこうと思います。

スポンサーリンク

端末とは?

端末とは、Ubuntuに最初からインストール(プレインストール)されているアプリのことです。
以下の方法で起動することができます。

左下のBCG注射の後みたいな、9つの点をクリックしてください。

次に入力欄にtermと入力します。
t → te → ter → termと入力するごとに検索が行われ、端末アプリが表示されるようになります。

端末をクリックすると、以下のような端末アプリが起動されます。

よく使うので、画面左のお気に入りバーに入れておくことをおすすめします。

プロンプトとは?

起動した端末アプリを見ると、

端末

user@user:~$

といった1行があることに気付きましたか?
これがプロンプトです。
※「user」文字は、インストール時に入力したユーザ名になりますので、適時読み替えてください。

プロンプトの$と#の違い

それでは本題の $ と # の違いですが…ずばり「実行権限」の違いです。

$ はユーザ権限、# は管理者権限、という意味です。
Ubuntu(だけではないですが)では、コマンド自体やコマンドを実行するディレクトリによっては、管理者権限が必要となります。

冒頭の adduserコマンドは、ユーザ権限では実行できず、管理者権限で実行する類のコマンドだったのです。
ではどうやって管理者権限に変更するの?ということになるのですが…簡単です。suコマンドを使います。
ただし、suコマンドを使うためには(これも簡単ですが)設定が必要です。

この設定については↓の [rootパスワード設定] を参照してください。

それと、suコマンドを使う以外にもうひとつ方法があります。

sudoコマンドです。似ていますが、間違えないように気をつけてください。
suコマンドは exitコマンドを入力するまで管理者権限になったままになりますが、sudoコマンドはそのコマンド実行時のみ管理者権限になります。

以下のように使います。

端末

user@user:~$ sudo adduser test

この場合、adduserコマンドを実行している間だけ管理者権限になります。

では suコマンドとsudoコマンドどちらを使った方が良いの?ということになるのですが、
セキュリティのため、なるべくsudoコマンドを使いましょう。

suコマンドはexitコマンドを入力するまで管理者権限になってしまいます。もしexitコマンドを入力し忘れて、誰かに操作された場合、管理者権限で実行されてしまいます(管理者権限は何でもできてしまいます)。
sudoコマンドは、コマンドを実行している間のみ管理者権限になるので、誰かに操作されてもユーザ権限での操作で済みます。

なので、なるべく sudoコマンドを使うようにしてください。(大事なことなので2回言いました)

さいごに

私自身、ネットでコマンドを調べることがあり、見つけた!と思い同じように入力したのに、何故かエラーで実行できないことがありました。

参考にしたHPでは、さりげなく管理者権限での実行を意味する # が使われていましたのですが、そのことを知るまで随分時間を費やしてしまいました。まぁ、自分の理解不足と言われればその通りなのですが…。

私と同じような人が少しでも少なくなりますように…。(そんな大袈裟な話でもないのですが)

コメント