Modificar permisos de sistema de archivos NTFS en Windows 7 con un ejecutable desde la consola cmd
Los sistemas Linux y Unix vienen con la utilidad chmod para cambiar permisos de acceso desde el intérprete de comandos / shell. Sin embargo, en Windows chmod no está disponible, la utilidad de línea de comandos que se puede usar en Windows 7 es ICACLS. Esta es su página de ayuda (manual) la que llamaríamos haciendo icacls -h en la consola:
ICACLS nombre /save archivoACL [/T] [/C] [/L] [/Q]
almacena las DACL para los archivos y carpetas cuyos nombres coinciden
en archivoACL para su uso posterior con /restore. Tenga en cuenta que no
se guardan las SACL, el propietario ni las etiquetas de identidad.
ICACLS directorio [/substitute SidOld SidNew [...]] /restore archivoACL
[/C] [/L] [/Q]
aplica las DACL almacenadas a los archivos del directorio.
ICACLS nombre /setowner usuario [/T] [/C] [/L] [/Q]
cambia el propietario de todos los nombres coincidentes. Esta opci¢n
no fuerza un cambio de propiedad; use la utilidad takeown.exe
con esta finalidad.
ICACLS nombre /findsid Sid [/T] [/C] [/L] [/Q]
busca todos los nombres coincidentes que contienen una ACL
que menciona el SID de forma expl¡cita.
ICACLS nombre /verify [/T] [/C] [/L] [/Q]
busca todos los archivos cuya ACL no est en formato can¢nico o cuyas
longitudes no son coherentes con los recuentos de la ACE.
ICACLS nombre /reset [/T] [/C] [/L] [/Q]
reemplaza las ACL con ACL heredadas predeterminadas para todos
los archivos coincidentes.
ICACLS nombre [/grant[:r] Sid:perm[...]]
[/deny Sid:perm [...]]
[/remove[:g|:d]] Sid[...]] [/T] [/C] [/L] [/Q]
[/setintegritylevel nivel:directiva[...]]
/grant[:r] Sid:perm concede los derechos de acceso al usuario
especificado. Con :r, los permisos reemplazan cualquier permiso
expl¡cito concedido anteriormente. Sin :r, los permisos se agregan a
cualquier permiso expl¡cito concedido anteriormente.
/deny Sid:perm deniega de forma expl¡cita los derechos de acceso al
usuario especificado. 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 quita todas las repeticiones del SID en la ACL. Con
:g, quita todas las repeticiones de derechos concedidos a ese SID. Con
:d, quita todas las repeticiones de derechos denegados a ese SID.
/setintegritylevel [(CI)(OI)]nivel agrega de forma expl¡cita una ACE de
integridad a todos los archivos coincidentes. El nivel se debe
especificar como:
L[ow] – para bajo
M[edium] – para medio
H[igh] – para alto
Las opciones de herencia para la ACE de integridad pueden preceder al
nivel y se aplican s¢lo a los directorios.
/inheritance:e|d|r
e – habilita la herencia
d – deshabilita la herencia y copia las ACE
r – quita todas las ACE heredadas
Nota:
Los SID pueden tener un formato num‚rico o de nombre descriptivo. Si se da
un formato num‚rico, agregue un asterisco (*) al principio del SID.
/T indica que esta operaci¢n se realiza en todos los archivos o
directorios coincidentes bajo los directorios especificados en el
nombre.
/C indica que esta operaci¢n continuar en todos los errores de archivo.
Se seguir n mostrando los mensajes de error.
/L indica que esta operaci¢n se realiza en el v¡nculo simb¢lico en s¡
en lugar de en su destino.
/Q indica que icacls debe suprimir los mensajes de que las operaciones
se realizaron correctamente.
ICACLS conserva el orden can¢nico de las entradas ACE:
Denegaciones expl¡citas
Concesiones expl¡citas
Denegaciones heredadas
Concesiones heredadas
perm es una m scara de permiso que puede especificarse de dos formas:
una secuencia de derechos simples:
N – sin acceso
F – acceso total
M – acceso de modificaci¢n
RX – acceso de lectura y ejecuci¢n
R – acceso de s¢lo lectura
W – acceso de s¢lo escritura
D – acceso de eliminaci¢n
una lista separada por comas entre par‚ntesis de derechos espec¡ficos:
DE – eliminar
RC – control de lectura
WDAC – escribir DAC
WO – escribir propietario
S – sincronizar
AS – acceso al sistema de seguridad
MA – m ximo permitido
GR – lectura gen‚rica
GW – escritura gen‚rica
GE – ejecuci¢n gen‚rica
GA – todo gen‚rico
RD – leer datos/lista de directorio
WD – escribir datos/agregar archivo
AD – anexar datos/agregar subdirectorio
REA – leer atributos extendidos
WEA – escribir atributos extendidos
X – ejecutar/atravesar
DC – eliminar secundario
RA – leer atributos
WA – escribir atributos
los derechos de herencia pueden preceder a cualquier forma y se
aplican s¢lo a directorios:
(OI) – herencia de objeto
(CI) – herencia de contenedor
(IO) – s¢lo herencia
(NP) – no propagar herencia
(I) – permiso heredado del contenedor principal
Ejemplos:
icacls c:\windows\* /save archivoACL /T
- Guardar todas las ACL para todos los archivos en c:\windows
y sus subdirectorios en archivoACL.
icacls c:\windows\ /restore archivoACL
- Restaurar todas las ACL para cada archivo dentro de
archivoACL que exista en c:\windows y sus subdirectorios.
icacls file /grant Administrador:(D,WDAC)
- Conceder al usuario permisos de administrador para eliminar y
escribir DAC en el archivo.
icacls file /grant *S-1-1-0:(D,WDAC)
- Conceder al usuario definido por el SID S-1-1-0 permisos para
eliminar y escribir DAC en el archivo.