Вы находитесь на странице: 1из 8

Comando CACLS (Windows)

Muestara o modifica listas de control de acceso de archivos ACL (Acces control list)

Hay 2 tipos de ACL, las DACL (Discretionary Acceso Control List) y las SACL (System control
list). Las DACL son manejadas por los propietarios para el control de los archivos y carpetas, las
SACL son manejadas directamente por el sistema operativo

ACL: son unas tablas que le dicen al sistema operativo que o quien tiene permiso para acceder a
los diferentes archivos y carpetas del sistema de archivos NTFS propios de Windows. Los ACL
guardan unas unos descriptores de seguridad que son unos metadatos que almacenan permisos
de los diferentes archivos
Estructura del comando
cacls [ruta del archivo] [atributos] [grupo/usuarios:Permisos]

Atributos
archivo Muestra las ACL.
/T Cambia las ACL de archivos especificados en
el directorio actual y todos los subdirectorios.
/L Trabaja en el propio vnculo simblico en lugar del destino.
/M Cambia las ACL de los volmenes montados en un directorio.
/S Muestra la cadena SDDL para la DACL.
/S:SDDL Reemplaza las ACL por las especificadas en la cadena SDDL
(no vlido con /E, /G, /R, /P ni /D).
/E Edita la ACL en vez de remplazarla.
/C Contina, omitiendo los errores de acceso denegado.
/G usuario:perm Concede derechos de acceso del usuario.
Perm puede ser: R Leer
W Escribir
C Cambiar (escribir)
F Control total
/R usuario Revoca derechos del usuario (slo vlida con /E).
/P usuario:perm Reemplaza derechos de acceso del usuario.
Perm puede ser: N Ninguno
R Leer
W Escribir
C Cambiar (escribir)
F Control total
/D usuario Deniega acceso al usuario especificado.

Ejemplos
cacls "C:\Users\sena\Documents\ls.txt" --- para ver los permisos del archivo
cacls "C:\Users\sena" /T --- para ver los permisos archivos en carpetas y subcarpetas
cacls "C:\Users\sena\Documents" /E /R sena:R --- da al usuario sena permisos de lectura
cacls %windir%\*.exe /D Sena --- Deniega permisos al usuario sena de los ejecutables del
directorio de windows, aca se usan comodines como el % y *
Sintaxis de Xcacls.exe syntax
xcacls nombre de archivo [/T] [/E] [/C] [/G usuario:perm;espec] [/R usuario] [/P usuario:perm;espec [...]]
[/D usuario [...]] [/Y]
donde nombre de archivo indica el nombre del archivo o carpeta a la que la ACL o la entrada de
control de acceso (ACE) se suele aplicar. Se pueden utilizar todos los caracteres comodn estndar.

/T recorre de forma recursiva la carpeta actual y todas sus subcarpetas, aplicando los derechos de
acceso elegidos a los archivos o carpetas correspondientes.

/E modifica la ACL en lugar de reemplazarla. Por ejemplo, slo el administrador tendr acceso al
archivo Test.dat si se ejecuta el comando XCACLS test.dat /G Administrator:F . Todas las ACE
aplicadas anteriormente se pierden.

/C hace que Xcacls.exe contine si se produce un mensaje de error "Acceso denegado". Si no se
especifica /C, Xcacls.exe se detiene en este error.

/G usuario:perm;espec concede acceso al usuario al archivo o carpeta correspondiente.
La variable perm (permiso) aplica el derecho de acceso especificado a los archivos y
representa la mscara de los derechos de acceso especial a archivos para las carpetas. La
variable perm acepta los valores siguientes:
o R Lectura
o C Cambiar (escribir)
o F Control total
o P Permisos de modificacin (acceso especial)
o O Tomar posesin (acceso especial)
o X Ejecutar (acceso especial)
o E Lectura (acceso especial)
o W Escritura (acceso especial)
o D Eliminar (acceso especial)
La variable espec (acceso especial) se aplica slo a las carpetas y acepta los mismos valores
que perm, adems del valor especial siguiente:
o T Sin especificar. Establece una ACE para el propio directorio sin especificar una ACE
que se aplique a los nuevos archivos que se crearon en ese directorio. Despus debe
haber al menos un derecho de acceso. Las entradas entre un punto y coma (;) y T se
pasan por alto. Notas
Las opciones de acceso para los archivos (para carpetas, archivo especial y
acceso a la carpeta) son idnticas. Para obtener una explicacin detallada de
estas opciones, consulte la documentacin del sistema operativo de Windows
2000.
Todas las dems opciones, que tambin se pueden establecer en el Explorador
de Windows, son subconjuntos de todas las posibles combinaciones de los
derechos de acceso bsicos. Debido a esto, no hay ninguna opcin especial
para los derechos de acceso de las carpetas, como MOSTRAR o LECTURA.
/R usuario revoca todos los derechos de acceso para el usuario especificado.

/P usuario:perm;espec reemplaza todos los derechos de acceso del usuario especificado. Las reglas
para especificar perm y espec son las mismas que para la opcin /G. Vea la seccin "Ejemplos de
Xcacls.exe" de este artculo.

/D usuario deniega al usuario el acceso al archivo o directorio.

/Y deshabilita la confirmacin al reemplazar los derechos de acceso del usuario. De forma
predeterminada, CACLS pide confirmacin. Debido a esta caracterstica, cuando CACLS se utiliza en
una rutina por lotes, la rutina deja de responder hasta que se escriba la respuesta correcta. La
opcin /Y se introdujo para evitar esta confirmacin, para que Xcacls.exe se pueda utilizar en modo
de lote.


Utilizar Xcacls.exe para ver los permisos
Tambin puede utilizar Xcacls.exe para ver los permisos de un archivo o carpeta. Por ejemplo,
escriba xcacls C:\winnt en el smbolo del sistema y, despus, presione ENTRAR. Lo siguiente es un
resultado tpico:
c:\WINNT BUILTIN\Users:R BUILTIN\Users:(OI)(CI)(IO)(special access:)
GENERIC_READ GENERIC_EXECUTE

BUILTIN\Power Users:C BUILTIN\Power Users:(OI)(CI)(IO)C
BUILTIN\Administrators:F BUILTIN\Administrators:(OI)(CI)(IO)F NT
AUTHORITY\SYSTEM:F NT AUTHORITY\SYSTEM:(OI)(CI)(IO)F BUILTIN\Administrators:F
CREATOR OWNER:(OI)(CI)(IO)F

Los marcadores de las ACL tienen los significados siguientes:
IO: (Inherit Only) slo heredar - Este marcador indica que esta ACE no se aplica al objeto
actual.
CI: (Container Inherit) el contenedor hereda - Este marcador indica que los contenedores
subordinados heredarn esta ACE.
OI: (Object Inherit) el objeto hereda - Este marcador indica que los archivos subordinados
heredarn la ACE.
NP: (Non-Propagate) no propagar - Este marcador indica que el objeto subordinado no
propagar la ACE heredada ms all.
La letra al final de cada lnea indica el permiso. Por ejemplo:
F: Control total
C: Cambiar
W: Escritura
Ejemplos de cacls.exe
Ejemplo 1
Escriba XCACLS *.* /G administrator:RW /Y en el smbolo del sistema y, a continuacin, presione
ENTRAR para reemplazar la ACL de todos los archivos y carpetas de la carpeta actual sin examinar
las subcarpetas y sin pedir confirmacin.
Ejemplo 2
Las ACE que se agregan a la carpeta en este ejemplo tambin heredan la ACE de los archivos
nuevos que se crean en esta carpeta. El comando proporciona a usuarioDePrueba derechos de
lectura, escritura, ejecucin y eliminacin en todos los archivos nuevos creados en esta carpeta,
pero slo los permisos de lectura y escritura en la propia carpeta. Escriba XCACLS *.* /G
usuarioDePrueba:RWED;RW /E en el smbolo del sistema y, despus, presione ENTRAR.
Ejemplo 3
El ejemplo siguiente concede permisos de lectura y escritura en una carpeta sin crear una entrada
heredada para los archivos nuevos. Por consiguiente, en este ejemplo, los archivos nuevos que se
crean en esta carpeta no reciben ninguna ACE para usuarioDePrueba. Para los archivos existentes,
se crea una ACE con permisos de lectura. Escriba XCACLS *.* /G usuarioDePrueba:R;RW /E en el
smbolo del sistema y, despus, presione ENTRAR.


Instrucciones de los permisos NTFS
A continuacin se proporcionan instrucciones para asignar los permisos NTFS:
Use permisos NTFS para controlar el acceso a los archivos o carpetas.
Asigne los permisos a los grupos en lugar de a los usuarios individuales.
Los permisos de archivos NTFS tienen prioridad sobre los permisos de carpetas NTFS.
Los administradores y el propietario de un archivo o de una carpeta controlan los permisos
que se pueden establecer para ese objeto.
Al cambiar los permisos de las carpetas, tenga en cuenta los programas que estn instalados
en los servidores. Los programas crean sus propias carpetas que tienen activada la
configuracin Hacer posible que los permisos heredables de un objeto primario
se propaguen a este objeto. Si los permisos se cambian en la carpeta primaria, estos
cambios podran crear problemas en el programa.

ADVERTENCIA
Recuerde que muchos archivos y carpetas reciben sus permisos a travs de la herencia. Por
consiguiente, cuando piense que est cambiando slo una carpeta, puede estar cambiando
muchas ms.
Volver arriba | Enviar comentarios
Sintaxis del comando cacls
La sintaxis del comando es bien sencilla, aunque tiene varios modificadores o parmetros.
Antes de seguir comentar que todo lo que sigue se teclear desde la consola de comandos. Es
decir, Inicio > Ejecutar y escribimos cmd y ah podemos teclear todo lo que sigue.
La sintaxis ms inmediata del comando cacls es la siguiente:
cacls nombre_de_archivo
Por ejemplo, si tenemos en el escritorio un archivo llamado ejemplo.exe pues tecleamos:
cacls escritorio\ejemplo.exe
y nos saldrn los permisos que tiene asignado ese archivo. Igualmente podemos podemos usar
variables de entorno o la ruta completa del archivo. Por ejemplo, si queremos consultar los
permisos del archivo explorer.exe que est en la carpeta WINDOWS, podemos escribir:
cacls %windir%\explorer.exe
o bien
cacls c:\windows\explorer.exe

Como siempre, si la ruta contiene espacios, hay que introducir comillas:
cacls %userprofile\mi carpeta\exam.exe
Como casi todos los comandos de Windows, ste tambin cuenta con una serie de modificadores,
que son:
/T Con este modificador podemos cambiar los permisos a todos los archivos de una carpeta y
subcarpetas.
/E Con l podemos modificar la ACL sin cambiarla.
/C Es, digamos, el modo silencionso. Si al modificar las ACLs encuentra algn error, lo omite y sigue
modificndola.
/G Este es el comando para conceder permisos a un usuario en particular. Los permisos son los
siguiente:
N ningn permiso
W permiso de escritura
C permiso de cambiar
F control total
Por ejemplo, para concederle al usuario Usuario permisos de escritura sobre el
archivo ejemplo.exe que est en la carpeta Carpeta personal del escritorio, podramos hacerlo de
la siguiente forma:
cacls %userprofile%\escritorio\carpeta personal\ejemplo.exe /g Usuario:w
/R Este comando suspende los permisos a un usuario y acta conjuntamente con /E (ya que /E
modifica la ACL pero no la cambia)
/P Este comando sustituye los permisos del usuario
/D deniega a un usuario el acceso.

Por ejemplo, para denegar al usuario User el acceso al archivo anterior, escribimos:
cacls %userprofile%\escritorio\carpeta personal\ejemplo.exe /d User
Si nos equivocamos al escribir el nombre del usuario nos aparecer un mensaje como este:
No se ha efectuado ninguna asignacin entre los nombres de cuenta y los identificadores de
seguridad.

Cuando se consulten permisos sobre carpetas podemos obtener las siguientes abreviaturas:
OI que se refiere a que los objetos creados bajo el directorio heredarn el permiso
CI que se refiere a que los subdirectorios creados bajo este directorio heredarn el permiso
IO que hace referencia a que el permiso no afectar al directorio y por tanto slo lo heredern los
subdirectorios
(IO)(CI) los permisos lo tomar la carpeta y lo heredern las subcarpetas y archivos
(OI)(CI)(IO) los permisos slo lo heredarn subcarpetas y archivos
(CI)(IO) el permiso slo lo heredarn las subcarpetas
(IO)(IO) el permiso slo lo heredarn los archivos
Ninguna salida se refiere slo a esta carpeta
A la hora de consultar y modificar permisos podemos usar caracteres comodines para hacerlo a
varios a la vez. Por ejemplo:
cacls %windir%\*.exe
Nos dara todos los permisos de los archivos con extensin exe de la carpeta Windows. Tambin
podemos asignar a varios usuarios permisos sobre un mismo archivo con un solo comando:
cacls %userprofile%\escritorio\carpeta personal\ejemplo.exe /g Usuario:w /d
User2
le dara al usuario Usuario permisos de escritura sobre el archivo y a User2 se los denegara.
cacls %userprofile%\escritorio\carpeta personal\ejemplo.exe /g Usuario:w User2:f
le dara al usuario Usuario permisos de escritura sobre el archivo y al usuario User2 control total.
Finalmente, veremos que al ejecutar alguna accin de permisos se nos pregunta si estamos
seguros o no de lo que vamos a hacer. Para evitar este mensaje tecleamos lo siguiente:

echo Y|cacls %userprofile%\escritorio\carpeta personal\ejemplo.exe /g Usuario:w
User2:f
teniendo en cuenta de que entre la Y y el smbolo | no hay ningn espacio.
La herramienta XCACLS, un Cacls mejorado
Xcacls es una herramienta por lnea de comandos que puede mostrar informacin en pantalla que
la herramienta sucednea CACLS no puede mostrar. La herramienta que citamos se puede
descargar desde aqu.
Esta herramienta es especialmente til para mostrar y establecer permisos NTFS especiales, y
sobre todo para automatizar scripts por lnea de comandos que establezcan los permisos iniciales
de carpetas y archivos en instalaciones desatendidas.
Su sintaxis es parecida a la del comando Cacls y estn descritas en este artculo de la KB.

Вам также может понравиться