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

229
Mandragor

У меня есть скрипт 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(многие из них в списке процессов) исчезли.

0

1 ответ на вопрос

0
linuxdev2013

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

Похожие вопросы