0
我想從網頁中殺死一個進程。python os.sytem從cgi殺死進程
import os
os.system(「killall Laser」)
print("Content-Type: text/HTML;charset=utf-8")
print("")
print("Laser has been restarted.")
將文件權限設置爲777,並設置了setuid和setgid。當我從命令行運行腳本但不在瀏覽器中時,該腳本起作用。
這是在ubuntu上運行,並且webserver是lighthttp。
該進程由root擁有。
import subprocess as sub, cgitb
cgitb.enable(display=0, logdir="/tmp")
p = sub.Popen(['killall;', 'Laser'],shell=True,stdout=sub.PIPE,stderr=sub.PIPE)
output, errors = p.communicate()
print("Content-Type: text/HTML;charset=utf-8")
print("")
print(output)
和:
import subprocess as sub, cgitb
cgitb.enable(display=0, logdir="/tmp")
cmd1 = "su root"
cmd2 = "killall Laser"
p = sub.Popen("{}; {}".format(cmd1, cmd2),shell=True,stdout=sub.PIPE,stderr=sub.PIPE, close_fds=True)
output, errors = p.communicate()
print("Content-Type: text/HTML;charset=utf-8")
print("")
print(output)
任何想法
我也嘗試使用?
馬特
python腳本工作正常。該過程由root啓動,所以我認爲網頁沒有權限刪除它。有沒有辦法在Python中傳遞這樣的東西:su -s root在嘗試殺死進程之前? – Droter