Skip to content

Instantly share code, notes, and snippets.

@vicvr823
Last active October 21, 2023 10:16
Show Gist options
  • Save vicvr823/fff963bf763d0d39176ec786489c4519 to your computer and use it in GitHub Desktop.
Save vicvr823/fff963bf763d0d39176ec786489c4519 to your computer and use it in GitHub Desktop.
Chmod en Windows con PowerShell

Para aquellos que usan el sistema operativo Windows, pueden usar el equivalente a chmod, que es el comando icacls. Para dar permisos de lectura, escritura y ejecucion a un usuario en un archivo o carpeta, se usa el siguiente comando:

 icacls

Mostrará una lista de opciones

image

Para el ejemplo utilzare cuatro archivos para leer, escribir, ejecutar y sin acceso

image

Como se puede ver utilzando el chmod del wsl se muestra que los archivos en acceso total (F) que vendria a ser equivalente a chmod 777

Utilizaremos el nombre del usuario y permisos es una combinación de R, W y X, que representan los permisos de lectura, escritura y ejecución.

Utilizaremos la siguiente sintaxis:

 icacls <nombre_archivo> /grant <nombre_usuario>:<permisos>

Donde archivo o carpeta es el archivo o carpeta que queremos dar permisos y usuario es el usuario al que le queremos dar permisos. En este caso, le estamos dando permisos de lectura, escritura y ejecución al usuario.

Pasos

Paso 1

Para eliminar permisos explicitos, se usala opcion /reset, que se usa de la siguiente manera:

# Restablece el archivo para eliminar permisos explícitos
icacls .\archivo1.txt /reset

Paso 2

Para dar el permiso explicito al usuario actual, se usa el comando icacls, seguido de la ruta del archivo o carpeta, seguido de la opción /grant:r, seguido del nombre del usuario actual, seguido de los permisos que queremos darle. Por ejemplo, para dar permisos de lectura, escritura y ejecución al usuario actual en el archivo archivo1.txt, se usa el siguiente comando:

# Dar permiso explícito al usuario actual
icacls .\archivo1.txt /grant:r "$($env:username):(R)"
  • F : acceso completo
  • R : acceso de solo lectura
  • W : acceso de solo escritura
  • X : acceso de solo ejecución
  • RX : lectura y ejecución del acceso

Paso 3

# Deshabilita la herencia y elimina los permisos heredados
icacls .\archivo1.txt /inheritancer:r
  • r : Quita todas las ACE heredadas del archivo o carpeta
  • ACE : Entradas de control de acceso

Ejecutando permisos

Lectura

image

Escritura

image

Ejecucion

image

Quitar permisos

Para quitar permisos de lectura, escritura y ejecución a un usuario en un archivo o carpeta, se usa el siguiente comandos:

icacls <nombre_archivo> /reset
icacls <nombre_archivo> /inheritancer:r

image

Documentacion

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment