Solaris で UID がなぜそんなに高いのか?低い数字を使っても大丈夫ですか?

Solaris で UID がなぜそんなに高いのか?低い数字を使っても大丈夫ですか?

私はSolaris 11を使ってみるつもりですが、なぜ新しいユーザーのデフォルトのUIDが65534で始まり、下に行くのと同じくらい高いのかと思います(65533、65532、...)。これには妥当な理由はありますか?もちろん、私はそのような高い数字が「負の数」であり、一般に誰も同じ権限を持たないユーザーに使用されることを知っています。ただし、これらは一般的な権限を持つユーザーです。

はるかに低い値(例えば1000)で始まり、上向きに計算すること(1001、1002、...)は論理的ではありませんか?これをしない妥当な理由はありますか?

より専門的なSolaris管理者は、ユーザーにUIDを割り当てるときに何をしますか?

基本的な番号付け方式の理由を説明する文書/ソースはありますか?

答え1

あなたの環境で予想よりも高いuidを生成するように聞こえるので、そこで動作します。

これSolaris 11.1ユーザーが追加されましたマニュアルページ状態:

UIDのデフォルト値は、現在割り当てられている最も高い数値よりも高い次の使用可能な(固有の)数​​値です。たとえば、UID 100、105、200が割り当てられている場合、次のデフォルトのUID番号は201になります。

答え2

これは推測ですが、これは低い番号の「標準」ユーザーIDとローカルUIDとの競合を回避する方法のように聞こえます。ローカルUIDは最大値からカウントダウンし、システムUIDは最小値からカウントダウンし、衝突の可能性はほぼゼロです。

(私は単一のコンピュータで64K以上の一般ユーザーを持つシステムで作業したことがありますが、これはLDAP以前の時代でした。)

前述の一般的な1-1000スキームにはいくつかの問題があります。

  1. 未使用の値はすべて焼却されます。必要だと思うよりも多くを維持する必要があります。

  2. 誤って推測すると、将来のバージョンとの互換性の問題が発生します。私が使用した*ixesのしきい値は、あるバージョンでは500で、次のバージョンでは1000でした。これは間違いなく、誰かが標準のUIDが不足しているか危険にさらされていると思ったからです。

答え3

私は65534がとんでもない数字だとは言わないでしょう。それほど否定的ではなく(標準では、uid_tが16ビットか32ビットか、符号付きか署名されていないかを言わない)、Solarisが許可するものと比較してかなり低いです。おそらく、useraddが2147483647(Solarisでサポートされている最高のユーザーID番号)を選択した場合にのみ反対します。あなたの場合、65534を選択するのは混乱しています。これは、従来のNFS匿名ユーザーとして設定する必要があるためです。

とにかく、私はあなたが描いたものを再現しません:

# cat /etc/release
                             Oracle Solaris 11.1 X86
  Copyright (c) 1983, 2012, Oracle and/or its affiliates.  All rights reserved.
                           Assembled 19 September 2012
# tail /etc/passwd
webservd:x:80:80:WebServer Reserved UID:/:
postgres:x:90:90:PostgreSQL Reserved UID:/:/usr/bin/pfksh
svctag:x:95:12:Service Tag UID:/:
unknown:x:96:96:Unknown Remote UID:/:
nobody:x:60001:60001:NFS Anonymous Access User:/:
noaccess:x:60002:60002:No Access User:/:
nobody4:x:65534:65534:SunOS 4.x NFS Anonymous Access User:/:
aiuser:x:61:61:AI User:/:
pkg5srv:x:97:97:pkg(5) server UID:/:
jlliagre:x:100:10:jlliagre:/home/jlliagre:/usr/bin/ksh
# 
# useradd foo
# tail -2 /etc/passwd
jlliagre:x:100:10:jlliagre:/home/jlliagre:/usr/bin/ksh
foo:x:101:10::/export/home/foo:/usr/bin/bash

これは以下に関連しています。ユーザーが追加したマニュアルページそれは以下を規定します:UIDのデフォルト値は、現在割り当てられている最も高い数値よりも高い次の使用可能な(固有の)数​​値です。

関連情報