Kill procesos del mismo usuario

En donde trabajo uno de los peticionarios ha pedido una serie de permisos sudo para un usuario local de una de las máquinas.

Varios de los permisos se pueden dar pero uno de los que piden es poder ejecutar un kill -9 , y claro, teniendo en cuenta que ese kill lo podría ejecutar para matar cualquier proceso que esté corriendo en esa máquina le diremos que no se le pueden conceder.

En lo que había pensado es darle permisos sudo de kill pero únicamente en procesos que sean propiedad de ese usuario, pero no veo forma alguna de poder hacer lo que indico.

Por mucho que he mirado no he dado con nada que me sirva, pero aprovecho el basto conocimiento que tienen los compañeros del foro a ver si a alguien se le ocurre alguna alternativa.

Gracias de antemano a cualquier idea que se os pueda ocurrir.
Pregunto, ¿no es ese el funcionamiento normal de kill desde una cuenta de usuario? No puedo probarlo ahora mismo, pero diría que solo puedes matar los procesos de los que eres propietario o del mismo grupo y con privilegios.

Si estoy en lo cierto, no tendrías que darle permiso para usar kill con sudo, simplemente debería usar kill con su usuario, nunca como root.
Esog Enaug escribió:Pregunto, ¿no es ese el funcionamiento normal de kill desde una cuenta de usuario? No puedo probarlo ahora mismo, pero diría que solo puedes matar los procesos de los que eres propietario o del mismo grupo y con privilegios.

Si estoy en lo cierto, no tendrías que darle permiso para usar kill con sudo, simplemente debería usar kill con su usuario, nunca como root.

Vale sí, me expliqué mal.

Realmente piden poder ejecutar kill para matar un proceso ejecutado por otro usuario.

Es decir, en la máquina hay un servicio que lo arranca el usuario1 y el usuario2 necesita poder matar ese servicio en momentos puntuales.

Lo acabamos de comentar con un compañero y le vamos a proponer al peticionario darle permisos al usuario2 para poder parar el servicio como tal, sin implicar a kill.
Creo que lo mejor es que tenga acceso al usuario 2.
Otra opción es crear un script o alias en sudoers que pueda ejecutar con los permisos necesarios y que mate el proceso, esto contando que siempre sea el mismo proceso.
Si no pueden tener permisos para logarse como el usuario 2... solo veo lo que indica KePeRHeLL, crear un script con permisos de ejecución, yo lo haría con root para que no tengan permisos de modificación sobre el script esos usuarios por ejemplo y un Cmnd_Alias en el sudoers que ejecute el script , vamos así a lo cutre cutre cutre:

#!/bin/sh

PID=$1
USER=`ps -q $PID -o user | tail -1`

if [ x"${USER}" = x"usuario2" ]
then
        kill -9 $PID
else
        echo "El owner del proceso no es el usuario usuario2"
        ps -q $PID
fi


Es muy cutre si... pero yo no me mareaba, lo acabo de probar y funcionar funciona... lo metes en el sudoers por ejemplo así:

Cmnd_Alias KILLUSUARIO2 = /path_completo/script.sh *
usuario1 ALL=(ALL:ALL) KILLUSUARIO2


Y cuando el usuario 1 quiera matar el proceso del usuario 2... es ejecutarlo con sudo y muerto:

sudo /path_completo/script.sh pid


Si no quieres que tenga que meter el path completo le creas un alias en su bash_profile, bash_aliases o como lo tengáis configurado y listo.

alias matar='sudo  /path_completo/script.sh'


Y que ejecuten

matar pid
Y porque no le dais permisos de sudo con -u a usuario2?

sudo sin argumentos te eleva privilegios a root, pero se puede usar con -u para cambiar a otro user. Una entrada en sudoers para que user1 pueda hacer kill -9 como user2 seria viable.

Pero es feo feo, si hablamos de un servicio suena mejor lo de permitirle parar/encenderlo
Gracias a todos por las proposiciones y ideas.

Al final se crearon unos scripts de arranque y parada del servicio y se le han dado permisos de sudo sobre ellos al usuario pertinente.
7 respuestas