Solaris のシステム管理 (基本編)

ユーザー ID 番号

ユーザー名に関連するものとして、ユーザー識別 (UID) 番号があります。ユーザーがログインしようとするシステムは、UID 番号によってユーザー名を識別したり、ファイルとディレクトリの所有者を識別したりします。多数の異なるシステム上で、ある個人用に複数のユーザーアカウントを作成する場合は、常に同じユーザー名とユーザー ID を使用してください。そうすれば、そのユーザーは、所有権の問題を起こすことなく、システム間で簡単にファイルを移動できます。

UID 番号は、2147483647 以下の整数でなければなりません。UID 番号は、通常のユーザーアカウントと特殊なシステムアカウントの両方に必要です。次の表にユーザーアカウントとシステムアカウントに予約されている UID 番号を示します。

表 4–1 予約済みの UID 番号

ユーザー ID 番号 

ユーザー/ログインアカウント  

説明 

0 - 99 

rootdaemonbinsys など

システムアカウント 

100 - 2147483647 

通常のユーザー 

汎用アカウント 

60001 と 65534 

nobody および nobody4

匿名ユーザー 

60002  

noaccess

アクセス権のないユーザー 

0 から 99 までの UID 番号は予約されていますが、これらの番号でユーザーを追加することはできます。ただし、0 から 99 までの番号を通常のユーザーアカウントには使用しないでください。システム上の定義により、root には常に UID 0、daemon には UID 1、擬似ユーザー bin には UID 2 が設定されます。また、UID が passwd ファイルの先頭にくるように、uucp ログインや、whottyttytype などの擬似的なユーザーログインには低い UID を与えるようにしてください。

ユーザー (ログイン) 名と同様に、固有の UID を割り当てる方法を決めてください。企業によっては、従業員に固有の番号を割り当て、管理者がその従業員番号にある番号を加えて固有の UID 番号を作成している場合もあります。

セキュリティ上のリスクを最小限に抑えるために、削除したアカウントの UID を再利用することは避けてください。どうしても UID を再利用する必要がある場合、はじめから作りなおして、新しいユーザーが前のユーザーの属性に影響されないようにしてください。たとえば、前のユーザーがプリンタの拒否リストに含まれていたためプリンタにアクセスできなかった場合、その属性を新しいユーザーに適用することが正しいとは限りません。

大きな数値のユーザー ID とグループ ID の使用

UID とGID の値の制限が符号付き整数の最大値 (つまり、2147483647) に引き上げられました。

ただし、60000 より大きな数値の UID と GID は機能的に完全でなく、多くの Solaris の機能と互換性がありません。したがって、60000 を超える UID と GID を使用することは避けてください。

次の表では、Solaris の以前のリリースとの相互運用性に関する問題について説明します。

表 4–2 60000 より大きな数値の UID または GID の相互運用性に関する問題

項目 

製品またはコマンド 

問題または注意 

NFSTM 互換性

SunOSTM 4.0 NFS ソフトウェアおよびその互換リリース

NFS サーバーとクライアントのコードは、大きな UID と GID を 16 ビットに切り捨てる。この状況では、SunOS 4.0 およびその互換リリースが動作しているシステムが、大きな UID とGID を使用している環境で使用されると、セキュリティの問題が発生する可能性がある。この問題を回避するには、SunOS 4.0 およびその互換リリースが動作しているシステムにパッチをあてる必要がある 

ネームサービスの互換性 

NIS ネームサービスおよびファイルベースのネームサービス 

60000 より大きな数値の UID を持つユーザーは、Solaris 2.5 およびその互換リリースが動作しているシステムでは、ログインしたり、su コマンドを使用したりできるが、そのユーザーの UID と GID は 60001 (nobody) に設定される

 

NIS+ ネームサービス 

60000 より大きな数値の UID を持つユーザーは、Solaris 2.5 およびその互換リリースと NIS+ ネームサービスが動作しているシステムではアクセスが拒否される 

表 4–3 大きな UID または GID の制限の要約

UID または GID の値 

制限 

60003 以上 

  • この分類のユーザーが、Solaris 2.5 およびそれ以前の互換リリースと NIS ネームサービスまたはファイルネームサービスが動作しているシステムにログインすると、nobody の UID および GID を取得する

65535 以上 

  • Solaris 2.5 およびその互換リリースが NFS バージョン 2 ソフトウェアと一緒に動作しているシステムでは、この分類の UID は 16 ビットに切り捨てられるため、セキュリティの問題が発生する可能性がある

  • この分類のユーザーがデフォルトのアーカイブフォーマットで cpio コマンドを使用してファイルをコピーすると、ファイルごとにエラーメッセージが表示される。そして、UID と GID はアーカイブにおいて nobody に設定される。

  • SPARC システム: この分類のユーザーが SunOS 4.0 およびその互換バージョンで動作可能なアプリケーションを実行すると、一部のシステムコールから EOVERFLOW が戻されて、そのユーザーの UID と GID は nobody にマップされる

  • x86 システム: この分類のユーザーが SVR3 互換のアプリケーションを実行すると、一部のシステムコールから EOVERFLOW が返される場合がある

  • x86 システム: この分類のユーザーが、マウントされた System V ファイルシステムでファイルまたはディレクトリを作成しようとした場合、System V ファイルシステムは EOVERFLOW エラーを返す

100000 以上 

  • ps -l コマンドは最大 5 桁の UID を表示する。したがって、99999 より大きな UID または GID を含むときは、出力される列が揃わない

262144 以上 

  • この分類のユーザーが -H odc フォーマットで cpio コマンドまたは pax -x cpio コマンドを使用してファイルをコピーすると、ファイルごとにエラーメッセージが戻される。そして、UID と GID はアーカイブにおいて nobody に設定される

1000000 以上 

  • この分類のユーザーが ar コマンドを使用すると、そのユーザーの UID と GID はアーカイブにおいて nobody に設定される

2097152 以上 

  • この分類のユーザーが tar コマンド、cpio -H ustar コマンド、または pax -x tar コマンドを使用すると、そのユーザーの UID と GID は nobody に設定される