Cambiar permisos desde línea de comandos

Estándar

Imaginemos esta situación.
Hemos iniciado una sesión en Windows bajo una cuenta con permisos mínimos, llamada User10, y necesitamos cambiar los permisos del archivo C:\Conta\Conta2007.xls para poder escribir en él.
Lo primero que se nos ocurre es tener que cerrar la sesión, iniciar con una cuenta administrativa, cambiar los permisos en modo gráfico, cerrar la sesión, iniciarla de nuevo con la cuenta sin privilegios y poder escribir en el archivo, no? Qué rollo verdad??
Seguro que hay alguno de por aquí que me esté leyendo que lo quiere hacer al estilo Unix y hacerlo desde línea de comandos ehh? Estaría chulo verdad? Pues se puede! ;-)
Windows incorpora un comando nativo llamado CACLS, y no es más que una herramienta que muestra o modifica la lista de control de acceso DACL.
Para realizar esta acción, tan sólo tendríamos que realizar dos pasos:

1) Iniciar una consola de comandos en modo administrador
2) Ejecutar la sintaxis del comando CACLS

Para el primer paso ejecutaremos una consola de comandos (cmd.exe) con credenciales administrativas, utilizando la herramienta nativa de Windows RunAs, con lo que nos quedaría:

runas /user:administrador cmd

Tipeamos la password de administrador y…. Vualá!! Tenemos shell con credenciales administrativas!

El siguiente paso es muy sencillo también, y para añadir a nuestro usuario (user10) a la lista de control de acceso, y con permiso de escritura, utilizaremos la siguiente sintaxis:

cacls “C:\Conta\Conta2007.xls” /E /G user10:W

Acto seguido, Windows procesará el comando y el archivo, y tendremos nuestro archivo listo para escribir en él y modificar cambios.
Una vez hayamos terminado, podemos utilizar el mismo método a la inversa, y dejar los cambios tal y como estaban.

1Saludete!

About these ads

25 comentarios en “Cambiar permisos desde línea de comandos

  1. candyPirate

    Esta genial el tip, muchas gracias, estaba arto de estar utilizando todo con clicks en windows, pero recientemente lo eh estado optiminando un poco con la consola :)

  2. Armando

    Gracias me sirvio de mucho para autimatizar permisos pero me queda una duda.
    Si quiero quitarle todos los permissos al usuario que debo poner en ligar de la W al final

  3. Sebastian

    Hola a ver si me puedes ayudar, tengo creado un archivo bat para cambiar permisos a unos archivos y carpetas, pero el problema viene a que a cada archivo o carpeta que cambio los permisos me mide confimacion, y si es unos pocos archivos o carpetas no hay problema, pero cuando son bastantes es una lata, hay alguna manera de que al crear el bar no me pida confirmacion y se haga automaticamente.

    saludos.

  4. Diego

    Me gustaria que alguin me ayude con el siguiente problema: Tengo un servidor con Win server 2003 necesito saber con que comado puedo ver listar todas la carpetas que se encuentren sobre el IIS y que permisos tienen ej: (Escritura lectura etc….)

    Gracias

  5. Augusto

    Se ve que esta bueno el comando lo voy a aplicar a ver que resultado me da, espero tener suerte pues es un servidor el cual me deja abrir y modificar archivos pero no me deja guardarlos ni sobreescribirlos…. cambiare los permisos y gracias… ya les platicare de lo sucedido posteriormente…=D

  6. Rob-F

    NO sabes cuanto habia buscado esto, por FINNN !! jaja MIL gracias hermano !!

    He creado un archivo bat que modifica cuestiones de la carpeta Windows y antes de hacerlo tenia q hacer todo ese proceso de dar permisos manualmente en cada computador que lo ejecutaba, ahora lo inclui en la lista de comandos del .bat y lo hace todo seguido y sin demoras !!!

    • Eugene

      Amigo esto es porque, NTFS es el formato en que debe estar el disco, para poder acceder a configurar opciones de seguridad, de carpeta y archivo, no podrás configurar permisos de carpeta y archivo por ejemplo en FAT32. Debes pasar tu disco a NTFS

  7. Mario

    Cuando corro el programa no funciona ya que la variable llamada “region” dentro de la ruta no me está dejando, al poner la ruta fija si funciona correctamente pero no la ocupo así porque esa carpeta no será una constante:
    ejemplo: CACLS “e:/sys/”%region%”/”T-%num%”” /e /g %usuario%:c
    que me esta fallando?
    de antemano gracias.

  8. Eugene

    Alguno sabe cómo sería el comando, en caso de querer aplicar los permisos a todos los usuarios?
    He intentado allusers, pegado y separado, he leído pero no sé si por grupo de usuarios se podría aplicar?, no encuentro tampoco ejemplos similares respecto a aplicar permisos de carpeta a todos los usuarios, en sí lo que quiero es restringir por ejemplo la escritura y dejar habilitada opción de lectura para todos los usuarios, claro está desde la línea de comandos.

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s