Skript, das ein anderes Skript als anderer Benutzer startet. Wie entferne ich den Su-Prozess?

Skript, das ein anderes Skript als anderer Benutzer startet. Wie entferne ich den Su-Prozess?

Ich habe ein Bash-Skript unter Fedora Linux, das ich als Root-Benutzer ausführe und das ein anderes Skript als Benutzer mit weniger Berechtigungen 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 vonlong.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, so dass nur noch der rpmbuildProzess übrig bleibt?

Oder brauche ich ein anderes Werkzeug?

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

Antwort1

Sie können „sudo“ (oder „su -“) pkill 67 ausführen und/oder „sudo su - $(Benutzername)“ verwenden, um es auszuführen. Dadurch sollten die Berechtigungen des/der Skripts/Skripte automatisch abgelehnt und zurückgesetzt werden. Während das Skript oder untergeordnete Skripts ausgeführt werden, wird jedoch, wenn ich mich recht entsinne, „--nohup“ angezeigt.

verwandte Informationen