Cambiar IP Unix desde script Python
Jaime Perea
jaime en iaa.es
Mie Nov 4 13:38:26 CET 2009
El Miércoles 04 Noviembre 2009, Félix Palazuelos Pérez escribió:
> Lo lanzo desde root siendo un usuario normal, entonces tengo que almacenar
> la contraseña en el scrip python o en un fichero y leerla desde él para
> poder cambiar a root. Ahí reside mi problema, ¿cómo almacenarla? Sólo voy a
> tener sudo en el servidor, no en los clientes.
> _______________________________________________
> Lista de correo Python-es
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
>
Hola,
He estado siguiendo este thread y sólo como una idea y relativamente
peligrosa, es no ejecutar python directamente, si no más bien a través
de un programa intermedio que llame al intérprete, el ejemplo de manual
es:
http://docs.python.org/extending/embedding.html#very-high-level-embedding
La diferencia es cambiar las protecciones al ejecutable, si cambiamos
el programa de ejemplo a
--------------
#include <Python.h>
int
main(int argc, char *argv[])
{
Py_Initialize();
PyRun_SimpleString("from os import geteuid\n"
"print 'User is',geteuid()\n");
Py_Finalize();
return 0;
}
-------------
lo ponemos en pru.c, lo compilamos
gcc -o pru pru.c `python-config --includes` `python-config --libs`
si lo ejecuto como yo, obtengo lo siguiente
./pru
User is 6001
que es mi uid
si ahora como root hago:
chown root.root pru
chmod +s pru
y ahora, como usuario hago
./pru
obtengo
User is 0
el +s del ejecutable hace que el proceso que se crea sea
bajo la uid del *dueño del fichero* (en este caso root)
Esto tiene peligro, peligro. Pero te permite no tener que escribir
en ningún sitio la clave de root, de hecho ya puestos puedes cambiar
con setuid (bajo C o python) la uid a la del usuario una vez que
ya se ha hecho lo que se necesite como root.
Saludos
--
Jaime D. Perea Duarte. <jaime at iaa dot es>
Linux registered user #10472
Dep. Astrofisica Extragalactica.
Instituto de Astrofisica de Andalucia (CSIC)
Apdo. 3004, 18080 Granada, Spain.
_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
Más información sobre la lista de distribución Python-es