アクセス制御機構は、どのクライアントまたはアプリケーションが X11 サーバにアクセスできるかを制御します。アクセスが許可されたクライアントだけがサーバに接続できます。アクセスが許可されていないその他のクライアントはすべて次のエラーメッセージを表示して終了します。
Xlib: connection to hostname refused by server Xlib: Client is not authorized to connect to server |
接続の結果は、次のようにサーバコンソールに表示されます。
AUDIT: <月日 時刻 年>: X: client 6 rejected from IP 129.144.152.193 port 3485 Auth name: MIT-MAGIC-COOKIE-1 |
アクセス制御機構には、ユーザベースとホストベースの 2 種類があります。(つまり、前者は特定のユーザのアカウントにアクセスを許可し、後者は特定のホスト、すなわちマシンにアクセスを許可します。) openwin とともにに -noauth オプションを指定しないと、ユーザベースとホストベースのアクセス制御機構が両方ともアクティブ状態となります。詳細は、この付録で後述の 「サーバへのアクセスを制御する」を参照してください。
ユーザベースすなわち認証ベースのアクセス制御機構では、あるユーザに対し、任意のホストマシン上の特定のユーザに対するアクセスが明示的に許可されます。ユーザのクライアントは、サーバに認証データを渡します。そのデータがサーバの認証データと一致すれば、そのホストのすべてのユーザはサーバのアクセスを許可されます。
ホストベースのアクセス制御機構には、汎用性があります。この機構では、特定のホストへのアクセスを許可し、そのホスト上のすべてのユーザがサーバに接続できるようにします。これは、ゆるやかなアクセス制御方式です。ホストにサーバに対するアクセス権が与えられていれば、そのホスト上のすべてのユーザがサーバに接続できます。
Solaris 環境では、ホストベースの制御機構は、下位互換性を目的として使用されます。X11R4 または OpenWindows バージョン 2 より前のバージョンの Xlib や libcps を使ってリンクされたアプリケーションでは、新しいユーザベースのアクセス制御機構に対応できません。これらのアプリケーションがサーバに接続できるようにするためには、ホストベース機構に切り換えるか、あるいは新しいバージョンの Xlib と libcps にリンクし直さなければなりません。
旧バージョンの Xlib や libcps とリンクしたクライアントは、できれば新バージョンのライブラリを使ってリンクし直してください。これにより、新しいユーザベースのアクセス制御機構の下でサーバに接続できるようになります。