Как повторно применить исходные унаследованные разрешения к файлам, созданным администратором?

Как повторно применить исходные унаследованные разрешения к файлам, созданным администратором?

Надеюсь, кто-нибудь сможет ответить на этот вопрос раз и навсегда. Это сводит меня с ума уже несколько месяцев.

  • Платформа: Windows-сервер, любая версия. Эта проблема не возникает нарабочая станция.
  • Проблема:

В папке, всякий раз, когда я создаю файлы, находясьАдминистратор(из командной строки или из пакетного запуска «Как администратор» пользователь, к которому я подключен, не может редактировать созданные файлы. В наборе разрешений отсутствует мой пользователь со «специальными разрешениями» (что бы это ни значило), тогда как на рабочей станции этого не происходит. Почему??

Я перепробовал много разновидностей ICACLS, среди которых и та, которая постоянно появляется в результатах поиска: ICACLS folder /reset /C /L /Tи это не помогает: мой пользователь по-прежнему не может редактировать файлы, если это не указано в наборе разрешений.

Единственный найденный мной обходной путь — принудительно предоставить полный доступ моему пользователю следующим образом:icacls folder /grant %USERNAME%@%USERDNSDOMAIN%:F /T /C /Q

Проблема в том, что набор разрешений для файлов по-прежнему не соответствует тому, каким он должен быть:

  • отсутствует СОЗДАТЕЛЬ ВЛАДЕЛЕЦ
  • COMPUTERNAME\Users отсутствует наследование («Специальные разрешения»)

Я что-то делаю не так?

Какова наилучшая практика при выполнении пакетов от имени администратора, когда вы хотите, чтобы созданные файлы имели те же разрешения, как если бы вы не выполняли пакет от имени администратора? Возможно ли на самом деле сбросить разрешения на те, которые должны быть, без написания пакета с несколькими условиями?

решение1

Я не думаю, что вы делаете что-то неправильно, и система работает так, как задумано. При запуске скрипта с учетной записью с повышенными правами в рамках непривилегированного сеанса вы создаете файл как администратор. Насколько я понимаю, члены группы администраторов будут иметь полные права, а не вошедшая в систему учетная запись пользователя. Права пользователя должны быть добавлены к файлу точно так же, как вы их обходите. Вы также можете использовать takeown %USERNAME% в своем скрипте, чтобы изменить владельца файла. Я полагаю, вам нужно будет добавить условия в ваши пакетные файлы.

решение2

решения нет, есть только обходной путь: принудительно применить разрешения, предоставив полный доступ пользователю по вашему выбору:

icacls folder /grant %USERNAME%@%USERDNSDOMAIN%:F /T /C /Q

Связанный контент