Usar Icacls

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 8

USAR ICACLS

/home
 /español
 /windows
 /¿Cómo otorgar permiso a los usuarios para un directorio
utilizando la línea de comandos en Windows?

¿Cómo otorgar permiso


a los usuarios para un
directorio utilizando la
línea de comandos en
Windows?
¿Cómo puedo otorgar permisos a un usuario en un directorio (Leer, Escribir, Modificar)
usando la línea de comandos de Windows?

windowscommand-promptfile-permissions
 231
28 may. 2010Amitabh

A partir de Vista, cacls está en desuso. Aquí está el primer par de líneas de ayuda:

C:\>cacls
NOTE: Cacls is now deprecated, please use Icacls.

Displays or modifies access control lists (ACLs) of files

Deberías usar icacls en su lugar. Así es como le otorga a John el control total sobre la
carpeta D:\test y todas sus subcarpetas:
C:\>icacls "D:\test" /grant John:(OI)(CI)F /T

De acuerdo con la documentación de MS:

 F = Control total


 CI = Herencia de contenedor: este indicador indica que los contenedores
subordinados heredarán este ACE.
 OI = Herencia de objeto: este indicador indica que los archivos subordinados
heredarán el ACE.
 /T = Aplicar recursivamente a archivos y subcarpetas existentes. (OI y CI solo se
aplican a nuevos archivos y subcarpetas). Crédito: comentario de @AlexSpence.

Para obtener la documentación completa, puede ejecutar "icacls" sin argumentos o


consultar la documentación de Microsoft aquí y aquí

 358
29 nov. 2011Călin Darie

The most convenient and reliable


file storage service
Receive your personal cloud storage with 2Gb of space for free

También puede utilizar ICACLS.

Para otorgar el Usuarios grupo Control total a una carpeta:

>icacls "C:\MyFolder" /grant Users:F

Para otorgar Modificar permiso a IIS usuarios para C:\MyFolder (si necesita su IIS tiene


capacidad para guardar archivos en una carpeta específica):

>icacls "C:\MyFolder" /grant IIS_IUSRS:M

Si lo haces ICACLS /? Podrás ver todas las opciones disponibles.

 69
20 ago. 2012Vin.X

Utilice el comando cacls. Ver información aquí .

Archivos CACLS/e/p {NOMBRE DE USUARIO}: {PERMISO}

Dónde,

/ p: establecer nuevo permiso


/ e: edita el permiso y conserva el permiso anterior, es decir, edita ACL en lugar de
reemplazarlo.

{USERNAME}: Nombre del usuario

{PERMISO}: El permiso puede ser:

R - Leer

W - Escribir

C - Cambiar (escribir)

F - Control total

Por ejemplo, otorgue el control Rocky Full (F) con el siguiente comando (escriba en el
símbolo del sistema de Windows):

C:> Archivos CACLS/e/p rocky: f

Lea la ayuda completa escribiendo el siguiente comando:

C:> cacls /?

 18
28 may. 2010Jorge Ferreira

Abra un símbolo del sistema, luego ejecute este comando:

icacls "c:\somelocation\of\path" /q /c /t /grant Users:F

F da acceso completo.

/q /c /t aplica los permisos a las subcarpetas.

Nota: A veces, "Ejecutar como administrador" ayudará.

 18
1 oct. 2015Sireesh Yarlagadda

Intento el siguiente camino y funciona para mí:


1. abrir cmd.exe
2. takeown /R /F *.*
3. icacls * /T /grant [username]:(D)
4. del *.* /S /Q

Para que los archivos se conviertan en mi propio acceso y se asignen a "Eliminar", y luego
puedo eliminar los archivos y carpetas.
 11
13 jul. 2015Ray Huang

Flexible, reliable and affordable


cloud hosting
Sign up and get $50 bonus within 30-day!

Permisos dañados: recuperar el acceso a una carpeta y sus subobjetos

Aunque la mayoría de las respuestas publicadas en respuesta a la pregunta tienen algún


mérito, en mi humilde opinión ninguna de ellas brinda una solución completa. La siguiente
(podría ser) una solución perfecta para Windows 7 si está bloqueado de una carpeta por la
configuración de permisos corruptos:

icacls "c:\folder" /remove:d /grant:r Everyone:(OI)(CI)F /T

Para Windows 10 el usuario/SID debe especificarse después de la opción /remove:d:

icacls "c:\folder" /remove:d Everyone /grant:r Everyone:(OI)(CI)F /T

.
Notas  :

1. El comando se aplica al directorio especificado.


2. Especificar el usuario "Todos" establece el permiso más amplio posible, ya que
incluye cada posible usuario.
3. La opción "/ remove: d" elimina cualquier configuración de DENY explícita que
pueda existir, ya que anulan la configuración ALLOW explícita: es un requisito
previo necesario para crear una nueva configuración ALLOW. Esto es solo una
precaución, ya que a menudo no hay una configuración DENY presente, pero es
mejor prevenir que lamentar.
4. La opción "/ grant" crea una nueva configuración ALLOW, un permiso explícito
que reemplaza (": r") todas las configuraciones ALLOW explícitas que puedan
existir.
5. El parámetro "F" (es decir, el permiso creado) hace que esto sea una concesión del
control COMPLETO.
6. El parámetro "/ T" agrega recursión, aplicando estos cambios a todos current sub-
object en el directorio especificado (es decir, archivos y subcarpetas), así como a la
carpeta en sí.
7. Los parámetros "(OI)" y "(CI)" también agregan recursión, aplicando estos cambios
a los subobjetos creados posteriormente.
.

ADENDA (2019/02/10) -
La línea de comando de Windows 10 arriba me lo sugirieron amablemente hoy, así que
aquí está. No tengo Windows 10 para probarlo, pero por favor, pruébelo si tiene (y luego,
por favor publicar un comentario abajo).

El cambio solo se refiere a la eliminación de la configuración DENY como primer paso.


Puede que no haya ningún ajuste DENY presente, por lo que esa opción puede no hacer
ninguna diferencia. Mi entendimiento es, en Windows 7, que no es necesario que
especifique un usuario después de / remove: d, ¡pero puedo estar equivocado al respecto!

 5
15 dic. 2017Ed999

Luché con esto por un tiempo y solo combinando las respuestas en este hilo funcionó para
mí (en Windows 10):
1. Abre cmd o PowerShell y ve a la carpeta con archivos
2. toma/R/F.
3. icacls */T/grant dan: F

¡Buena suerte!

 4
27 dic. 2015Daniil Shevelev

En caso de que haya alguien más que se tropiece en esta página, si desea unir varios
permisos en el comando one, usé esto:

icacls "c:\TestFolder" /grant:r Test_User:(OI)(CI)(RC,RD,RX)

Tenga en cuenta la cadena csv para los distintos permisos.

 3
23 mar. 2015Ads

Con un script Excel vba para aprovisionar y crear cuentas. Necesitaba otorgar permisos
completos de derechos a la carpeta y subcarpetas que fueron creadas por la herramienta
usando la cuenta x de nuestros administradores para nuestro nuevo usuario.

los cacls parecían algo así: cacls\FileServer\Users\Username/e/g Domain\Username: C

Necesitaba migrar este código a Windows 7 y más allá. Mi solución resultó ser:

icacls\FileServer\Users\Username/grant: r Domain\Username: (OI) (CI) F/t

/ grant: r - Otorga derechos de acceso de usuario especificados. Los permisos reemplazan


los permisos explícitos otorgados previamente. Sin: r, los permisos se agregan a los
permisos explícitos concedidos previamente

(OI) (CI): esta carpeta, subcarpetas y archivos.


F - Acceso completo

/ t: atraviesa todas las subcarpetas para hacer coincidir archivos/directorios.

Lo que me dio fue una carpeta en este servidor que el usuario solo podía ver esa carpeta y
creó subcarpetas, que podía leer y escribir archivos. Además de crear nuevas carpetas.

 2
23 abr. 2014Gus

XCACLS.VBS es un script muy poderoso que cambiará/editará la información de ACL.


c:\windows\system32\cscript.exe xcacls.vbs help devuelve todos los interruptores y
opciones.

Puede obtener distribución oficial de Página de soporte de Microsoft

 1
20 sept. 2012g222

The most convenient and reliable


file storage service
Receive your personal cloud storage with 2Gb of space for free

La creación masiva de carpetas y el permiso de concesión me funcionan mediante el


siguiente script de powershell.

Import-Csv "D:\Scripts\foldernames.csv" | foreach-object {$ username = $ _. foldername

# foldername is the header of csv file

$domain = “example.com”

$folder= "D:\Users"

$domainusername = $domain+“\”+$username

New-Item $folder\$username –Type Directory

Get-Acl $folder\$username

$acl = Get-Acl $folder\$username


$acl.SetAccessRuleProtection($True, $False)

$rule = New-Object
System.Security.AccessControl.FileSystemAccessRule("Administrators","FullControl",
"ContainerInherit, ObjectInherit", "None", "Allow")
$acl.AddAccessRule($rule)

$rule = New-Object
System.Security.AccessControl.FileSystemAccessRule("SYSTEM","FullControl",
"ContainerInherit, ObjectInherit", "None", "Allow")
$acl.AddAccessRule($rule)

$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("$domain\Domain


Admins","Read", "ContainerInherit, ObjectInherit", "None", "Allow")
$acl.AddAccessRule($rule)

$rule = New-Object
System.Security.AccessControl.FileSystemAccessRule($domainusername,"Modify",
"ContainerInherit, ObjectInherit", "None", "Allow")
$acl.AddAccessRule($rule)

Set-Acl $folder\$username $acl

Nota: tiene que crear el mismo nombre de usuario de dominio en el archivo csv, de lo
contrario obtendrá problemas de permiso

 1
25 may. 2017user2934980

Soy administrador y algunas secuencias de comandos colocaron el permiso "Denegar" en


mi nombre en todos los archivos y subcarpetas de un directorio. Ejecutar el
comando icacls "D:\test" /grant John:(OI)(CI)F /T  no funcionó, porque parecía que
no eliminaba el "Denegar" directamente de mi nombre de esta lista.

Lo único que me funcionó es restablecer todos los permisos con el comando icacls


"D:\test" /reset /T.

 0
18 feb. 2016B. Zoli
attrib +r +a +s +h <folder name> <file name> to hide
attrib -r -a -s -h <folder name> <file name> to unhide
 0
24 nov. 2011Yashwanth
excelente punto Călin Darie

Tenía muchos scripts para usar cacls. Los moví a icacls, pero nunca pude encontrar un
script para cambiar el volumen de montaje raíz. Ejemplo: d:\carpeta de datos. Finalmente,
creé el script a continuación, que monta el volumen como una unidad temporal y luego
aplica sec. luego lo desmonta. Es la única forma en que encontré que puede actualizar la
seguridad del montaje raíz.

1 obtiene la carpeta de montaje GUID en un archivo temporal y luego lee GUID para
montar el volumen como una unidad temporal X: aplica segundos y registra los cambios y
luego desmonta el volumen solo de la X : conduzca para que la carpeta montada no se
modifique ni se interrumpa, excepto la sec. aplicada.

aquí hay una muestra de mi guión:

**mountvol "d:\%1" /L >tempDrive.temp && FOR /f "tokens=*" %%I IN (tempDrive.temp) DO


mountvol X: %%I
D:\tools\security\icacls.exe %~2 /grant domain\group:(OI)(CI)F /T /C >>%~1LUNsec-%TDWEEK
%-%TMONTH%-%TDAY%-%TYEAR%-%THOUR%-%TMINUTE%-%TAM%.txt
if exist x:\*.* mountvol X: /d**
 0
3 feb. 2015HandyMannyHE

También podría gustarte