Skript, das ein anderes Skript als anderer Benutzer startet, wie wird der Prozess su entfernt?

338
Mandragor

Ich habe ein Bash-Skript unter Fedora Linux, das ich als Root-Benutzer ausführte und ein anderes Skript als weniger privilegierten Benutzer startet rpmbuild.

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

Inhalt von long.sh

#!/bin/sh  sleep 300 

Was passiert nun, wenn Sie Folgendes tun 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 

Wie kann ich den Prozess 67 loswerden su rpmbuild, damit nur der rpmbuildProzess verbleibt?

Oder brauche ich ein anderes Werkzeug?

Es wäre schön, wenn diese su(viele von ihnen in der Prozessliste) verschwinden würden.

0

1 Antwort auf die Frage

0
linuxdev2013

Sie können sudo (oder su -) pkill 67 ausführen und / oder sudo su - $ (Benutzername) verwenden, um das Programm auszuführen. Dies sollte die Berechtigungen des Skripts / der Skripts automatisch deaktivieren und die Eskalation des Skripts bzw. der Skripte deskalibrieren Wenn Sie es ausführen, wird es kurz vor einem --nohup iirc angezeigt.