2012/2/20 Gonzalo Aguirre <[email protected]>:
> Hola colisteros/as,
>  estoy administrando un pequeño cluster y para ellos puse un sistema
> de colas (SGE) a idea es que a través de un script se larga la
> ejecución al gestor del sistema y él ya ve según la carga dónde es
> mejor largar la ejecución.
>
>  Una de las ideas es que ciertos comandos que hasta ahora se accedían
> de forma directa, dejen de hacerlo y sólo se pueda acceder a través
> del sistema de colas, ya que ejecutarlo directamente sería básicamente
> como colarse :). Los usuarios si bien no tienen experiencia en linux y
> podría simplemente eliminar el directorio del PATH y en el script
> tener el path absoluto pero me parece una solución bastante pobre.
>
>  No sé si me explico bien en mi pedido. Pongo el ejemplo, hasta ahora
> todo el mundo puede ejecutar el comando, supongamos `echo'
> directamente. Con el sistema de colas hay que hacer un script
> (script.sge):
>
> --- script.sge ---
> #!/bin/sh
>
> #$ -argumento 1 para SGE
> #$ -argumento 2 para SGE
>
> /bin/echo "hola hola"
> --- script.sge ---
>
> y depsués largarlo con el gestor
>
> $ qsub ./script.sge
>
>
> pero si algún usuario se le ocurre hacer un:
>
> $ echo "hola hola"
>
> que no tenga acceso.
>
> Gracias de antemano!
>

No sé qué es SGE, pero si querés que los usuarios no usen el shell
regular (que es usualmente bash, o dash para los debians-ubuntus)
alcanza con que le asignés al usuario un programa distinto, que
inclusive podría ser un script. Eso está configurado en el archivo
/etc/passwd y se puede cambiar con el comando adduser ( y
probablemente otros).

Este programa que cargarías como shell del usuario "capturaría" los
comandos, me refiero a que sería otro shell que invocaría a SGE (o lo
que sea) en vez de hacer la llamada de sistema con un fork. Es
probable que ese programa ya lo haya inventado alguien si estás
trabajado en un escenario no extremadamente único. Así todo lo que
ejecuten quedará encolado.

Otra manera es usar un shell que limite funcionalidades para que no
puedan ejecutar tareas que consumen recursos que deberían ir al
cluster. Lo que se me viene a la mente (sin ser un entendido) es
darles de shell un busybox que excluya el conjunto de funcionalidades
en cuestión.

En todo caso otro script que invoque a qsub vuelve a problar la
variable $PATH. Aunque tené presente que si el usuario es entendido
podría cargarla por sí solo.


Bueno, contanos tus avances y por favor danos una introducción o brief
de lo que es SG

-- 
             .::MAbeeTT::.

 mabeett [at] gmail [ dot] com

Responder a