Программно созданный файл не всегда наследует разрешения родительской папки - PullRequest
2 голосов
/ 07 марта 2012

(Это может быть лучше подходит для ServerFault - если это так, пожалуйста, перенесите его!)

Мы недавно обновили серверы с Windows 2003 до Windows 2008. Теперь мы получаем отчеты о том, что определенные PDF-файлы, которые генерируются динамически, дают сообщения «доступ запрещен». Я проверил, что папка имеет «Полный доступ» для используемой группы пользователей, но кажется, что файлы создаются с перерывами, не наследуя родительские разрешения.

Например, родительская папка называется Paperwork. Группа «Пользователи» настроена так, чтобы иметь полный контроль над всеми файлами и подпапками в этом каталоге. Это работает в 95% случаев. Однако время от времени создается файл, и когда я просматриваю разрешение безопасности для этого файла , группа «Пользователи» не имеет полный доступ.

Есть что-то программное, что нужно изменить для Windows Server 2008, или это проблема конфигурации на самом сервере?

1 Ответ

1 голос
/ 07 марта 2012

взгляните на это

enter image description here

попробуйте это:

 private DirectorySecurity GetDirectorySecurity(string owner)
    {
        const string LOG_SOURCE = "GetDirectorySecurity";
        DirectorySecurity ds = new DirectorySecurity();

        System.Security.Principal.NTAccount ownerAccount =
            new System.Security.Principal.NTAccount(owner);

        ds.SetOwner(ownerAccount);

        ds.AddAccessRule(
            new FileSystemAccessRule(owner,
            FileSystemRights.FullControl,
            InheritanceFlags.ObjectInherit, 
            PropagationFlags.InheritOnly,
            AccessControlType.Allow));

        //AdminUsers is a List<string> that contains a list from configuration
        //  That represents the admins who should be allowed
        foreach (string adminUser in AdminUsers)
        {
            ds.AddAccessRule(
                new FileSystemAccessRule(adminUser,
                FileSystemRights.FullControl,
                InheritanceFlags.ObjectInherit,
                PropagationFlags.InheritOnly,
                AccessControlType.Allow));
        }
        return ds;
    }

ссылка: Права доступа к файлам не наследуют права доступа к каталогу

...