このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Linuxコマンドの基本:ユーザーを切り替える:suコマンド

ユーザーを切り替える:suコマンド

 Linuxシステムでは、システム管理や特定の作業を行うために、一時的に別のユーザーに切り替える必要がある場合があります。その際に使用するのが su(switch user)コマンド です。ここでは、su コマンドを使用してユーザーを切り替える方法と、その際の注意点について詳しく解説します。

スーパーユーザー

 Linuxには、スーパーユーザー と呼ばれる管理者権限を持つ特別なユーザーが存在します。スーパーユーザーはユーザー名が root であることから、rootユーザー とも呼ばれます。一方、通常の作業を行うユーザー(例:user01)は 一般ユーザー と呼ばれます。

スーパーユーザーの特徴

  • 強力な権限:システムの設定ファイルの変更や、新しいアプリケーションのインストールなど、あらゆる操作が可能です。
  • 他ユーザーのファイル操作:他のユーザーが作成したファイルでも、自由に読み込み、書き込み、削除ができます。

注意点

  • リスク:強い権限を持つため、誤った操作でシステムに重大な影響を与える可能性があります。例えば、重要なシステムファイルを誤って削除してしまうと、Linuxシステム自体が破壊される恐れがあります。
  • ベストプラクティス:通常は一般ユーザーでログインし、必要なときだけスーパーユーザーに切り替えて作業を行うことが推奨されます。

suコマンド:ユーザーを変更する

 su コマンドは、現在のセッションで一時的に別のユーザーに切り替えるためのコマンドです。ログアウトせずにユーザーを変更でき、任意のユーザーになることが可能です。特に、スーパーユーザー(root ユーザー)に切り替える際によく使用されます。

suコマンドの基本的な使い方

【書式】
su [オプション] [ユーザー名]

  • デフォルト動作:ユーザー名を指定しない場合、root ユーザーに切り替わります。

スーパーユーザーに切り替える流れ

[一般ユーザーでログイン] --> [suコマンドを実行] --> [スーパーユーザーに切り替え]
--> [スーパーユーザーで作業] --> [exitコマンドを実行] --> [般ユーザーに戻る]

実際にスーパーユーザーになる手順

1.suコマンドを実行

user01@ubuntu:~$ su
パスワード:
  • パスワードの入力root ユーザーのパスワードを求められます。

2.パスワードを入力

注意:Ubuntuではデフォルトで root ユーザーのパスワードが設定されていないため、このままでは認証エラーになります。

su: 認証失敗

Ubuntuでのrootパスワード設定

 Ubuntuでは、セキュリティ上の理由から root ユーザーのパスワードが設定されていません。そのため、su コマンドを使用する前に root ユーザーのパスワードを設定する必要があります。

1.rootパスワードの設定

user01@ubuntu:~$ sudo passwd root
[sudo] user01 のパスワード:
新しいパスワード:
新しいパスワードを再入力してください:
passwd: パスワードは正しく更新されました

注意:単純なパスワードはセキュリティ上危険ですので、推測されにくい強固なパスワードを設定してください。

2.再度suコマンドを実行

user01@ubuntu:~$ su
パスワード:
root@ubuntu:/home/user01#

プロンプトの変化$ から # に変わり、スーパーユーザーに切り替わったことが確認できます。

スーパーユーザーから一般ユーザーに戻る

作業が終わったら、exit コマンドで元の一般ユーザーに戻ります。

root@ubuntu:/home/user01# exit
exit
user01@ubuntu:~$

suコマンドのオプション:環境の引き継ぎ

suとsu - の違い

  • su コマンド:現在の環境(環境変数やカレントディレクトリ)を維持したままユーザーを切り替えます。
  • su - コマンド:新しいユーザーの環境に初期化してからユーザーを切り替えます。

suコマンドの例

user01@ubuntu:~$ su
パスワード:
root@ubuntu:/home/user01#
  • カレントディレクトリ/home/user01 のままです。

su - コマンドの例

user01@ubuntu:~$ su -
パスワード:
root@ubuntu:~# pwd
/root
  • カレントディレクトリ/root に変わります。

なぜsu - を使うべきか

  • 理由:一般ユーザーの環境変数や設定を引き継いだままスーパーユーザーになると、アプリケーションが正しく動作しない場合があります。
  • ベストプラクティス:通常は su - を使用して、環境を初期化してからユーザーを切り替えることを推奨します。

まとめ

  • スーパーユーザー(rootユーザー):システム全体を管理する強力な権限を持つユーザーです。
    注意点:誤操作によるシステム破壊のリスクがあるため、利用は必要最小限にとどめましょう。
  • suコマンド:一時的に別のユーザーに切り替えるコマンドです。
    基本的な使い方su [ユーザー名]
    スーパーユーザーになるsu または su -(推奨)
    環境の初期化su - を使用することで、新しいユーザーの環境に切り替えられます。
  • Ubuntuでの注意点
    デフォルトでは root ユーザーのパスワードが設定されていないため、sudo passwd root でパスワードを設定する必要があります。
  • 安全な操作:普段は一般ユーザーで作業し、必要なときだけスーパーユーザーに切り替えるようにしましょう。

 適切に su コマンドを使用し、スーパーユーザーの重要性とリスクを理解することで、Linuxシステムを安全かつ効果的に管理できます。