Ejecutando el script de Python como otro usuario

En una caja de Linux quiero ejecutar un script de Python como otro usuario.

Ya he creado un progtwig contenedor en C ++ que llama a la secuencia de comandos, ya que me he dado cuenta de que la propiedad de ejecutar la secuencia de comandos la decide el propietario del intérprete de Python. Después de eso, cambio el progtwig C ++ a otro usuario y ejecuto el progtwig C ++.

Esta configuración no parece estar funcionando. ¿Algunas ideas?

Puede configurar al usuario con os.setuid (), y puede obtener el uid con pwd. Al igual que:

 >>> import pwd, os >>> uid = pwd.getpwnam('root')[2] >>> os.setuid(uid) 

Obviamente, esto solo funciona si el usuario o el ejecutable tiene permiso para hacerlo. Exactamente cómo configurar eso no lo sé. Obviamente funciona si eres root. Creo que es posible que necesites la marca setuid en el ejecutable de Python, y eso dejaría un agujero de seguridad WHOPPING. es posible que sea permisible si el usuario que configuró también es un usuario restringido dedicado que no puede hacer nada excepto lo que necesite hacer.

La seguridad de Unix, basada en los usuarios, la configuración y las cosas, no es muy buena ni práctica, y es fácil dejar grandes agujeros de seguridad. Una opción más segura es en realidad hacer este tipo de cliente-servidor, así que tienes un demonio que hace todo y el cliente habla con él. Luego, el demonio puede correr con una seguridad más alta que los usuarios, pero los usuarios tendrían que dar un nombre y una contraseña cuando ejecuten el script, o identificarse con alguna clave pública / privada o algo así.

Ofrezca a esos usuarios la capacidad de sudo su $dedicated_username y personalice los permisos en su sistema para que $dedicated_user tenga acceso suficiente, pero no excesivo.

Usa el comando sudo .

Para ejecutar un progtwig como usuario, el sistema debe “autenticar” a ese usuario.

Obviamente, la root puede ejecutar cualquier progtwig como cualquier usuario, y cualquier usuario puede usar su contraseña con otro usuario.

El progtwig sudo se puede configurar para permitir que un grupo de usuarios sudo un comando particular como un usuario particular.

Por ejemplo, podría crear un grupo de scriptUsers y un usuario scriptRun . Luego, configure sudo para permitir que cualquier usuario en los usuarios de scriptUsers convierta en scriptRun SOLAMENTE para ejecutar su script.