У меня есть следующий пример структуры папок:

 U:\One\Two\A
 U:\One\Two\B
 U:\One\Two\C
 U:\One\Two\D
 U:\One\Two\E

Папки "Один" и "Два" предназначены для обычных пользователей, чтобы только читать, а не изменять их или их содержимое. Папки "A" - "E" имеют права на чтение для себя, и права на запись их содержимого / подпапок.

Разрешает ли Windows устанавливать разрешения для папки "Два", чтобы в будущем созданные подпапки "F", "G" и т.д. Получали те же разрешения, что и "A" - "E" сейчас? Если нет, то какие еще есть решения для достижения этого результата?

2 ответа2

1

Запретить внесение изменений в непосредственные подпапки / файлы, но разрешить изменение прав на содержимое подпапок

Вам нужно только применить специальные разрешения к папке "Parent" в ваших подпапках от A до E. В вашем случае папка Parent - это папка Two .

Примените эти разрешения к родительской папке:

  • Пользователи: Read & execute (This folder, subfolders and files)
  • Пользователи: Modify (Subfolders and files only)
  • Пользователи: DENY 'Delete' (Subfolders only) и включить Apply these permissions to objects and/or containers within this container only

    Примечание. Замените группу « Users » конкретной идентификационной информацией, которой вы хотите предоставить доступ.

    Примечание. Вам также необходимо предоставить администраторам (или пользователю, ответственному за добавление / удаление подпапок) права полного доступа к этой папке. В противном случае никто не будет иметь разрешение на создание подпапок.

Результирующие разрешения для группы «Пользователи»:

  • Невозможно создавать, переименовывать или удалять папки или файлы непосредственно внутри родительской папки
  • Может создавать, переименовывать, изменять и удалять папки или файлы в подпапках родительской папки.

Результирующие разрешения в вашем случае:

U:\One\Two   <-- "Parent" folder
 - Users can read everything below this folder
 - Users cannot create, rename, or delete files or folders here

U:\One\Two\A (through E)   <--- "Subfolder" of Parent
 - Users can create, rename, modify, and delete files or subfolders here

Очевидно, что поскольку разрешения, назначенные родительской папке, наследуются, будущие папки, созданные в папке Two , автоматически получат тот же набор разрешений.

0

Нет, как указано, F и G наследуют разрешения One и Two. ICACLS может делать то, что вы хотите в качестве сценария - я прикрепил файл CMD, который использовал некоторое время назад, чтобы делать это каждый раз, когда я создавал каталог для какой-либо цели -
Я изменил его, чтобы использовать локальные группы, а не доменные группы и некоторые другие вещи, но это работает - но я надеюсь, что это ниже поможет объяснить, как его использовать

SET DIR=TESTPERMS 
SET DOMAIN=%COMPUTERNAME%\ 
SET DOMAIN= 
SET
ROOTPATH=%TEMP%\
REM SET ROOTPATH=U:\One\Two\ REM SET DIR=A

REM Create the groups locally on the machine - I added for debug
NET LOCALGROUP FSP_%DIR%_MODIFY /ADD 
NET LOCALGROUP FSP_%DIR%_READ /ADD 
NET LOCALGROUP FSP_%DIR%_READexecute /ADD 
NET LOCALGROUP FSP_%DIR%_FULLCONTROL /ADD 
NET LOCALGROUP FSP_%DIR%_WRITE /ADD

REM Make the directory I'm about to modify  
md %ROOTPATH%%DIR% 
REM   Make sure I know who the owner is - so I can take  ownership
ICACLS %ROOTPATH%%DIR% /setowner %DOMAIN%FSP_%DIR%_FULLCONTROL /T 
REM Reset to a known state inherited and nothing else
ICACLS %ROOTPATH%%DIR% /T /reset 
REM remove inheritance - but copy so we don't lose access 
ICACLS %ROOTPATH%%DIR% /inheritance:r

REM Give the rights to the Groups The last () is the rights being granted
ICACLS %ROOTPATH%%DIR% /GRANT:R %DOMAIN%FSP_%DIR%_MODIFY:(OI)(CI)(M)
ICACLS %ROOTPATH%%DIR% /GRANT:R %DOMAIN%FSP_%DIR%_READ:(OI)(CI)(R)
ICACLS %ROOTPATH%%DIR% /GRANT:R %DOMAIN%FSP_%DIR%_READexecute:(OI)(CI)(RX)
ICACLS %ROOTPATH%%DIR% /GRANT:R %DOMAIN%FSP_%DIR%_FULLCONTROL:(OI)(CI)(F)
ICACLS %ROOTPATH%%DIR% /GRANT:R %DOMAIN%FSP_%DIR%_WRITE:(OI)(CI)(W)

REM Remove rights from everyone else 
ICACLS %ROOTPATH%%DIR% /REMOVE:g "Authenticated Users"
ICACLS %ROOTPATH%%DIR% /REMOVE:g Everyone
ICACLS %ROOTPATH%%DIR% /REMOVE:g SYSTEM
ICACLS %ROOTPATH%%DIR% /REMOVE:g BUILTIN\Users
REM Show me what I've done 
ICACLS %ROOTPATH%%DIR% /T 
REM Now remove my self - If I am sure everything is ok
PAUSE
ICACLS %ROOTPATH%%DIR% /REMOVE:g BUILTIN\Administrators

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .