麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Python > 正文

Python實現在Linux系統下更改當前進程運行用戶

2020-02-23 06:23:17
字體:
來源:轉載
供稿:網友

在上一篇文章中,我們講了如何在linux上用python寫一個守護進程。主要原理是利用linux的fork函數來創建一個進程,然后退出父進程運行,生成的子進程就會成為一個守護進程。細心觀察的可能會發現,這個守護進程的運行身份是執行這個程序的用戶,如果把這個守護程序加入到系統的服務項,那么這個守護程序的執行身份應該是root。

一個情況出現了,root的權限比較大,如果通過這個root身份的守護程序來進行操作,危險性是比較大的。一種好的辦法是生成一個身份為root的master進程用來接受請求,生成若干個woker進程用來處理請求,這樣就不會出現權限過大問題。事實上,現在很多軟件,nginx,mysql,apache,vsftpd等幾乎都是這樣做的。

那么,怎么樣在linux中更改子進程的運行身份呢?,實際上linux提供了這樣的函數,來看一下python代碼:

#!/usr/bin/env pythonimport time,os,pwd,sys,signallogfile="/tmp/d2.log"#step one, get the username you want to running withtry:    user=sys.argv[1]except:    user=raw_input('Please input a username in this machine you want to run this program: ')if user=="":sys.exit(-1)try:    uid=pwd.getpwnam(user)    uid=uid.pw_uidexcept:    print "Uer not exists!"    sys.exit(-1)#step two:Generation of daemonpid=os.fork()if(pid):sys.exit(0)os.setsid()os.chdir("/")os.umask(0)#step three :fork againpid=os.fork()if(pid==0):    os.setuid(uid)    os.setsid()    os.chdir("/")    os.umask(0)log=open(logfile,'a')log.write('Daemon start up at %s/n'%(time.strftime('%Y:%m:%d',time.localtime(time.time()))))log.close()def reload(a,b):  log=open(logfile,'a')  log.write('Daemon reload at %s/n'%(time.strftime('%Y:%m:%d',time.localtime(time.time()))))  log.close()while True:  signal.signal(signal.SIGHUP,reload)  time.sleep(2)

運行這個程序,輸入nginx(nginx為系統中已經添加的用戶),然后用ps aux|grep python查看系統當中運行的python程序,可以看到,有一個woker進程的身份已經改變了成為nginx了:

[root@home ~]# ps aux|grep pythonroot   1139 0.0 0.5  5288 2372 ?    Ss  22:40  0:00 python ./d2.py nginxnginx   1140 0.0 0.5  5288 2360 ?    S  22:40  0:00 python ./d2.py nginxroot   1151 0.0 0.1  2336  648 pts/0  S+  22:50  0:00 grep python

因為身份為nginx的進程是用來處理請求的,那么一些屬于root的權限就不會被進程調用,也可以通過設置文件的權限,對進程操作單個文件進行限制,達到比較好的權限控制效果,減少安全隱患。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久97视频 | 国人精品视频在线观看 | 精品国产一级毛片 | 精品三区视频 | 91嫩草丨国产丨精品入口 | 久久久久久久久久亚洲 | 国产高潮失禁喷水爽到抽搐视频 | 免费看欧美一级特黄a毛片 九色com | 久久99国产综合精品 | 高清av免费| 精精国产xxxx视频在线播放7 | 日韩欧美激情视频 | 欧美电影在线观看 | 久久久久一区二区三区四区五区 | 黄色成人短视频 | 午夜热门福利 | 伊人网站 | 久久午夜神器 | 成人免费乱码大片a毛片视频网站 | 国产精品爆操 | 99pron| 国产在线精品一区二区 | 国产91久久久久久 | 久久中文免费 | 久久国产免费视频 | 成人羞羞国产免费游戏 | 国产精品一区二区三区在线 | 乱淫67194| 欧洲成人综合网 | 久久综合伊人 | 韩国精品视频在线观看 | 国产欧美亚洲精品a | 欧美日韩在线播放 | 久久久一区二区三区精品 | 国产成人在线免费看 | 成人免费自拍视频 | 欧美999| 中文字幕亚洲欧美 | 欧美成人一二三区 | av电影免费播放 | 日本网站一区二区三区 |