скрипт, который запускает другой скрипт от имени другого пользователя, как удалить процесс su?

скрипт, который запускает другой скрипт от имени другого пользователя, как удалить процесс su?

У меня есть bash-скрипт на Fedora Linux, который я запускаю от имени пользователя root, а он запускает другой скрипт от имени пользователя с меньшими привилегиями rpmbuild.

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

Содержаниеlong.sh

#!/bin/sh

sleep 300

А что произойдет, если вы сделаете 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

Как мне избавиться от процесса 67, su rpmbuildчтобы rpmbuildостался только этот процесс?

Или мне нужен другой инструмент?

Было бы неплохо, если бы они su(а их много в списке процессов) исчезли.

решение1

Вы можете запустить sudo (или su - ) pkill 67 и/или использовать sudo su - $(username) для его запуска, что должно автоматически отозвать права доступа и понизить уровень разрешений скрипта(ов), однако пока этот скрипт или какие-либо дочерние скрипты запущены, он БУДЕТ отображать отсутствие --nohup iirc.

Связанный контент