icacls

Muestra o modifica las listas de control de acceso discrecional (DACL) en los archivos especificados y aplica las DACL almacenadas a los archivos de los directorios especificados.

Nota

Este comando reemplaza el comando cacls en desuso.

Sintaxis

icacls <filename> [/grant[:r] <sid>:<perm>[...]] [/deny <sid>:<perm>[...]] [/remove[:g|:d]] <sid>[...]] [/t] [/c] [/l] [/q] [/setintegritylevel <Level>:<policy>[...]]
icacls <directory> [/substitute <sidold> <sidnew> [...]] [/restore <aclfile> [/c] [/l] [/q]]

Parámetros

Parámetro Descripción
<filename> Especifica el archivo para el que se van a mostrar o modificar las DACL.
<Directorio> Especifica el directorio para el que se van a mostrar o modificar las DACL.
/t Realiza la operación en todos los archivos especificados del directorio actual y sus subdirectorios.
/C Continúa la operación a pesar de los errores de archivo. Los mensajes de error se seguirán mostrando.
/l Realiza la operación en un vínculo simbólico en lugar de su destino.
/q Suprime los mensajes correctos.
[/save < ACLfile> [/t] [/c] [/l] [/q]] Almacena las DACL para todos los archivos coincidentes en un archivo de lista de control de acceso (ACL) para usarlos posteriormente con /restore.
[/setowner <username> [/t] [/c] [/l] [/q]] Cambia el propietario de todos los archivos coincidentes al usuario especificado.
[/findsid <sid> [/t] [/c] [/l] [/q]] Busca todos los archivos coincidentes que contienen una DACL que menciona explícitamente el identificador de seguridad (SID) especificado.
[/verify [/t] [/c] [/l] [/q]] Busca todos los archivos con ACL que no son canónicos o tienen longitudes incoherentes con los recuentos de entrada de control de acceso (ACE).
[/reset [/t] [/c] [/l] [/q]] Reemplaza las ACL por las ACL heredadas predeterminadas para todos los archivos coincidentes.
[/grant[:r] <sid>:<perm>[...]] Concede derechos de acceso de usuario especificados. Los permisos reemplazan los permisos explícitos concedidos previamente.

No agregar :r significa que los permisos se agregan a los permisos explícitos concedidos previamente.

[/deny <sid>:<perm>[...]] Deniega explícitamente los derechos de acceso de usuario especificados. Se agrega una ACE de denegación explícita para los permisos indicados y se quitan los mismos permisos de cualquier concesión explícita.
[/remove[:g | :d]] <sid>[...] [/t] [/c] [/l] [/q] Quita todas las apariciones del SID especificado de la DACL. Este comando también puede usar:
  • :g : quita todas las apariciones de derechos concedidos al SID especificado.
  • :d : quita todas las apariciones de derechos denegados en el SID especificado.
[/setintegritylevel [(CI)(OI)] < Level>:<Policy>[...]] Agrega explícitamente una ACE de integridad a todos los archivos coincidentes. El nivel se puede especificar como:
  • l - Bajo
  • m- Medio
  • h - Alto
Las opciones de herencia para la ACE de integridad pueden preceder al nivel y solo se aplican a los directorios.
[/substitute <sidoldsidnew>>< [...]] Reemplaza un SID (sidold) existente por un nuevo SID (sidnew). Requiere el uso con el <directory> parámetro .
/restore <ACLfile> [/c] [/l] [/q] Aplica las DACL almacenadas de <ACLfile> a los archivos del directorio especificado. Requiere el uso con el <directory> parámetro .
/inheritancelevel: [e | d | r] Establece el nivel de herencia, que puede ser:
  • e : habilita la herencia
  • d : deshabilita la herencia y copia los ASE
  • r : deshabilita la herencia y quita solo las ACE heredadas.

Observaciones

  • Los SID pueden estar en formato numérico o descriptivo. Si usa un formulario numérico, afija el carácter * comodín al principio del SID.

  • Este comando conserva el orden canónico de las entradas ACE como:

    • Denegaciones explícitas

    • Concesiones explícitas

    • Denegaciones heredadas

    • Concesiones heredadas

  • La <perm> opción es una máscara de permisos que se puede especificar en uno de los siguientes formularios:

    • Secuencia de derechos simples (permisos básicos):

      • F : acceso completo

      • M- Modificar el acceso

      • RX : lectura y ejecución del acceso

      • R : acceso de solo lectura

      • W : acceso de solo escritura

    • Lista separada por comas entre paréntesis de derechos específicos (permisos avanzados):

      • D : Eliminar

      • RC : control de lectura (permisos de lectura)

      • WDAC : escritura de DAC (permisos de cambio)

      • WO : propietario de escritura (toma posesión)

      • S : sincronizar

      • AS : seguridad del sistema de acceso

      • MA : máximo permitido

      • GR : lectura genérica

      • GW : escritura genérica

      • GE : ejecución genérica

      • DISPONIBILIDAD general : todos los genéricos

      • Escritorio remoto : directorio de lectura de datos o lista

      • WD : escritura de datos/agregar archivo

      • AD : anexar datos o agregar subdirectorio

      • REA : leer atributos extendidos

      • WEA : escritura de atributos extendidos

      • X : ejecutar o recorrer

      • DC : eliminar elemento secundario

      • RA : leer atributos

      • WA : escritura de atributos

    • Los derechos de herencia pueden preceder a cualquier <perm> forma:

      • (I) - Heredar. ACE heredada del contenedor primario.

      • (OI): el objeto hereda. Los objetos de este contenedor heredarán esta ACE. Solo se aplica a los directorios.

      • (CI): el contenedor hereda. Los contenedores de este contenedor primario heredarán esta ACE. Solo se aplica a los directorios.

      • (E/S): solo hereda. ACE heredada del contenedor primario, pero no se aplica al propio objeto. Solo se aplica a los directorios.

      • (NP): no propaga heredar. ACE heredada por contenedores y objetos del contenedor primario, pero no se propaga a contenedores anidados. Solo se aplica a los directorios.

Ejemplos

Para guardar las DACL de todos los archivos del directorio C:\Windows y sus subdirectorios en el archivo ACLFile, escriba:

icacls c:\windows\* /save aclfile /t

Para restaurar las DACL de cada archivo dentro de ACLFile que existe en el directorio C:\Windows y sus subdirectorios, escriba:

icacls c:\windows\ /restore aclfile

Para conceder al usuario los permisos User1 Delete y Write DAC a un archivo denominado Test1, escriba:

icacls test1 /grant User1:(d,wdac)

Para conceder al usuario definido por SID S-1-1-0 Permisos eliminar y escribir DAC en un archivo, denominado Test2, escriba:

icacls test2 /grant *S-1-1-0:(d,wdac)

Referencias adicionales