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

0

Eu tenho um script bash no Fedora Linux, que eu 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 de long.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 processo rpmbuild permaneça?

Ou preciso de outra ferramenta?

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

    
por Mandragor 12.03.2017 / 14:36

1 resposta

0

Você pode executar sudo (ou su -) pkill 67 e / ou usar sudo su - $ (nome de usuário) para executá-lo, o que deve automaticamente descartar e reduzir as permissões do (s) script (s), enquanto esse script ou qualquer criança que estiver rodando mostrará falta de um --nohup iirc.

    
por 25.03.2017 / 06:02