Sintaxis del comando cacls
La sintaxis del comando es bien sencilla, aunque tiene varios modificadores o
parámetros.
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 más inmediata del comando cacls es la siguiente:
cacls nombre_de_archivo
Por ejemplo, si tenemos en el escritorio un archivo llamado [Link] pues
tecleamos:
cacls escritorio\[Link]
y nos saldrán 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 [Link] que está en la carpeta
WINDOWS, podemos escribir:
cacls %windir%\[Link]
o bien
cacls c:\windows\[Link]
Como siempre, si la ruta contiene espacios, hay que introducir comillas:
cacls “%userprofile\mi carpeta\[Link]”
Como casi todos los comandos de Windows, éste también 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 algún error,
lo omite y sigue modificándola.
/G Este es el comando para conceder permisos a un usuario en particular. Los
permisos son los siguiente:
N ningún 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 [Link] que está en la carpeta “Carpeta personal” del escritorio,
podríamos hacerlo de la siguiente forma:
cacls “%userprofile%\escritorio\carpeta personal\[Link]” /g
Usuario:w
/R Este comando suspende los permisos a un usuario y actúa 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”\[Link] /d User
Si nos equivocamos al escribir el nombre del usuario nos aparecerá un mensaje
como este:
No se ha efectuado ninguna asignación 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 heredarán el permiso
CI que se refiere a que los subdirectorios creados bajo este directorio heredarán el
permiso
IO que hace referencia a que el permiso no afectará al directorio y por tanto sólo lo
herederán los subdirectorios
(IO)(CI) los permisos lo tomará la carpeta y lo herederán las subcarpetas y archivos
(OI)(CI)(IO) los permisos sólo lo heredarán subcarpetas y archivos
(CI)(IO) el permiso sólo lo heredarán las subcarpetas
(IO)(IO) el permiso sólo lo heredarán los archivos
Ninguna salida se refiere sólo 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 daría todos los permisos de los archivos con extensión exe de la carpeta
Windows. También podemos asignar a varios usuarios permisos sobre un mismo
archivo con un solo comando:
cacls “%userprofile%\escritorio\carpeta personal\[Link]” /g
Usuario:w /d User2
le daría al usuario Usuario permisos de escritura sobre el archivo y a User2 se los
denegaría.
cacls “%userprofile%\escritorio\carpeta personal\[Link]” /g
Usuario:w User2:f
le daría al usuario Usuario permisos de escritura sobre el archivo y al usuario User2
control total.
Finalmente, veremos que al ejecutar alguna acción 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\[Link]” /g
Usuario:w User2:f
teniendo en cuenta de que entre la “Y” y el símbolo | no hay ningún espacio.