我需要從遠程計算機調用一個PHP腳本,它將調用遠程服務器來更改DNS記錄。這可能嗎?我在測試環境中一切正常,但PHP無權訪問/var/namdd/mydomain.com.db
。這是我的一個VPS,我有root訪問權限,所以訪問不成問題。我只是想讓腳本爲我做。有任何想法嗎?具有root權限的PHP腳本?
回答
假設其他服務器正在運行BIND,這些文件可能由named命名,而不是root。將是一個更簡單的選擇。此外,你可以讓他們777,然後讓PHP簡單地編輯它們。
更改權限以便PHP可以編輯它們可能是個好主意,但777幾乎不是一個好主意。 – icktoofay
他們擁有我的'命名'。我擔心把它們設置爲777,認爲它可能會讓其他事情混亂起來。 Cpanel通常會編輯它們。我會試試看,最壞的情況是我將權限設置恢復正常。 –
我知道777永遠不是好主意,但它是一個域名。我有一臺服務器在家裏,這將調用一個PHP腳本,如果我的家庭IP更改PHP腳本將編輯DNS並重新啓動命名。我的託管服務器有DNS,因爲我想保留郵件(MX記錄),以防我的家庭服務器出問題,我不會放棄電子郵件。幾乎只是一個開發設置。沒有關鍵。 –
三種方式立刻浮現在腦海:
- 更改文件的權限。
- 創建一個守護進程來完成它。
- 創建一個命令,並配置
sudo
無需密碼即可運行它。
更改文件
最簡單的情況是改變文件的權限權限。要做到這一點,你可能至少要知道
- 用戶讀取文件,並
- 你的PHP腳本運行的用戶。
如果用戶相同,那麼答案當然很簡單:將所有者更改爲該用戶。否則,如果文件不包含敏感信息,則可以將所有者更改爲PHP用戶,並授予所有用戶的讀取權限。最後,您可能能夠創建一個包含這兩個用戶的新組,並更改該文件的組。然後,您可以將該文件的用戶更改爲PHP用戶並授予寫入權限,將該組更改爲您創建的組並授予讀取權限,並且不授予其他任何人。
創建一個後臺程序來完成它
這是相當複雜的;我不能說我會推薦這個選項。從本質上講,你有一個後臺進程以任何必要的權限運行。這個過程可以完成任何需要完成的任務,並與較低特權的進程進行通信。當PHP腳本需要修改該文件時,它可以將請求發送到守護程序,然後可以代表PHP腳本更改該文件。
命令與sudo
這可能是做到這一點的最佳途徑之一。從本質上講,你需要創建一些命令來執行你需要的文件。那麼一旦你知道它運行在root
(或者最好是一些權限較低的用戶仍然擁有必要的權限)時,你可以配置sudo
讓PHP用戶以沒有密碼的更多特權用戶身份執行它。
- 1. bash腳本可能需要root權限
- 2. NMAP沒有root權限的EXEC()PHP
- 3. 如何使用PHP的root權限運行shell腳本?
- 4. 「sudo:必須是setuid root」但已具有root權限和's'權限
- 5. php apache root寫入權限
- 6. 允許PHP使用root權限執行bash腳本
- 7. PHP庫oci8.so沒有root權限
- 8. 對命令有選擇性root權限的Bash腳本
- 9. 重新加載沒有root權限的django wsgi腳本
- 10. 沒有root權限的mysqlworkbench
- 11. 沒有root權限的Mysql
- 12. 使用root權限從python腳本調用shell腳本
- 13. 即使_www具有root權限,php exec也會失敗
- 14. 本地安裝pip(沒有root權限)
- 15. PHP腳本/目錄有什麼權限?
- 16. mysql root @ localhost沒有權限
- 17. 我該如何運行需要root權限的perl腳本?
- 18. 如何在腳本中執行需要root權限的命令?
- 19. 刪除root權限
- 20. 的mkdir權限被拒絕PHP腳本
- 21. 具有root權限的Mac網絡服務器?
- 22. RVM不CentOS的沒有root權限
- 23. 安裝沒有root權限的zsh?
- 24. 安裝沒有root權限的pygobject
- 25. 文件權限,root bash腳本,用戶編輯
- 26. 如何在Linux中使用root權限運行腳本
- 27. 如何確定shell腳本是否以root權限運行?
- 28. 權限問題,無法以root身份運行腳本
- 29. 具有權限結構的PHP網站
- 30. 獲得iOS的root權限
幾種可能性:1.更改權限,因此您不需要「root」權限; 2。創建一個PHP文件可以與之通信的守護進程,其唯一目的是修改該記錄; 3.創建一個修改DNS記錄的命令,並配置'sudo'以允許PHP用戶在沒有密碼的情況下運行該命令(並且只有該命令)。 – icktoofay