SUDO para Windows

Todos los administradores de sistemas estarán al corriente desde hace años de la posibilidad de escalar privilegios que tiene Windows –siempre y cuando se conozca el nombre de usuario y contraseña de un usuario con privilegios de administrador local o en el dominio– así que ese artículo va dirigido al usuario común. Si, a vos te hablo.

Puede que algún día esto te venga bien así que acordate, Lo viste en alt-tab:

Es muy común por ejemplo necesitar instalar una aplicación X y no poder por no disponer de los privilegios necesarios, atolladero del que se sale fácilmente haciendo clic con el botón derecho del mouse sobre setup.exe y click en “Ejecutar como“, que te presentará una lista de usuarios disponibles de entre los cuales elegir o la posibilidad de tipear a mano el nombre de un usuario N en el dominio que disponga de los privilegios necesarios.

Hasta ahí lo de siempre, nada nuevo.

¿Y cuando necesitás por ejemplo cambiarle el número de IP a la placa de red, cambiar la configuración de pantalla o hacer modificaciones en el administrador de dispositivos?

Ahí es donde se pone un poco mas complicada la situación, (nada para volverse loco, al lado de Linux, esto es coser y cantar), pero gracias a esta especie de precario “sudo” que tiene Windows podemos zafarnos del inconveniente y hacer las modificaciones necesarias sin la incomodidad de cerrar sesión e iniciar como otro usuario con privilegios o usar el modo cambio rápido de usuario para iniciar una segunda sesión en Windows, cosa que rompe bastante las pelotas, sobre todo cuando estás conectado por cualquier otra cosa que no sea RDP (Leasé:  VNC/Teamviewer o similar).

El que hace toda la magia es un tal “runas“, un comando pensado para la línea de comandos, valga la redundancia, y que podés llamar desde inicio ejecutar:

Run AS

(Ejecutando un CMD para un usuario diferente del que inició sesión en Windows)

Una vez que hayas podido abrir una consola de comandos para un usuario privilegiado, todos los comandos que tipees ahí dentro se ejecutarán sin las restricciones aplicadas al usuario común:

Comando Run AS

(CMD de Windows, lista para recibir ordenes que ejecutará como usuario privilegiado)

¿Cambiar las propiedades de pantalla?

control desk.cpl

¿Abrir el administrador de dispositivos?

devmgmt.msc

¿Cambiar la configuración de alguna de las placas de red?

control ncpa.cpl

También podrías usar netsh que si bien usa una sintaxis bien autoexplicativa y simple –casi pseudo-codigo– necesita de tantos parámetros distintos que se vuelve complejo de memorizar, por ejemplo:

netsh interface ip set address wifi static 192.168.0.110 255.255.255.0 192.168.0.1 1

Donde wifi es el nombre arbitrario que le di a mi conexión de red inalámbrica, que por defecto se llamaba precisamente eso: “Conexión de red inalámbrica”

Etcétera, etcétera, etcétera.

15 Comentarios

  1. Yo cuando ocupaba XP con privilegios limitados para evitar escribir a cada rato el comando “runas /user:administrador ” me terminé haciendo un .bat en la carpeta system32 llamado sudo.bat que tenia “runas /user:administrador %*”. Ahora con Windows 7 ya no hace falta porque con el UAC si el programa requiere derechos de administrador te pedirá la confirmación/contraseña automáticamente lo que es mucho más cómodo, y por línea de comandos tengo el programa elevate.exe que ejecuta como administrador el programa pasado por parámetro, previa autorización del UAC.

    Si vas a instalar un programa que viene como .msi, como administrador debes ejecutar “msiexec /i archivo.msi”

    Finalmente cuando instalo Windows, le cambio los nombres a las interfaces para que en los comandos sea más fácil, porque con el nombre por defecto como tiene espacios hay que ponerle comillas dobles y el acento de la palabra inalámbrica.

    • Si, es verdad que a partir de Windows 6, hay un servicio que detecta automáticamente cuando una aplicación necesita escalar privilegios y te tira de una el cartel para que lo autorices. Sin embargo, hay algunas aplicaciones que tienen una interfaz para cada tipo de usuario (como por ejemplo el administrador de dispositivos, que podés entrar tanto como administrador como usuario estándar, obvio que con distintas posibilidades para cada uno), y en ese caso si habría que usar el runas.
      Saludos

  2. Si, ya lo venía haciendo a todo esto. Lo que si nunca pude hacer, y acá Juan apelo a tu sapiencia (o a la de cualquier otro alt-tabero), es ejecutar un explorador de archivos (o sea, un explorer) como administrador desde un usuario limitado. Eso que en Linux harías facilmente con un “kdesu konqueror”, o “gksu nautilus” o lo que corresponda… ¿Alguien puede con mi dilema?
    Desde ya, muchas gracias.

    PD: no vale contestar que usando el cmd podés navegar por los ficheros, por que es un reverendo dolor de huevos (a menos que Windows tenga instalado por defecto algo como el mc, ahí si me cerrarían la boca).

  3. Para los pcs con Xp o para crear accesos directos de programas que necesitan derechos de administración en usuarios limitados es una bendición.

    Y es que es triste que para grabar un cd en XP necesites derechos de administración ¬¬, prácticamente solo por poner un .ink de imgburn valía la pena usar runas XD.

  4. Ever, El truco está en usar /separate como parámetro:

    runas /user:administrador “explorer.exe /separate”

    ¡Saludos!

  5. Que tal? Esto lo aprendi de otra pagina que se llama My Geek Side, (perdon por el spam pero para mi es importante nombrar la fuente)

    Escalada de privilegios en Win xp
    Ejecutar cmd desde algun usuario con privilegios de administrador.
    Escribir time, para saber bien que hora tiene la computadora (a veces usa el formato am/pm y a veces el formato 24 horas)
    Una vez sabido ese dato (supongamos son las 12:34:25, entonces escribimos:
    at 12:35 /interactive cmd.exe
    Cuando llegue esa hora se nos abrirá otra ventana de linea de comandos solo con el prompt SYSTEM … ah si me olvide decirles sirve para subir hasta el usuario SYSTEM!!!

    Despues de esto cerramos la anterior ventana que teniamos, dejamos la del SYSTEM, cerramos el explorer con Ctrl+Alt+Supr, seleccionamos explorer y lo cerramos, ahora volvemos a la ventana de comandos del SYSTEM y ejecutamos explorer, para que se cargue el sistema que maneja las ventanas y listo.

    Sirve mas que nada para acceder a carpetas ocultas y eliminar cierto virus que no me acuerdo como se llamaba. Nos vemos chicos!

    • ¡WOW!

      Eso si que es sudo con todas las letras.

      Me lo llevo y con su permiso me gustaría replicarlo en un post, en este blog o en el hilachento, todavía no lo decido.

      ¡Saludos!

  6. Si era para mi el comentario anterior: podes podes, yo no tengo drama, nombra la fuente nomas, me alegro de haberte ayudado, cualquier cosa que tengas dudas decime a ver si te puedo dar una mano, nos vemos!

  7. También admite el parámetro /savedcred ideal para meter en un script .bat, te pide la clave una sola vez y después corre siempre como ese usuario sin pedir la clave… ideal para correr esos molestos programas que tienen que ser ejecutados como administrador “si o si”, o que desparraman archivos y claves de registro por todos lados y es incómodo andar cambiando todos los permisos. Muchas veces leí que puede traer problemas de seguridad pero yo nunca tuve un drama… úsese bajo su propio riesgo!

  8. Así que cambiar una IP en GNU/Linux es complicado!? PERO DE QUE BALDOSA SALISTE!!!

    Para vos que escribís papafritas sin sal en un medio que te lee, posiblemente, gente que no conoce del tema y se MAL INFORMA POR TU CULPA, mirá qué difícil:

    # ifconfig {interfaz de red} {ip estática preferida} up

    Viste que complicado era!!?

    • Convengamos que eso que decís no es “simple” para alguien que no es ávido en la informática.

      No es compilar un Kernel, claro, pero el hecho de:

      a) saber acceder a una consola
      b) ejecutar un comando
      c) conocer CUAL DE TODAS las interfaces es eth0 o eth1

      Es mucho mas difícil que el par de clics que “pide” Windows.

      Seamos buenos y no nos hagamos los cancheros, que no aporta.

  9. Necesito saber como hacer que un pc primero entre a un dominio linux y luego mapear discos en el mismo pc!

    Para mapear los discos debo de estar dentro del dominio. Lo que estoy haciendo es en un mismo .bat las 2 cosas pero me corre los 2 procesos juntos.

    Es algo que me urge y necesito de su ayuda!

    Muchas gracias!

    Saludos!

  10. El articulo comienza con:

    “… -siempre y cuando se conozca el nombre de usuario y contraseña de un usuario con privilegios de administrador local o en el dominio-… ”

    Pues creo que si sabes ese “dato” no tiene caso hacer lo demas, te escalas directamente los privilegios desde el panel de control y cuando te pida la contraseña la agregas y ya.

Dejar respuesta

Please enter your comment!
Please enter your name here