ユーザーアカウントを作成するときの子UID / GID割り当てはどのような影響を受けますか?

ユーザーアカウントを作成するときの子UID / GID割り当てはどのような影響を受けますか?

私が知る限り、子UIDとGIDは、連続範囲を形成する方法でアカウントに割り当てられます。

デフォルトでは、スコープは100000で始まり、UID / GIDの理論上の最大値まで拡張できます(シェルがこの値を照会する方法を見つけることができませんでしたが、/etc/login.defsツールで許可されている値のみが一覧表示されます)。 。

n*100000nこれで、範囲が100000の倍数、つまり正の整数(n>0)で始まると、はるかに簡単になります100000+n*65536。これにより、どのファイルがどのホストユーザーに属しているかをすぐに確認できます。

shadow-utils人がより読みやすい割り当てを達成するためにどのような方法で依存UID / GID割り当てに影響を与える可能性があるのですか?

/etc/subuidそれ以外の場合は、単にファイルを上書きし、/etc/subgid要件に合ったデータを使用して必要なものを取得できますか?

答え1

usermodコマンドを使用して、SUBUIDおよびSUBGIDの特定のFIRSTおよびLAST値を設定できます。たとえば、

user=<insertusername>
uid=$(id -u $user)
sudo usermod -v $((uid+200000))-$((uid+200000+65535)) -w $((uid+200000))-$((uid+200000+65535)) $user

これにより、/etc/subuidおよび/etc/subgidに必要な値を含むエントリが追加されます。詳細についてはを参照してくださいman usermod

答え2

はい、、およびパラメータとそのエントリを/etc/login.defs使用して設定できます。SUB_UID_MINSUB_UID_MAXSUB_UID_COUNTSUB_GID_*

これらのパラメータはすべて(5)のマニュアルページに記載されていますが、login.defsこの資料に記載されているデフォルト値はすべてのプラットフォームには適用されません。

マニュアルページによると、デフォルト値は説明したものと同様の動作を使用し、範囲は10000の倍数に設定する必要があります。ただし、一部のプラットフォーム(Debianやその派生など)では、65000を超えるUIDとGIDに影響を与える特定のシステムアカウントとグループに問題が発生する可能性があります。したがって、デフォルトの範囲である65536が適用され、副作用もあります。

したがって、より多くの人が読める範囲を取得するには、ファイル内の次の値を明示的に設定できます/etc/login.defs

SUB_UID_MIN   100000
SUB_UID_MAX   600100000
SUB_UID_COUNT 100000
SUB_GID_MIN   100000
SUB_GID_MAX   600100000
SUB_GID_COUNT 100000

ちなみに、ファイルは/etc/subuid実際に/etc/subgid手動で編集できますが、範囲が重ならないようにして、プロセス、ファイル、またはその他のオブジェクトの所有権を妨げないようにしてください。つまり、実際にシリーズを使用する前にそのようにするのは安全ですが、後には慎重に注意する必要があります。

関連情報