特定のユーザーのUNCパスにNTFSアクセス許可を付与しようとしましたが、UNCパスによって動作が異なります。以下は、各シナリオでアクセス許可と結果を与えるために使用しているコード(MSDNから)です。
static void GiveNTFSPermissions(string folderPath,
string ntAccountName,
FileSystemRights accessRights)
{
DirectorySecurity dirSecurity = Directory.GetAccessControl(folderPath);
FileSystemAccessRule newAccessRule =
new FileSystemAccessRule(
ntAccountName,
accessRights,
AccessControlType.Allow);
dirSecurity.AddAccessRule(newAccessRule);
Directory.SetAccessControl(folderPath, dirSecurity);
}
ローカルマシンに「<em>RootShare」という名前の共有があり、その中に別のフォルダ「<em>InsideRootShare」があるとします。
シナリオ
1:電話すると、
GiveNTFSPermissions(@"\\sri-devpc\RootShare",
@"domain\username",
FileSystemRights.Write);
継承された権限が共有パスで失われました。
シナリオ2: 電話すると、
GiveNTFSPermissions(@"\\sri-devpc\RootShare\InsideRootShare",
@"domain\username",
FileSystemRights.Write);
継承された権限はそのままでした。
私はさまざまなコンストラクターを試してみましFileSystemAccessRule
たが、運がありません。
この動作の背後にある理由と、これに対する回避策は何ですか?