script que inicia outro script como outro usuário, como remover o processo su?

script que inicia outro script como outro usuário, como remover o processo su?

Eu tenho um script bash no Fedora Linux, que executo como usuário root, que inicia outro script como usuário menos privilegiado rpmbuild.

#!/bin/sh
# start as another user, fork
su rpmbuild -c ./long.sh &
# disown  the job
disown
# run some other long running things. 

Conteúdo delong.sh

#!/bin/sh

sleep 300

Agora, o que acontece se você fizer um ps aux:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root        67  0.0  0.0  81884  4080 ?        S    12:42   0:00 su rpmbuild -c ./long.sh
rpmbuild    68  0.0  0.0   9512  2340 ?        Ss   12:42   0:00 /bin/sh ./long.sh
rpmbuild    69  0.0  0.0   4316   628 ?        S    12:42   0:00 sleep 300

Como posso me livrar do processo 67, o su rpmbuild, para que apenas o rpmbuildprocesso permaneça?

Ou preciso de outra ferramenta?

Seria bom se estes su(muitos deles na lista de processos) desaparecessem.

Responder1

Você pode executar sudo (ou su - ) pkill 67 e/ou usar sudo su - $(username) para executá-lo, o que deve negar e diminuir automaticamente as permissões do(s) script(s), no entanto, enquanto esse script ou qualquer filho estiver executá-lo IRÁ mostrar menos de um --nohup iirc.

informação relacionada