7. プロセスパーミッション

少しプロセスのパーミッションについて話しましょう。以前、SUID パーミッションビットが有効な状態でpasswdコマンドを実行すると、root としてプログラムが実行されると説明したのを覚えていますか?それは本当です。しかし、一時的に root になるからといって、他のユーザーのパスワードを変更できるという意味でしょうか?いいえ、幸いなことにできません!

これは、Linux が実装している多くの UID によるものです。すべてのプロセスには 3 つの UID が関連付けられています。

プロセスを起動すると、それを実行したユーザーまたはグループと同じパーミッションで実行されます。これは実効ユーザーIDとして知られています。この UID は、プロセスにアクセス権を付与するために使用されます。したがって、当然、Bob がtouchコマンドを実行した場合、プロセスは彼として実行され、彼が作成したファイルは彼の所有権の下に置かれます。

実ユーザーIDと呼ばれる別の UID があります。これは、プロセスを起動したユーザーの ID です。これらは、プロセスを起動したユーザーが誰であるかを追跡するために使用されます。

最後の UID は保存ユーザーIDです。これにより、プロセスは実効 UID と実 UID の間で、またその逆で切り替えることができます。これは、プロセスを常に昇格された権限で実行したくないため、特定の時間に特別な権限を使用するのが良い習慣であるため、便利です。

それでは、passwdコマンドをもう一度見て、これらすべてをまとめてみましょう。

passwdコマンドを実行すると、実効 UID はあなたのユーザーID になります。ここでは 500 としましょう。しかし、待ってください、passwdコマンドには SUID パーミッションが有効になっていることを思い出してください。したがって、それを実行すると、実効 UID は 0 になります(0 は root の UID です)。これで、このプログラムは root としてファイルにアクセスできます。

少し力を得て、Sally のパスワードを変更したいとしましょう。Sally の UID は 600 です。残念ながら、それはできません。幸いなことに、プロセスにはあなたの実 UID も含まれており、この場合は 500 です。あなたの UID が 500 であることを知っているため、UID 600 のパスワードを変更することはできません。(もちろん、あなたがマシンのスーパーユーザーであり、すべてを制御および変更できる場合は、これは常に回避されます)。

passwdを実行したため、あなたの実 UID を使用してプロセスを開始し、ファイルの所有者(実効 UID)の UID を保存するため、2 つの間で切り替えることができます。必要ない場合は、root アクセスですべてのファイルを変更する必要はありません。

ほとんどの場合、実 UID と実効 UID は同じですが、passwdコマンドのような場合は変更されます。

ログインして学習進捗を保存

サインイン

演習

練習は完璧をもたらします!ユーザーID とプロセスパーミッションを理解することは、Linux のセキュリティと管理にとって非常に重要です。UID がどのように機能するかの基礎を形成するユーザーとグループの管理の理解を深めるための実践的なラボをいくつか紹介します。

  1. Linux User Group and File Permissions - ユーザーの作成と管理、グループメンバーシップの探索、ファイルパーミッションの理解、ファイル所有権の操作など、Linux のユーザーとグループ管理の重要な概念を学びます。このラボは、マルチユーザーLinux 環境を保護するための実践的な経験を提供します。
  2. Add New User and Group - この課題では、新しいユーザーアカウントの作成、カスタムグループの設定、グループメンバーシップの管理を通じて、サーバー環境に新しいチームメンバーを追加するシミュレーションを行います。これは、システム管理者や DevOps プロフェッショナルにとって不可欠な、Linux のユーザーとグループ管理のスキルをテストします。

これらのラボは、実際のシナリオでユーザーとグループ管理の概念を適用するのに役立ち、UID が Linux でアクセスとパーミッションをどのように制御するかを理解するための強力な基盤を構築します。

クイズ

アクセス権を付与するかどうかを決定する UID は何ですか?