Establecer permisos de carpeta en PowerShell
Una ACL (lista de control de acceso) representa los permisos de los usuarios y los grupos de usuarios para acceder a un archivo o recurso. Es una lista ordenada de entradas de control de acceso (ACE).
Al agregar las entradas de control de acceso, puede definir los derechos de acceso permitidos o denegados y establecer permisos de usuario y grupo en la carpeta. Usando la GUI del Explorador de archivos, puede establecer o cambiar fácilmente los permisos de la carpeta en Windows.
En este tutorial, aprenderá a configurar los permisos de las carpetas mediante PowerShell.
Utilice el cmdlet Set-Acl
para establecer permisos de carpeta en PowerShell
Las ACL almacenan la información en un depósito de valores. El descriptor de seguridad tiene dos tipos de ACL: ACL del sistema (SACL) y ACL discrecional (DACL).
Cada ACE en DACL contiene tres tipos de información:
- Un identificador de seguridad (SID): un SID determina a quién se aplica el ACE. Puede ser un solo usuario o un grupo de usuarios.
- Un conjunto de derechos de acceso: Un derecho de acceso es el derecho a realizar una operación particular en el objeto. Para obtener más detalles, consulte Derechos de acceso.
- Si se permite o deniega un conjunto de derechos de acceso.
El Set-Acl
cambia el descriptor de seguridad de un archivo o recurso específico. Aplica el descriptor de seguridad suministrado como valor del parámetro -AclObject
.
El siguiente ejemplo agrega la nueva regla ACL al permiso existente en la carpeta C:\pc\computing
.
$acl = Get-Acl -Path "C:\pc\computing"
$ace = New-Object System.Security.Accesscontrol.FileSystemAccessRule ("testuser", "Read", "Allow")
$acl.AddAccessRule($ace)
Set-Acl -Path "C:\pc\computer" -AclObject $acl
El primer comando obtiene las reglas ACL existentes de C:\pc\computing
. El segundo comando crea una nueva FileSystemAccessRule
para aplicar a la carpeta.
El tercer comando agrega la nueva regla ACL a los permisos existentes en la carpeta. El cuarto comando usa Set-Acl
para aplicar la nueva ACL a la carpeta.
Puede ver las ACL de la carpeta con el siguiente comando.
Get-Acl C:\pc\computing | Format-List
Producción :
Path : Microsoft.PowerShell.Core\FileSystem::C:\pc\computing
Owner : DelftStack\rhntm
Group : DelftStack\rhntm
Access : DelftStack\testuser Allow Read, Synchronize
DelftStack\rhntm Allow FullControl
Audit :
Sddl : O:S-1-5-21-1715350875-4262369108-2050631134-1001G:S-1-5-21-1715350875-4262369108-2050631134-1001D:AI(A;;FR;;;S-1-5-21-1715350875-4262369108-2050631134-1003)(A;OICIID;FA;;;S-1-5-21-1715350875-4262
369108-2050631134-1001)
Como puede ver, el usuario testuser
ahora tiene permiso de lectura en la carpeta. Puede establecer permisos en una gran cantidad de carpetas y archivos usando scripts de manera fácil y rápida.