Вопрос или проблема
Немного упрощенная версия моей ситуации:
На компьютере с Windows (Server 2016) у меня есть папка (c:\myfolders\user1Folder
), владельцем которой является User1.
User2 имеет полный доступ к этой папке и создает здесь файл (c:\myfolders\user1Folder\MyFile.txt
). Теперь User2 владеет этим файлом, и User1 не может получить к нему доступ…
Как настроить так, чтобы, если User2 создаст файл в этой папке, User1 имел полный доступ?
Весь доступ к файлу определяется через его ACL (“Список управления доступом”), который вы можете увидеть на вкладке Безопасность
в диалоговом окне Свойства
файла. Любой пользователь или группа, которых вы добавите в ACL с, например, доступом Полный контроль
, действительно будут иметь Полный контроль
.
Право собственности почти не имеет значения, так как единственный реальный доступ, который оно предоставляет, это возможность сбросить список доступа, если он будет испорчен. Даже для владельца весь другой доступ (чтение, запись, удаление и т.д.) получается только при явном указании в ACL.
(Вы заметите, что некоторые папки имеют специальную запись “CREATOR OWNER” в своем списке доступа – всякий раз, когда создается новый файл и наследуется список доступа, эта запись расширяется до записи для фактического владельца нового файла, и так пользователи получают доступ к файлам, которые они владеют.)
Итак, если вы хотите предоставить доступ к вновь созданным файлам, откройте список доступа папки через ‘Свойства’ → ‘Безопасность’ → ‘Дополнительно’ и добавьте запись “наследуемую”, которая явно предоставит необходимый доступ User1. Используйте для этого представление Дополнительно
и убедитесь, что запись помечена как “Применяется к: Эта папка, подпапки и файлы“. Возможно, что папка уже имеет запись для User1, но только не наследуемую; в этом случае добавьте новую запись всё равно.
C:\> icacls c:\myfolders\user1Folder /grant "User1:(OI)(CI)(F)"
(OI) = наследование объекта (файлы)
(CI) = наследование контейнера (подпапки)
(F) = флаги доступа "Полный контроль"
Если это не сработает, как должно, проверьте ACL вновь созданных файлов и узнайте, установлено ли у них наследование разрешений от родителя. Некоторые программы сознательно создают файлы с ограниченными, не наследуемыми ACL (например, ssh-keygen делает это при создании файлов приватного ключа; а Cygwin в частности, как правило, устанавливает не наследуемые разрешения в соответствии с стилем POSIX) и в этих случаях вы не можете переопределить это через ACL файла – по замыслу – кроме как путём изменения программы или использования icacls /reset
, чтобы снова включить наследование.
Если это работает, подумайте, нужен ли вам “Полный контроль” (F)
, или достаточно будет просто “Изменить” (M)
. (Полный контроль также дает User1 возможность изменять ACL как если бы он был владельцем, или даже фактически забрать право собственности на себя, в основном 99% совместного владения. Но иногда может возникнуть необходимость, чтобы другие редакторы не могли вмешиваться в ACL, в этом случае достаточно Изменить.)
Кроме того, подумайте, не будет ли лучше добавить группу в список доступа вместо этого. Группы должны быть созданы администратором, но это упрощает синхронизацию списков доступа нескольких отдельных папок, когда нужно добавить или удалить человека.
Ответ или решение
Как предоставить доступ к файлам, созданным другим пользователем, в Windows Server 2016
Ваша ситуация, когда пользователь User1 не имеет доступа к файлу, созданному пользователем User2 в защищённой папке, может быть решена через правильную настройку списков контроля доступа (ACL) на уровне папки. В этом руководстве подробно описаны шаги, необходимые для решения данной проблемы, и приведены ключевые моменты, которые следует учитывать.
Понимание принципов управления доступом
Каждый файл и папка в Windows имеют список контроля доступа (ACL), который определяет, какие пользователи и группы имеют доступ и какие действия они могут выполнять. Владение файлом не всегда обуславливает доступ к нему. Важно помнить, что только те пользователи, которые явно указаны в ACL, имеют доступ к объекту.
Настройка папки для наследования прав
Для выполнения вашей задачи необходимо изменить настройки ACL в папке C:\myfolders\user1Folder
, чтобы пользователь User1 получал необходимые права на файлы, создаваемые в этой папке, даже если владелец файла — это User2.
-
Открыть свойства папки:
- Щелкните правой кнопкой мыши на папке
C:\myfolders\user1Folder
и выберите пункт Свойства.
- Щелкните правой кнопкой мыши на папке
-
Перейти на вкладку "Безопасность":
- Нажмите кнопку Дополнительно для открытия дополнительных настроек безопасности.
-
Добавить новую запись:
- Нажмите Добавить и выберите пользователя User1. Убедитесь, что выбрана опция Применить к: Эта папка, подкаталоги и файлы.
- Предоставьте права Полный доступ (Full control) или Изменить (Modify) в зависимости от ваших требований.
-
Использование командной строки:
В качестве альтернативы, вы можете использовать командную строку для изменения прав доступа:icacls C:\myfolders\user1Folder /grant "User1:(OI)(CI)(F)"
Здесь
(OI)
означает наследование для файлов, а(CI)
— для подкаталогов.
Проверка наследования прав
После выполнения этих шагов важно проверить, действительно ли новые файлы наследуют права от родительской папки:
- Создайте новый файл в папке
C:\myfolders\user1Folder
от имени User2. - Проверьте ACL для созданного файла, чтобы убедиться, что User1 имеет доступ.
Если обнаружите, что права не наследуются, это может быть связано с тем, что некоторые программы создают файлы с собственными ограничениями. В таких случаях, рассмотрите возможность использования команды:
icacls "путь_к_новому_файлу" /reset
Это восстанавливает наследование для файлов и настраивает необходимые права.
Заключение
Настройка доступа через ACL является важной частью управления безопасностью на Windows Server. Убедитесь, что вы проверили потребности пользователей в доступе и настроили права так, чтобы избежать лишних привилегий, что может привести к нарушениям безопасности. Если у вас есть несколько пользователей, которым требуется доступ, рекомендуется создавать группы, что упростит управление правами в будущем.
Использование данных стратегий позволит вам эффективно управлять доступом к файлам и поддерживать необходимую безопасность системы.