ventana una navegar entre desde como comandos carpetas carpeta aqui aparece abrir windows command-prompt file-permissions

windows - una - navegar entre carpetas cmd



¿Cómo otorgar permiso a los usuarios para un directorio utilizando la línea de comandos en Windows? (15)

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


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á.


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 ofrece una solución completa. La siguiente es una solución perfecta:

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

Notas:

  1. El comando se aplica al directorio especificado.

  2. La especificación del usuario "Todos" establece el permiso más amplio posible, ya que incluye a todos los usuarios posibles.

  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.

  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 los subobjetos actuales 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 en el futuro.


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 esto 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.


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.


Esto es lo que funcionó para mí:

  1. Abra manualmente la carpeta para la que se deniega el acceso.

  2. Seleccione el archivo ejecutable / aplicación en esa carpeta.

  3. Haga clic derecho en él y vaya a Propiedades -> Compatibilidad

  4. Ahora vea el Nivel de privilegio y verifíquelo para Ejecutar como administrador

  5. Haga clic en Cambiar configuración para todos los usuarios .

El problema está resuelto ahora.


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 pueda eliminar los archivos y carpetas.


La creación masiva de carpetas y el permiso de concesión me funcionan utilizando 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


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

¡Buena suerte!


Soy administrador y algunas secuencias de comandos colocaron el permiso "Denegar" en mi nombre en todos los archivos y subcarpetas de un directorio. La ejecución de icacls "D:/test" /grant John:(OI)(CI)F /T comando no funcionó, porque parecía que no eliminaba el derecho de "Denegar" directamente de mi nombre de esta lista.

Lo único que funcionó para mí es restablecer todos los permisos con el icacls "D:/test" /reset /T


También puede utilizar ICACLS.

Para otorgar el control total del grupo Usuarios a una carpeta:

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

Para otorgar permiso de modificación a los usuarios de IIS para C:/MyFolder (si necesita, su IIS tiene la capacidad de convertir archivos R / W en una carpeta específica):

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

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


Usa el comando cacls . Ver información here .

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 - Escribe

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 /?


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 la página de soporte de Microsoft


excelente punto Călin Darie

Tuve muchos scripts para usar cacls. Los moví a icacls, pero nunca pude encontrar un script para cambiar los volúmenes de montaje raíz. Ejemplo: d: / carpeta de datos. Finalmente creé el siguiente script, 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 lleva el GUID de montaje de la carpeta a un archivo temporal, luego lee el GUID para montar el volumen como una unidad temporal X: aplica segundos y registra los cambios y luego desmonta el Volumen solo de la unidad X: para que la carpeta montada no se altere ni interrumpa. entonces 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**


A partir de Vista, los cacls están 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 icacls 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 = Objeto heredado: 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 here y here


attrib +r +a +s +h <folder name> <file name> to hide attrib -r -a -s -h <folder name> <file name> to unhide