Por ejemplo, me gustaría comenzar a ejecutar un proceso en segundo plano SECRETAMENTE en un servidor Ubuntu, pero cada vez que alguien, excepto yo, inicie sesión en el servidor, ese proceso debe ser cancelado por ese usuario. ¿Es posible crear un proceso como este? (Tengo sudo
cuenta y puede modificar /etc/bash.bashrc
)
¡Gracias!
Respuestas:
Tenga en cuenta que lo que sigue puede comprometer la seguridad de su sistema de varias maneras.
Cree un script que se encargue de matar ese proceso suyo (llamémoslo proceso P). Luego, otorgue a todos los usuarios permiso para ejecutar este script en sudoers. Finalmente agregue la llamada adecuada para este script con sudo en
/etc/bashrc
.Por ejemplo, supongamos que sabe que su proceso se inicia desde
/usr/local/sbin/myproc
y que quieres eliminar todos esos procesos inmediatamente cuando alguien inicia sesión, así que usarás la estrategia grep and kill simple para matarlos.Entonces, primero ponga lo siguiente en
/usr/local/sbin/killmyprocs
:Probablemente quiera algo más sofisticado si realmente procede e implementa esto. Así que asegúrese de crear un script que atrape las señales apropiadas y, en general, haga las cosas de manera segura.
Segundo, dé a todos los usuarios permiso para ejecutar este script en
/etc/sudoers
agregando en ella:El tercer y último paso es agregar una llamada sudo a su script en
/etc/bashrc
:Reemplace con su propia cuenta para evitar matar sus procesos "secretos" al iniciar sesión usted mismo.
Para resumir: 1) cree un script que no produzca resultados pero que elimine los procesos que desea matar, 2) agregue la entrada apropiada a
/etc/sudoers
para que cada usuario en su sistema pueda ejecutar ese script como root, 3) agregue una llamada a su script a través de sudo a/etc/bashrc
(o/etc/profile
).Una advertencia:
/etc/bashrc
(o/etc/profile
para el caso) se obtienen solo para shells interactivos. Esto significa que es bastante fácil para un usuario hacer ssh yourhost 'ps auxw' y encontrar su proceso en la tabla de procesos, no se eliminará con el mecanismo introducido anteriormente porque no se consultan los archivos de inicialización de shell. Hay una manera de evitar eso, usandoForceCommand
en ´sshd_config` pero eso queda como un ejercicio para el lector.Para concluir, quisiera recordar nuevamente que esto tiene implicaciones obvias para la seguridad. Esto también suena muy parecido a tratar de hacer una puerta trasera a un sistema al que no tienes acceso completo, pero no es mi preocupación aquí (si tienes que preguntar estas cosas al superusuario, te sorprenderemos lo suficiente). .
fuente
¿Qué quiere decir con "el proceso debe ser eliminado por ese usuario"?
A) ¿Desea que el usuario mate su proceso que él / ella no posee?
Haga un script para finalizar el proceso, luego configure setuid con
chmod u+s
(Esto puede ser un gran agujero de seguridad a menos que sepa lo que está haciendo).O
B) ¿Desea que el proceso note que un usuario inicia sesión y se suicida?
Bueno, eso es lo que harías.
fuente