クライアント コンピューターのユーザーは、chmod ユーティリティを使用して、setuid (ユーザー識別子の実行時設定) ビット、setgid (グループ識別子の実行時設定) ビット、および sticky ファイル モード ビットを設定できます。これらは、NTFS ファイル システムのパーティションに格納され NFS サーバーを介して共有される、ファイルやディレクトリに設定できます。その後、ファイルやディレクトリが UNIX ベース クライアントによってアクセスされると、これらのビットは通常どおりに解釈されます。たとえば、setuid ビットが設定されている実行可能ファイルは、そのファイルを実行するユーザーのユーザー ID (UID) ではなく、ファイル所有者の UID を使用して実行されます。

通常、ファイルに setuid または setgid ビットを設定すると、ファイルの所有者またはグループが、ファイルが実行される所有者またはグループの ID (GID) に変更されます。ユーザーにファイルやディレクトリを復元する権利がない限り、Windows セキュリティではユーザーがファイルの所有権を継承することが許可されます (ファイルのアクセス権で許可されている場合)。ただし、所有権を第 2 のユーザーに移すことは許可されません。そのため、chown または chgrp を使用してファイルの所有者またはグループを他のユーザーやグループに変更するには、ファイルとディレクトリを復元するための権限が必要です。既定では、この権限は Administrators グループと Backup Operators グループのメンバーに割り当てられますが、他のグループや個々のユーザーに割り当てることもできます。また、chown や chgrp を実行するユーザーのアカウントと、所有権の移転先となるユーザーまたはグループを、Active Directory 参照またはユーザー名マッピングで適切にマップする必要があります。

UNIX ベースの一部の Network File System (NFS) サーバーでは、setuid ビット、setgid ビット、および sticky ビットに特別な解釈や制限が適用されます。たとえば、UNIX のバージョンによっては、setgid ビットが設定されていても実行アクセス権のないディレクトリには、強制ロックが適用されます。NFS サーバーでは、これらのビットの使用について特別な解釈や制限は実装されません。

セキュリティ上の問題

一般的な UNIX の setuid および setgid の動作には、UNIX で既知のセキュリティ上の問題があります。侵入者は、実行可能ファイルをトロイの木馬で上書きして実行し、setuid と setgid の動作を悪用することができます。実行可能ファイルは、侵入者として実行されるのではなく、所有者の権限で実行されます。

この既知のセキュリティ上の問題を回避するために、setuid と setgid は既定で無効になっています。ファイルやディレクトリが次の両方の特徴を備えている限り、UID や GID の設定に影響を与えることはありません。

  • setgid ビットと setuid ビットのいずれかまたは両方が設定されている。

  • ファイルまたはディレクトリが、グループで書き込み可能、グループで実行可能、全体で書き込み可能、または全体で実行可能である。

このセキュリティを維持するための方法は UNIX の一般的な動作とは異なるため、問題があると考えるユーザーもいます。UNIX の setuid と setgid の一般的な動作は、NFS プロトコルの一部として指定されていません。

setuid と setgid の動作を変更する

setuid ビットと setgid ビットの動作を変更するには、次の手順に従います。

setuid と setgid の動作を変更するには
  1. レジストリ エディターを開きます。

  2. 次のレジストリ キーを設定します。

    HKEY_Local_Machine\System\CurrentControlSet\Services\NfsSvr\Parameters\SafeSetUidGidBits = (DWORD)

    • 値を 1 にすると、setuid と setgid の動作がより安全になります。

    • 値を 0 にすると、標準の UNIX 動作になります。


目次