Usando Windows Server 2012 R2 Y Windows Server 2008 R2.
Tengo una carpeta llamada C:\temp\test
y quiero otorgar acceso a SYSTEM
un usuario y a todos los archivos y subdirectorios, y eliminar todo lo demás. He probado este comando pero todos los permisos existentes permanecen:
Los permisos existentes son:
Access : NT AUTHORITY\SYSTEM Allow FullControl
BUILTIN\Administrators Allow FullControl
BUILTIN\Users Allow ReadAndExecute, Synchronize
BUILTIN\Users Allow AppendData
BUILTIN\Users Allow CreateFiles
CREATOR OWNER Allow 268435456
Quiero eliminar todas las ACL excepto SYSTEM
y agregar<DOMAIN>\<USER>
Intenté este comando:
icacls c:\temp\test /grant:r <DOMAIN>\<USER>:(OI)(CI)F /t
processed file: c:\temp\test
Successfully processed 1 files; Failed processing 0 files
Cuando miro los permisos después, <DOMAIN>\<USER>
tiene los permisos correctos pero todos los demás permanecen. Pensé que /grant:r
reemplazó todos los permisos? ¿Sabes qué comando necesito ejecutar para eliminar todos los demás permisos?
windows-server-2008-r2
windows
windows-server-2012-r2
icacls
Mark Allison
fuente
fuente
cacls c:\temp\test /t /g <DOMAIN>\<USER>:F
pero he oído que icacls lo ha reemplazado, ¿alguien puede mostrarme la versión icacls equivalente para producir el mismo comportamiento?/grant:r
solo elimina los permisos explícitos existentes, no los heredados de la carpeta anterior. Necesitarías incluir/inheritance:r
también.NOTE: Cacls is now deprecated, please use Icacls.
cacls.exe
puede configurar las ACL en el orden incorrecto, lo que puede causar problemas (lo dejaré como un ejercicio para el lector).Respuestas:
Como se menciona en los comentarios, también debe usar el
/inheritance:r
interruptor para eliminar los permisos heredados./grant:r
solo elimina permisos explícitos.Para otorgar también
SYSTEM
:fuente
El parámetro
/grant:r
no funcionó para mí. Tuve que usar/reset
para revertir los permisos a herencia solamente y luego eliminar los permisos heredados. No olvides cambiar los subdirectorios con/t
bandera.fuente