關於PHP腳本修改Linux或Unix系統口令方法
PHP腳本修改Linux或Unix系統口令方法
PHP獨特的語法混合了C、Java、Perl以及PHP自創的語法。它可以比CGI或者Perl更快速地執行動態網頁。今天,小編為大家搜索整理了PHP腳本修改Linux或Unix系統口令方法,希望大家能有所收穫,更多精彩內容請持續關注我們考試網!
– 修改口令的Shell腳本;
– Sudo 訪問權;
– Apache or Lighttpd web 服務器;
– PHP服務端程序。
步驟1: 安裝可以修改用户口令的shell腳本
該腳本可以實際用於修改Linux用户的口令(已在Linux和FreeBSD測試)。
例子: shell腳本代碼
#!/bin/sh # exec expect -f “$0″ ${1+”$@”} set password [lindex $argv 1] spawn passwd [lindex $argv 0] sleep 1 expect “assword:” send “$password ” expect “assword:” send “$password ” expect eof運行shell腳本(下載鏈接):
$ chpasswd username password 下載該腳本, 然後拷貝到你的web根目錄或者Web服務器的其它位置(用户可讀):
$ cp chpasswd /var/www/或者, 如果你使用Lighttpd Web服務器:
$ cp chpasswd /home/lighttpd
步驟2: 通過sudo以root身份執行命令
Apache或Lighttpd Web服務器進入後台運行後會馬上使用非root權限。這樣可以很好的防止口令修改, 就像passwd命令需要root權限才能修改其它用户帳號的口令。
通常, Apache 2使用www-data用户, Lighttpd使用lighttpd用户(皆為普通用户, 非root用户)。使用root用户登陸, 然後執行下面的命令:
# visudo現在你的web服務器允許執行口令修改腳本(chpasswd)。如果你使用Apache Web服務器, 執行下面的命令:
www-data ALL=NOPASSWD: /var/www/chpasswd或者, 如果你使用Lighttpd Web服務器, 執行下面的命令:
httpd ALL=NOPASSWD: /home/lighttpd/chpasswd保存和退出文件。
步驟3. 創建一個基於PHP的接口
現在你需要寫一個php腳本。這裏有一個php腳本實例。你可以根據你的需要來修改。至少你需要正確設置好的shell腳本位置。打開php腳本和找到shellscript一行:
$shellscript = “sudo /home/lighttpd/chpasswd”;修改shellscript指向到正確的位置。PHP的源代碼從這裏下載:
步驟4: 運行腳本
在你的web瀏覽器地址欄輸入網地址 - 。你將會看到用户名和口令提示:
如果口令修改成功, 你會得到的確認提示:
由於一些原因, 如果口令修改失敗, 你可以參考下面提示獲得更多詳細的錯誤信息:
步驟5: 安全
永遠不要通過http協議直接運行上面的`腳本. 而是使用https協議。
把腳本放入到受口令保護的目錄。
永遠不要信任用户的輸入。上面的php腳本只是一個例子。在現實的生產環境中, 你需要考慮採用更強大的用户輸入確認。討論PHP編程的安全超出了本文的範圍。你可以參考一本好的PHP書籍或者使用你喜歡的搜索引擎搜索相關的網站。
-
如何理解Javascript的caller,callee,call,apply區別
在提到上述的概念之前,首先想説説javascript中函數的隱含參數:argumentsarguments該對象代表正在執行的函數和調用它的函數的參數。[function.]arguments[n]參數function:選項。當前正在執行的Function對象的名字。n:選項。要傳遞給Function對象的從0開始的參數值...
-
win2008 ASP顯示500內部錯誤不能顯示詳細錯誤的解決方法
在win2008系統中,有用户遇到這樣的情況:網站後台顯示500內部錯誤,但是卻無法打開詳細的錯誤信息。無法查看詳細的錯誤信息,用户就不能根據具體問題來解決了,這是一件很麻煩的事情。其實用户可以通過修改win2008系統中的IIS設置來顯示這個詳細的錯誤信息。一、造成50...
-
asp.net 操作INI文件讀寫類實例代碼
操作INI文件讀寫類實例代碼複製代碼代碼如下:usingSystem;usingropServices;using;using;namespaceCommon{//////INI文件讀寫類。///publicclassINIFile{publicstringpath;publicINIFile(stringINIPath){path=INIPath;}[DllImport("kernel32")]privatestaticex...
-
網頁設計黃金配色原則是什麼
身為網頁設計新手的你,是不是還在糾結於你製作的網頁找不到一組完美的配色方案?在本教程中我們將與你分享6條肯定會火,並且“錯不了”的指導方針,你可以按照這些原則把握最基本的色彩規律。現在我們分享的這些原則都不是規則,你會在你的職業生涯中創造出更多的配色...