¿Existe algún script que se ejecute como root cuando el usuario inicia sesión?

¿Existe algún script que se ejecute como root cuando el usuario inicia sesión?

Cuando un usuario inicia sesión, necesito ejecutar un comando que necesita privilegios aumentados. No quiero darle al usuario acceso sudo para ese comando. Sólo quiero ejecutar este script para ese usuario, no para todos los usuarios.

Respuesta1

Según su comentario, parece que desea que el usuario 'fred' no tenga un shell normal, sino que ejecute el script 'foo' al iniciar sesión. Esto se puede hacer fácilmente si no esperas que Fred se esfuerce mucho por escapar de su "caja de arena".

$ cat ~fred/.bash_login
#!/bin/bash
exec /usr/local/bin/foo

## in ubuntu each user has a group of his "own"
$ sudo chown foo:fred ~fred ~fred/.bash_login /usr/local/bin/foo
## prevent fred from altering the files and directories we care about
$ sudo chmod g-w ~fred ~fred/.bash_login /usr/local/bin/foo
## make script foo run with user foo's privileges
$ sudo chmod u+s /usr/local/bin/foo 

Entonces, Fred ahora ni siquiera recibirá un mensaje de shell porque lo primero que hace su shell de inicio de sesión es reemplazarse por foo; cuando el script foo sale, se cerrará la sesión de fred. La razón por la que Fred debería carecer de motivación para salir de esta caja de arena es que muchos programas permiten abrir shells subordinados, lo que le permitiría a Fred deshacer el bloqueo del pobre que se muestra aquí.

Usar este método con "root" en lugar de algún foo que no sea superusuario puede usarse para secuestrar root, así que no lo hagas.

Respuesta2

Yo usaría chmod 6755 filename (o 6711 si no quieres que otros usuarios lo lean) y luego lo pondría en cron... Esto debería funcionar, ya que es un permiso para ejecutar este archivo como propietario. Entonces, si lo creas como root, deberías poder usarlo así...

información relacionada