¿Cómo ejecutar programas con otro usuario con mayores privilegios?

Situación: tenemos una computadora que tiene cuentas de usuario comunes y una sola cuenta de administrador. Resulta ser que estos usuarios comunes no pueden ejecutar determinados programas, como por ejemplo aquellos que necesiten tener acceso a la grabadora de CD, ya que necesitan privilegios de administrador…

Obviamente, como administradores del equipo, no queremos que los usuarios sepan la clave de ningún usuario con privilegios, ya que esto expondría demasiado a la computadora. En GNU/Linux, nunca se usa la cuenta de root para trabajar cotidianamente, pero en Windows, es muy común utilizar la cuenta de Administrador para trabajar, navegar o escuchar música. Es simplemente así… y no queremos esto . Pero necesitamos que algunas tareas las hagan ellos mismos, porque sino nos van a estar molestando todo el tiempo, y tampoco queremos esto. Reformulemos la pregunta inicial, para que sea más descriptiva:

¿cómo hacemos para que usuarios sin privilegios utilicen programas que requieren mayores privilegios, sin que tengan acceso a la cuenta de administración y sin arriesgar la seguridad del equipo?

En GNU/Linux, esto es muy facil. Tenemos el comando sudo que nos soluciona el problemad e manera muy simple. Así pues, si queremos ejecutar el comando ls como si fuésemos el usuario pepe, simplemente escribimos sudo -u pepe ls y listo. Tenemos el parámetro -u que nos permite especificar el usuario. Así de simple.

¿y bajo Windows? Tranquilos, Windows 2000 y XP tienen un comando para hacer esto (asumo que Vista también, no es tenido el placer de probar estos usos avanzados en este sistema). Se llama runas (ejecutar como), y se usa así: runas /user:pepe comando_a_ejecutar

Obviamente, si el usuario está protegido con contraseña, el sistema va a pedir una clave. En Linux esto no es necesario, ya que el sudo permite decir que puede hacer cada usuario (con lo cual, el usuario solo debe conocer su propia contraseña, y no la de otro usuario). Pero Windows es más chato en este aspecto, y la solución parece ser que el usuario que está ejecutando el runas sepa la clave del otro usuario (posiblemente un administrador). Para evitar esto, podemos usar el programa CPAU, que permite por un lado automatizar el runas y por el otro encriptar la contraseña para que las personas no la sepan. El comando se usa así:

cpau -u usuarioAdministrador -p contraseñaAdministrador -ex programaAEjecutar (ejemplo cmd)

Ufa! ¿pero tengo que escribir comandos? eso lo hacen los nerds de linux, no lo usuarios de Windows XP! Tranquilos, amantes del doble clic. Hay una solución para todos sus problemas; acá les dejo un mini tutorial:

Se puede armar un proceso por lotes para automatizar esta tarea y permitir que cualquier
usuario comun lo use sin tener que saber la contraseña de administrador, y sin la posibilidad
de modificar el programa que se ejecuta.

1) Copiar el archivo CPAU.exe dentro de la carpeta donde está el programa (el ejecutable) que se quiere ejecutar
2) Abrir un command (cmd) y ir hasta la carpeta donde se copió el archivo CPAU.exe
3) Crear un proceso (job) encriptado. Para eso escribir:

cpau -u usuario_administrador -p clave_usuario -ex programa_a_ejecutar -file  nombreArchivoNuevo -enc
Con esto se crea un nuevo archivo, con la orden encriptada (para poder ponerlo en cualquier usuario sin que éste vea la contraseña de administrador)
4) Cada vez que se quiera ejecutar el programa con derechos de administrador, se deberá escribir:

cpau -file nuevoArchivoACrear -dec -profile

donde nuevoArchivoACrear es el archivo que se ha creado en el paso 3. Este archivo tendrá el nombre del usuario ingresado en el paso 3, la clave y el comando a ejecutar, todo encriptado de manera que es ilegible para ojos curiosos.

Solo nos queda crear un archivo .bat, que tenga exactamente esta última línea, y guardarlo en la misma carpeta donde está el ejecutable del programa y el cpau. Y para simplificar aún más, creamos un acceso directo en el escritorio a ese .bat.

Si si, es mucho más complicado bajo Windows porque este sistema no viene en principio preparado para este tipo de tareas (extraño, considerando que el usuario común no puede hacer nada con la PC y siempre se termina necesitando un administrador). Pero bueno, como les dije antes, todo tiene solución.

9 comentarios sobre “¿Cómo ejecutar programas con otro usuario con mayores privilegios?

  1. Donde se puede encontrar el archivo CPAU.exe,
    y si se pudiera encontrar otra forma de ejecutar programas con privilejos de administrador en XP me lo pudieran decir.

    (Lo que quiero hacer es un bat que me ejecute un programa cada ves que se inicie una Sesión en mi PC pero para ejecutar el programa hay que tener derechos administrativos
    «yo tengo la contraseña del administrador «)

    * Que pudiera hacer para lograr eso que quiero

    Espero que me puedan ayudar garcias

  2. realice todos los pasos pero me pide la contraseña de administrador de nuevo… como podria lograr que se ejecute el programa directamente como administrador sin q me pida la contraseña? porque en ese caso los usuarios van a estar dependientes de los administradores del sistema para ejecutar el programa.

    1. Usando el CPAU y siguiendo los pasos (el paso 3 y 4 especificamente) te sigue pidiendo la password?
      te genera el archivo encriptado? la ruta a este archivo (que se solicita en el paso 4) es correcta?

  3. Pregunta..
    He seguido los pasos y en mi equipo funciona pero cuando publico la carpeta y trato de ejecutarlo en otro equipo direfente al mio no funciona… por que?

    1. Hola Carlos.
      Podría ser que en tu .bat tengas las rutas fijas, y no coincidan con la otra PC donde lo estás ejecutando? o el usuario que has puesto en una PC no exista en el otro?

  4. Y como le hago si quiero ejecutar el servicio y este se encuentra en una carpeta compartida, para evitarme tener que copiar los archivos maquina por maquina.

  5. buenas quisiera saber si me pueden ayudar necesito un ejecutable ya que quiero actualizar algunos juegos que contienen usuario y clave serian tan amables en ayudarme o explicarme como puedo agregar al .bat o algun otro para que al ejecutarlo el mismo ponga esos datos gracias

Deja un comentario