Проблемы FileSystemRights (C #) - PullRequest
       25

Проблемы FileSystemRights (C #)

0 голосов
/ 18 августа 2011

Я довольно плохо знаком с файловыми системами и доступом / правами доступа (он же Access Control List, ACL).При кодировании в отношении ACL я не могу установить нужные мне свойства для файлов.Я не уверен, что мое понимание членов FileSystemRights неверно, или я делаю неправильно.(И я уже потратил довольно много времени на эту часть)

Что я хотел бы сделать, так это изменить права на файл, чтобы он мог быть только читаемым И не мог быть отредактирован, переименован,удалено и скопировано в другом месте.

Используя пример MSDN, вот что у меня есть:

try
{
    //Get current identity
    WindowsIdentity self = System.Security.Principal.WindowsIdentity.GetCurrent();

    // Add the access control entry to the file.
    AddFileSecurity(filename, self.Name, FileSystemRights.Modify, AccessControlType.Deny);
    AddFileSecurity(filename, self.Name, FileSystemRights.Write, AccessControlType.Deny);
    AddFileSecurity(filename, self.Name, FileSystemRights.ReadAndExecute, AccessControlType.Allow);

    // Remove the access control entry from the file.
    RemoveFileSecurity(filename, self.Name, FileSystemRights.ReadAndExecute, AccessControlType.Deny);
    RemoveFileSecurity(filename, self.Name, FileSystemRights.Read, AccessControlType.Deny);

    Console.WriteLine("Done.");
}
catch (Exception e)
{
    Console.WriteLine(e);
}

Моя логика такова:

  1. Добавить права на запрещение изменения(Отклонение .Modify приведет к тому, что файл станет нечитаемым)
  2. Добавить права на запрет записи
  3. Добавить разрешить права ReadAndExecute
  4. Удалить запись запрета на ReadAndExecute (как .Modify запрещает чтение ReadAndExecute)
  5. Удалить запись "Запретить" при чтении (как. Модификация запрещает чтение)

Правильно ли я выполняю эту часть?Если нет, пожалуйста, сообщите, что я должен сделать, чтобы сделать файл доступным только для чтения и не подлежащим редактированию, редактированию, удалению и копированию.Большое спасибо заранее!

1 Ответ

0 голосов
/ 18 августа 2011

Пожалуйста, объясните, что он делает неправильно. Единственное, что я вижу, может быть проблема в том, что вы устанавливаете разрешения для себя, но не для других пользователей или групп. Возможно, вам следует пройти через все группы (администраторы, пользователи и т. Д.) И отключить все, кроме чтения и выполнения. Хотя я думаю, что SYSTEM всегда имеет полный контроль над всеми файлами.

...