私は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スキームにはいくつかの問題があります。
未使用の値はすべて焼却されます。必要だと思うよりも多くを維持する必要があります。
誤って推測すると、将来のバージョンとの互換性の問題が発生します。私が使用した*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のデフォルト値は、現在割り当てられている最も高い数値よりも高い次の使用可能な(固有の)数値です。