私が知る限り、子UIDとGIDは、連続範囲を形成する方法でアカウントに割り当てられます。
デフォルトでは、スコープは100000で始まり、UID / GIDの理論上の最大値まで拡張できます(シェルがこの値を照会する方法を見つけることができませんでしたが、/etc/login.defs
ツールで許可されている値のみが一覧表示されます)。 。
n*100000
n
これで、範囲が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_MIN
SUB_UID_MAX
SUB_UID_COUNT
SUB_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
手動で編集できますが、範囲が重ならないようにして、プロセス、ファイル、またはその他のオブジェクトの所有権を妨げないようにしてください。つまり、実際にシリーズを使用する前にそのようにするのは安全ですが、後には慎重に注意する必要があります。