web-dev-qa-db-ja.com

ユーザーアカウントを作成するときに、従属UID / GIDの割り当てに影響を与える方法は?

私の知る限り、下位のUIDとGIDは、連続した範囲を形成するようにアカウントに割り当てられます。

範囲はデフォルトで100000から始まり、おそらくUID/GIDの理論上の最大値まで拡張されます(シェルからこれを照会する方法が見つからない場合でも、/etc/login.defsは、ツールに許可されている値のみをリストします)。

さて、範囲が100000の倍数で始まるとしたら、人間としての私にとってはるかに便利です。つまり、n*100000nは正の整数(n>0)、 の代わりに 100000+n*65536。このようにして、どのファイルがどのホストユーザーによって所有されているかをすぐに確認できます。

現代の十分な方法で従属UID/GIDの割り当てに影響を与える方法はありますかshadow-utilsより人間が読める形式の割り当てを実現するには?

そうでない場合は、単にファイルを上書きしても大丈夫ですか/etc/subuidおよび/etc/subgid必要なものを取得するための適合データを使用しますか?

5
0xC0000022L

はい、これは/etc/login.defsSUB_UID_MIN、およびSUB_UID_MAXパラメーターとそれらのSUB_UID_COUNT対応するパラメーターを使用してSUB_GID_*で構成できます。

これらのパラメータはすべてlogin.defs(5)のマニュアルページで説明されていますが、このドキュメントに記載されているデフォルト値はすべてのプラットフォームに当てはまるわけではありません。

マニュアルページによると、説明したものと同様の動作をデフォルトで使用し、範囲を10000の倍数に設定する必要があります。ただし、これにより、特定のプラットフォームでUIDおよびGIDが65000を超えると影響を受ける一部のシステムアカウントおよびグループで問題が発生します(たとえば、Debianおよび派生物)。したがって、デフォルトの範囲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は実際に手動で編集できますが、範囲が重複しないようにし、プロセス、ファイル、またはその他のオブジェクトの所有権を混乱させないようにしてください。つまり、実際にレンジを使用する前に行うのは安全ですが、その後は特別な注意が必要になります。

1
WhiteWinterWolf

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 詳細については。

0
biocyberman