¿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.

About these ads

8 comentarios to “¿Cómo ejecutar programas con otro usuario con mayores privilegios?”

  1. yelian Says:

    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. gonetil Says:

    Puedes fijarte aqui:
    http://www.joeware.net/freetools/tools/cpau/index.htm
    en el boton que dice Download

  3. carmen Says:

    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.

    • gonetil Says:

      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?

  4. carlos Says:

    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?

  5. carlos Says:

    Tiene que ver que estoy ejecutando un archivo .bat?

    • gonetil Says:

      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?

  6. Christian Marin Says:

    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.


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

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

%d personas les gusta esto: