Я довольно плохо знаком с файловыми системами и доступом / правами доступа (он же 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);
}
Моя логика такова:
- Добавить права на запрещение изменения(Отклонение .Modify приведет к тому, что файл станет нечитаемым)
- Добавить права на запрет записи
- Добавить разрешить права ReadAndExecute
- Удалить запись запрета на ReadAndExecute (как .Modify запрещает чтение ReadAndExecute)
- Удалить запись "Запретить" при чтении (как. Модификация запрещает чтение)
Правильно ли я выполняю эту часть?Если нет, пожалуйста, сообщите, что я должен сделать, чтобы сделать файл доступным только для чтения и не подлежащим редактированию, редактированию, удалению и копированию.Большое спасибо заранее!