2010-02-08 09:34:14 +0000 2010-02-08 09:34:14 +0000
63
63

Equivalente de chmod para cambiar los permisos de un archivo en Windows

¿Existe algún equivalente de Windows a Linux chmod para cambiar los permisos de un archivo?

Respuestas (8)

27
27
27
2011-08-02 17:10:18 +0000

Greg menciona attrib - pero attrib no se acerca a chmod - attrib puede establecer los atributos de sólo lectura/ocultas de un solo archivo - no proporciona controles de grano fino como lo hace icacls .

icacls establece/reestablece las listas de control de acceso, así que puede otorgar/denegar derechos para SIDs individuales y grupos. Sin embargo, es bastante complicado.

Aquí hay un ejemplo que he guardado en mi github gist ; restablece la propiedad y la lista de control de acceso para todos los archivos de una carpeta y es particularmente útil para arreglar esos molestos “Necesitas permisos de .. para realizar esta acción”, especialmente cuando se mueven archivos de una instalación anterior:

icacls * /reset /t /c /q

Reset reemplaza la existente con la lista predeterminada.
/t actúa de forma recursiva en todos los archivos, carpetas y subcarpetas /q no muestra ningún mensaje de éxito /c continúa con los archivos restantes incluso cuando se produce un error.

También puede hacer cosas como hacer una copia de seguridad de las ACL existentes y aplicarlas a todas. Echa un vistazo a ss64 que explica muy bien las diferentes opciones y conmutadores.

13
13
13
2010-02-08 10:41:26 +0000

O bien cacls , xcacls , o mi favorito personal icacls probablemente hará lo que necesitas.

10
10
10
2012-12-28 18:04:43 +0000

No puede haber (tristemente) un equivalente exacto, ya que Linux y DOS/Windows usan atributos para diferentes propósitos, y (como dijo Chathuranga antes) el modelo de seguridad es diferente:

  • En los sistemas de archivos de Windows, hay atributos “ocultos” (H) y “de sistema” (S) que no tienen un equivalente en Linux; allí, los archivos se ocultan precediendo el nombre con un punto (.).
  • Tampoco hay un equivalente al atributo “archivo” (A) de Windows.
  • No hay equivalente al atributo “ejecutable” (x) de Linux en los atributos de los archivos DOS/Windows.
  • Hay es un equivalente al atributo “directorio” (D) de Windows (pero no se puede cambiar de todos modos).
  • En los sistemas de archivos de Linux, cada entrada es propiedad de un solo usuario y un solo grupo, y se puede permitir la lectura/escritura/ejecución para cada uno de ellos, y para los demás. Las ACLs (como las que usa Windows) son aún más flexibles, pero también más complicadas, y la sintaxis de la línea de comandos es un PITA (en mi humilde opinión, por supuesto)

El atributo de archivo DOS R (sólo lectura) es el que podría considerarse que tiene un equivalente: este atributo set es más o menos como el atributo w para todos los que faltan; pero el permiso para cambiar este atributo está sujeto a las ACLs.

Podría ser genial tener un equivalente a chmod/chown en Windows, quizás escrito en algún lenguaje de scripting, que a su vez llame a attrib y cacls (o sucesores), pero no tengo uno.

7
7
7
2012-12-28 18:26:58 +0000
icacls "C:\folder" /grant:r "Domain\Users":(OI)(CI)M /T /C

Funciona como un encanto para cambiar los permisos de una carpeta para los usuarios del dominio. Información adicional sobre cacls y icacls.

5
5
5
2010-02-08 11:37:51 +0000

El comando attrib es el que más se acerca a cosas muy básicas (sólo lectura, banderas de archivo). Luego está el comando cacls de ACL (lista de control de acceso). Por último, pero no menos importante, ya que Windows es en realidad compatible con Posix, las banderas tipo unix existen. Si instalas el conjunto de herramientas Cygwin, obtendrás un chmod. (Un poco fuera de tema, ya que estás buscando un equivalente a un comando unix, descargar e instalar Cgygwin podría ser algo interesante para ti).

3
3
3
2014-07-29 14:22:12 +0000

Uso el comando de Windows takeown.exe para cambiar los permisos de archivo a mi actual id de usuario conectado: http://technet.microsoft.com/en-us/library/cc753024.aspx

2
2
2
2017-12-22 03:29:44 +0000

Para mí, la solución es instalar Cygwin, y añadir su carpeta bin a la ruta del sistema. Entonces, si ejecutas “chmod” en la línea de comandos, funcionará. Aunque no he verificado su corrección.

2
2
2
2010-02-08 09:37:07 +0000

No hay nada llamado chmod en Windows porque el modelo de seguridad de Windows es diferente al de Linux. Puedes usar el comando attrib para cambiar las propiedades de los objetos. (Pero están más orientadas a las propiedades globales).