Establecer permisos de carpeta en PowerShell

Rohan Timalsina 16 febrero 2024
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:

  1. 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.
  2. 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.
  3. 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.

Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Artículo relacionado - PowerShell Folder