ハードドライブのマウント後にマウントポイントのユーザー、グループ、権限が変更されました

ハードドライブのマウント後にマウントポイントのユーザー、グループ、権限が変更されました

私はUbuntuボックスにハードドライブをマウントしています/media/newhdd前にマウントには次の権限があります:

drwxr-xr-x  2 root team 4096 Jan 19 17:26 newhdd
drwxr-x---+ 2 root root 4096 May 14  2020 oem

私はすでにグループをteamグループに変更していました。しかし、マウントすると、次のようになります。

drwx------  4 29999 29999 4096 Jan 19 19:48 newhdd
drwxr-x---+ 2 root  root  4096 May 14  2020 oem

これらの数字は何を意味していますか? また、権限が変更されたのはなぜですか?

情報: でマウントしていますsudo mount /dev/sda /media/newhdd

答え1

いいえ、権限は変更されません。ローカル UID/GID の割り当てが、権限が設定されたシステムの割り当てと一致しないため、システムでの表示が異なっているだけです。ただし、ディスク上の権限は正しいままです。権限が設定されたシステムにストレージを移動した場合、意図したとおりに表示されます。


各システムには独自の ID セットがあります。通常、ID は必要に応じて、必要なときに割り当てられます。たとえば、グループを作成すると、システムはそのグループに GID を割り当て、割り当てを に保存します/etc/group(既定)。同様に、ユーザーを作成すると、システムはそのグループに UID を割り当て、割り当てを に保存します/etc/passwd

システム アカウントはそれほど違いはありません。ディストリビューションによって違いがあります。たとえば、一部のディストリビューションでは、特定のアプリケーションに対して UID と GID を「静的に割り当てる」場合があります。これらの割り当ては、システムのインストール時には保存されませんが、独自のアカウントを必要とするソフトウェアをインストールすると、インストーラーは定義済みの UID/GID を使用してアカウントを作成します。他のディストリビューション (Gentoo) では、それすら行われません。UID と GID は、必要に応じて、最初のソフトウェアのインストール時に新たに割り当てられます。

プールを定義する設定がいくつかあり、そこからこれらの UID と GID が割り当てられます。 の行が/etc/adduser.confその 1 つですが、他にもあります。たとえば、私のシステムには /etc/adduser.conf はありませんが、 はあります/etc/default/useradd。アカウント作成時に具体的な ID を指定することでこれを上書きできます。次のようにすると、useradd -u 1100 -G users newuser構成された範囲に関係なく、UID 1100 のユーザーが作成されます。

したがって、どの名前がどの UID/GID に対応するかは、システムごとにほぼ常に異なります。これは、システムの履歴 (ディストリビューションの種類、ソフトウェアのインストール順序、ユーザーの作成順序など) に大きく依存します。「あらゆる」Linux システムについて言える唯一の真実は、ユーザーにはroot常に UID があり0、グループにはroot常に GID があるということです0

たとえば、同一の Ubuntu を 2 つインストールし、1 つのユーザーで最初に「alice」を作成すると、そのユーザーには UID 1000 が割り当てられ、次に「bob」が作成されると、おそらく UID 1001 が割り当てられます。別のシステムでは、最初に「bob」を作成し、そのユーザーに 1000 が割り当てられ、次に「alice」を作成すると、ユーザーに 1001 が割り当てられます。

一方、ファイル システムにはユーザー名やグループ名は保存されません。保存されるのは、番号、UID、GID です。前の例を拡張すると、最初のシステムでファイルを作成し、その所有者を「alice」にすると、彼女の UID 1000 がファイル システムのメタデータに書き込まれます。ストレージ メディアを 2 台目のマシンに移動してそのファイルにアクセスすると、ファイルのメタデータに UID 1000 があり、2 台目のマシンではその UID が「bob」に対応しているため、所有者として「bob」が表示されます。

UID が割り当てられていない場合はどうなるでしょうか? 心配しないでください。OS 自体は名前を気にせず、ID のみを使用し、名前はユーザー空間によってのみ変換されます。ユーザー空間ツールは通常、およびに割り当てられていない場合に「デジタル」ID を表示し/etc/passwdます/etc/group

Windows システムもそれほど違いはありません。RID と呼ばれる ID の単一の「番号ドメイン」があり、ユーザーとグループの両方のセキュリティ識別子はそこから取得されます (Linux は UID と GID を別々にカウントします)。最初のローカル ユーザーの RID は 500 であることがよくあります。RID と「番号ドメイン」を組み合わせると SID が生成され、ファイル システム メタデータに書き込まれます。割り当ては SAM データベースに保存されます。


これは非常に重要な問題につながります。ストレージを転送可能にするために、コンピューターのセットを集中管理するにはどうすればよいのでしょうか。これにはいくつかの解決策があります。最もよく使用されているものの 1 つは、割り当てを管理する中央システムを用意し、参加しているすべてのシステムがそのシステムから割り当てを照会することです。ローカル システムでは、割り当てられた ID は多くの場合RID master、何らかの「ID ドメイン」にマップされます。たとえば、MS Active Directory には常にアクティブな FSMO ロールを持つドメイン コントローラーがあります。これはまさにドメイン内の割り当てを管理するシステムです。(さらに考えてみると、なぜこの役割は、FSMO (「シングル マスター操作」役割) になりました。) したがって、ドメイン所有のファイルのアクセス許可は、メディアがコンピューター間で移動した場合でも、ドメイン内のすべてのシステムで正しくレンダリングされます。ただし、メディアがドメイン外に移動されると、説明したマッピングの破損の影響がすべて発生します。Linux システムでも中央割り当てを使用できます。NIS があり、MS AD コントローラーでも、AD ドメインに参加している Linux システムに UID/GID を割り当てることができます。

答え2

これは動的に生成される UID のようで、次のような ID の上限が選択されます/etc/adduser.conf

# FIRST_[GU]ID to LAST_[GU]ID inclusive is the range of UIDs of dynamically
# allocated user accounts/groups.
FIRST_UID=1000
LAST_UID=29999

関連情報