php通過sudo執行root指令
PHP是一種很強大的語言,那麼下面就一起來看他在指令方面的應用吧!下面是本站小編精心為大家整理的php通過sudo執行root指令,希望對大家學習有幫助,更多內容請關注應屆畢業生網!
1.高級的用法如限制主機、用户組、命令組的用法可以參照下面的規則,詳細可參看"man sudoers": Host alias specification : Host_Alias <主機組名>=<主機名1>,<主機名2> User alias specification : User_Alias <用户組名>=<用户名1>,<用户名2> Cmnd alias specification : Cmnd_Alias <命令集名>=<命令1>,<命令2> User privilege specification : <用户名> <主機組名>=([sudo目的角色])[NOPASSWD:]<命令1>,<命令2> : ([sudo目的角色])[NOPASSWD:]<命令1>,<命令2> sudo的默認目的角色為root;沒有配置"NOPASSWD"參數,則默認5分鐘後再次用sudo需要重新驗證身份(即輸入密碼)。 sudo的使用,常用參數解釋:
-b 在後台執行指令。 -H 將HOME環境變量設為新身份的HOME環境變量。 -k 結束密碼的有效期限,也就是下次再執行sudo時便需要輸入密碼。
-l 列出目前用户可執行與無法執行的指令。 -p 改變詢問密碼的提示符號。 -s 執行指定的shell。 -u<用户> 以指定的用户作為新的身份。若不加上此參數,則預設以root作為新的身份。 -v 延長密碼有效期限5分鐘。備註 : 1.使用sudo時,雖然是以目的用户(如root)的身份執行命令,但是環境變量並沒有變成目的用户的,所以執行命令是要給出絕對路徑,如普通用户需要輸入"sudo /sbin/ifconfig"後才能執行root的ifconfig命令。
2.要記錄日誌需要在/etc/sudoers添加"Defaults logfile=/var/log/"php通過sudo執行root指令 例如 apache使用nobody用户運行,現在需要通過php來重啟apache 首先編輯 /etc/sudoers 使用 visudo來編輯 #visudo 在最下面添加一行 nobody ALL=NOPASSWD:/usr/local/apache/bin/apachectl restart 然後註釋掉文件中的Defaults requiretty這行 否則會出現sudo: sorry, you must have a tty to run sudo的錯誤 保存退出即可 測試 寫一個php文件,內容如下 sudo使用 sudo的作用在man中概括為"execute a command as another user",即以另外一個用户的身份來執行一條命令。 之所以想到這條命令是因為前段時間公司服務器上的文件莫名全部消失而導致的系統重裝,追根朔源,系統的安全措施不夠到位。 1. 登陸到機器上的用户為使用方便,全部使用root用户 密碼過於簡單,並且沒有做相應的定期更換 3.通過telnet登陸的'用户大部分為同一個用户,造成系統記錄多是以該用户名記錄的,雖然可以通過IP地址查證本人,但是IP的偽裝確是再容易不過的事 為解決第一和第三個問題,可以實行“實名制”,即為每個用户分配一個用户名,所有用户對系統的使用必須通過自己的用户名來完成。 那麼一些必須由root用户才能進行的操作就以sudo的方式來執行,因為對sudo的使用是有記錄可查的,那麼大部分用户的行為也就是可以記錄的了。
sudo可以為每一個用户單獨授權,授權(也就是用户可以執行的命令)是命令的條數為單位的。 sudo的配置在/etc/sudoers文件中完成,使用專用的"visudo"命令來編輯(visudo保證用户能夠安全的編輯/etc/sudoers文件,如語法檢查、並行編輯等)。 最簡單的/etc/sdoers文件如下: # sudoers file. # # This file MUST be edited with the 'visudo' command as root. # # See the sudoers man page for the details on how to write a sudoers file. # # Host alias specification # User alias specification # Cmnd alias specification # Defaults specification # User privilege specification root ALL=(ALL) ALL gongam ALL=NOPASSWD:/sbin/ifconfig #gongam
ALL=/sbin/ifconfig # Uncomment to allow people in group wheel to run all commands # %wheel ALL=(ALL) ALL # Same thing without a password # %wheel ALL=(ALL) NOPASSWD: ALL # Samples # %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom # %users localhost=/sbin/shutdown -h now 僅在原始文件上添加了紅色的兩行,以#開頭的行為註釋行。 "gongam ALL=NOPASSWD:/sbin/ifconfig"的意思是允許gongam這個用户在任何主機登陸使用"sudo /sbin/ifconfig"命令並且不需要輸入密碼。 仿照這個文件我們就可以為特定用户賦予特定
-
提高PHP執行效率的50個技巧
PHP是一種HTML內嵌式的語言,是一種在服務器端執行的嵌入HTML文檔的腳本語言,下面是小編為大家整理的提高PHP執行效率的50個技巧,歡迎參考~1、用單引號代替雙引號來包含字符串,這樣做會更快一些。因為PHP會在雙引號包圍的字符串中搜尋變量,單引號則不會,注意:只有echo...
-
ThinkPHP中自動驗證
學無止境,剛開始學習PHP會覺得簡單,但是越學會越難。下面是小編整理的關於ThinkPHP中自動驗證的知識,希望對大家有用,更多消息請關注應屆畢業生網。ThinkPHP中自動驗證:array(‘字段’,‘驗證規則’,‘錯誤提示’[,‘驗證條件&rsqu...
-
php計算兩個文件相對路徑的方法
文章主要介紹了php計算兩個文件相對路徑的方法,涉及php操作字符串的`技巧,具有一定參考借鑑價值,需要的朋友可以參考下.一、問題:寫一個php函數算出兩個文件的相對路徑。例如$a="/a/b/c/d/";$b="/a/b/12/34/",B相對於A的相對路徑是什麼?二、解決方法:?123456789101...
-
PHP 7.1中都有哪些重大更新
PHP7.1.0帶來了大量的改進和新功能:可空類型返回空類型可迭代的psuedo-type支持常量可見的類數組解構square框架和在list()中允許指定keys多異常類型捕獲,以下是小編為大家搜索整理的PHP7.1中都有哪些重大更新,希望能給大家帶來幫助!更多精彩內容請及時關注我們應...
相關文章
- WIndows 8可以支持Photoshop CS6和Lightroom 4
- 用Photoshop如何繪製Google Currents圖標
- PhotoShop通過計算命令改變花的顏色教程
- Adobe Photoshop Lightroom快速修圖十大技巧
- Unit10 You’re supposed to shake handsB評課稿
- 英語翻譯the world‘s population
- PEP六年級上冊《Unit1Howdoyougotoschool》知識點歸納
- 如何將Coreldraw圖像文件導入Photoshop
- 關於Adobe為iPad版Photoshop Touch加入壓敏觸控筆支持
- Efforts Urged to Improve Womens Reproductive Health英語閲讀