CodeGym /コース /Docker SELF /現在のアクセス権確認: コマンド `whoami`, `id`

現在のアクセス権確認: コマンド `whoami`, `id`

Docker SELF
レベル 2 , レッスン 3
使用可能

現在のアクセス権確認: コマンド whoami, id

1. システムでの自分は誰? コマンド whoami

Linuxの各ユーザーは特定のアカウントで操作しており、そのアカウントには独自の権限、制限、およびグループ所属があります。この講義では、どのアカウントで操作しているか、どのような権限を持っているか、どのグループに属しているかを確認する方法を学びます。現行ユーザーのパラメータを知ることは、日常業務、セキュリティ、管理、デバッグの際に重要です。

Linuxシステムを操作する際、現在どのアカウントで作業しているのかを知ることは便利です。例えば、誤ってrootユーザーなどの権限の高いアカウントでシステムに入っていると、システムファイルに致命的な変更を加えてしまう可能性があります。こうした状況を避けるために、whoamiコマンドがあります。

構文

whoami

このコマンドの動作は?

whoamiコマンドは、システムで作業している現在のユーザー名を出力します。このコマンドは、「今の自分は誰?」という重要な質問に答えます。

$ whoami
student

この場合、出力されたstudentは、ユーザーがstudentという名前のアカウントでシステムにログインしていることを示しています。もし、権限の高いユーザー(例えばroot)のアカウントで作業していた場合、出力は以下のようになります:

$ whoami
root

なぜこれが重要なのか?

例えば、あるディレクトリのすべてのファイルを削除するコマンド(例: rm -rf /important_directory)を使用している状況を想像してみてください。通常のユーザーアカウントでは、適切な権限がない場合、システムが制限をかけてくれます。しかしrootユーザーであれば、システムはためらいもなくコマンドを実行します。whoamiコマンドは、このような厄介な状況を回避するのに役立ちます。


2. ユーザー情報の詳細確認: コマンド id

自分のユーザー名を知るのは良いけど、システム内での権限や特権について深く理解するにはそれだけじゃ足りないよね。そこで、もっと詳細な情報を得るためにidコマンドが存在する。

構文

id [ユーザー名]

もしユーザー名を指定しない場合、コマンドidは現在のユーザーの情報を表示するよ。他のユーザーの名前を指定すれば、そのアカウントの詳細を確認することも可能。

コマンド id が表示するものは?

  1. UID (User ID) — ユーザーのユニークな識別子。
  2. GID (Group ID) — ユーザーのメイングループのユニークな識別子。
  3. グループリスト — ユーザーが所属している全てのグループ(メイングループを含む)。

$ id
uid=1001(student) gid=1001(student) グループ=1001(student),27(sudo),1002(developers)
  • UID=1001: これが現在のユーザー(student)のユニークな識別子だよ。Linuxシステムでは、ユーザーrootのUIDは常に0だ。
  • GID=1001: これがユーザー(student)のメイングループの識別子。
  • グループ=1001(student), 27(sudo), 1002(developers): ここには、ユーザーが所属している追加のグループが一覧表示されている。例えば、sudoグループに所属していることで、studentは特権ユーザーとしてコマンドを実行できる。

もし他のユーザーに対してコマンドを実行した場合:

$ id user2
uid=1002(user2) gid=1002(user2) グループ=1002(user2),1001(developers)

ユーザーuser2developersグループに所属していることがわかる。


3. 実務でのUIDとGIDの使用

各ユーザーとグループには、独自の数値識別子 (それぞれUIDとGID) が割り当てられています。これらはシステム内で非常に重要な役割を果たし、しばしばユーザー名やグループ名の代わりに使われます。それってどういう意味?

  • 一部のシステムプロセスは効率性のために直接数値識別子を使用します。
  • ファイルやフォルダへのアクセス権は、ユーザー名やグループ名ではなく、それらのUIDとGIDで決まります。
  • 設定ファイルやログ (例えば、/etc/passwd) では、ユーザー名ではなくUIDが記載されていることがあります。

4. groupsでグループを調査する

さらに、現在のユーザーが属しているグループを知るためにgroupsコマンドを使用できます。

構文

groups [ユーザー名]

ユーザー名を省略すると、現在のアカウントのグループ一覧が表示されます。ユーザー名を指定すると、そのユーザーに関連するグループがわかります。

例:


$ groups
student developers sudo

$ groups user2
user2 developers

5. コマンドの使用

さて、学んだことを固定するために少し練習してみよう。

現在のアカウント確認

  1. ターミナルを開く。
  2. 次のコマンドを実行する:

    whoami
    

    自分のユーザー名を確認する。

  3. sudo suコマンドを実行する(パスワードを求められるので入力する)、その後再びwhoamiを実行し、自分がどのアカウントで作業しているかを確認する。

ユーザー情報の確認

  1. 次のコマンドを実行する:

    id
    

    自分のユーザーUID、GID、および所属しているグループを確認する。

  2. 新しいユーザーを追加する(sudoコマンドを使う権限がある場合):

    sudo adduser testuser
    

    その後、次を実行する:

    id testuser
    

グループ所属の分析

  1. 次を実行する:

    groups
    

    自分のユーザーがどのグループに属しているか注意する。

  2. 現在のユーザーを新しいグループに追加する:

    sudo groupadd testgroup
    sudo usermod -aG testgroup $(whoami)
    

    結果を確認する:

    groups
    

6. よくあるミスと注意ポイント

  1. 初心者はwhoamiidをよく混同しちゃう。覚えておいてね:whoamiは現在のユーザー名だけを表示するけど、idはもっと詳しく権限やグループの情報を教えてくれる。

  2. もし管理者権限(sudoへのアクセス)を持っていなければ、ユーザーをグループに追加したり設定を変更したりできない場合があるよ。その場合はシステム管理者に相談してみて。

  3. 存在しないユーザーを指定してidコマンドを実行するとエラーが出るよ:

    $ id nonexistinguser
    id: ‘nonexistinguser’: no such user
    

これで、どのユーザーが現在アクティブで、どんな権限やアクセスを持っているかを確認する方法がわかったよね。whoamiidはシンプルに見えるけど、Linuxでのユーザーとアクセス権限のシステムを理解する上でとても重要な役割を果たすんだ。実際の作業で、問題の診断や権限の確認、ユーザー設定のためにこれらをよく使うことになるよ。

コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION