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?
¿Existe algún equivalente de Windows a Linux chmod
para cambiar los permisos de un archivo?
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.
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:
H
) y “de sistema” (S
) que no tienen un equivalente en Linux; allí, los archivos se ocultan precediendo el nombre con un punto (.
). A
) de Windows. x
) de Linux en los atributos de los archivos DOS/Windows. D
) de Windows (pero no se puede cambiar de todos modos). 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.
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).
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
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).