我正在運行一個cli腳本,它需要一個exec('sudo ...');呼叫。我知道它在網絡上不安全,但是如何在cli中完成?該腳本由一個名爲「btcdbit」的用戶執行,該用戶位於sudoers文件中。PHP-CLI Sudo執行
1
A
回答
2
根據我的經驗,設置NOPASSWD選項並不總是有效,即使它看起來不安全。在我看來,更好的方法 - 如果你能夠使用它 - 將涉及使用phpseclib通過SSH做sudo。例如。
<?php
include('Net/SSH2.php');
$sftp = new Net_SSH2('www.domain.tld');
$sftp->login('username', 'password');
echo $sftp->read('[email protected]:~$');
$sftp->write("sudo ls -la\n");
$output = $sftp->read('#Password:|[email protected]:~\$#', NET_SSH2_READ_REGEX);
echo $output;
if (preg_match('#Password:#', $lines)) {
$ssh->write("password\n");
echo $sftp->read('[email protected]:~$');
}
?>
網站「sudo in php」闡述
1
只要btcdbit位於您希望能夠運行的程序的sudoers中,您應該可以使用任何PHP函數(如exec
或system
)來運行它。請確保您在sudoers中使用NOPASSWD選項(例如,請參閱http://www.ducea.com/2006/06/18/linux-tips-password-usage-in-sudo-passwd-nopasswd/),如果您不希望它被要求提供btcdbit密碼。
-2
它應該和exec一樣簡單('/ usr/bin/sudo {script}')。
相關問題
- 1. python paramiko執行sudo
- 2. Java和sudo命令執行
- 3. 沒有sudo執行mysql
- 4. 的node.js執行使用sudo
- 5. 如何使用sudo執行bash函數?
- 6. 從rake任務中執行sudo命令?
- 7. PHP遠程Sudo腳本執行
- 8. 使用sudo執行bundle exec命令
- 9. 無法執行「sudo npm install --save firebase-admin」
- 10. Makefile失敗執行sudo docker kill
- 11. 與exec sudo php執行失敗CentOS
- 12. 使用sudo命令執行tcl
- 13. 作爲sudo在織物中執行
- 14. 創建Shell腳本來執行Jar(執行sudo命令)
- 15. 當從PuTTY命令行執行「sudo需要一個tty」時,「Sudo」失敗
- 16. 不支持eclipse,xdebug和phpcli的斷點
- 17. 當我(root)執行「usermod -G sudo chauncey」時,它說「sudo組不存在」
- 18. 無法通過apache運行php-gpio並使用sudo執行exec()
- 19. 織物SUDO運行時是否可以執行函數
- 20. 特使任務執行者:運行命令,需要sudo訪問
- 21. 在AIX 6.1中運行SUDO時,Profile未得到執行?
- 22. 執行使用sudo特權任務ansible劇本
- 23. 執行shutdown.sh腳本爲sudo-用戶不工作
- 24. 在C/C++程序中執行sudo命令
- 25. 在rake任務中執行'sudo su'命令
- 26. rsync與-a執行爲sudo不保留文件所有權
- 27. 警告:sudo()在執行時遇到錯誤(返回碼1):Fabric
- 28. C緩衝區中的指令僅作爲sudo執行
- 29. 如何以root用戶密碼身份執行sudo
- 30. 如何讓用戶在Unix下執行'sudo bash'?
如果btcdbit沒有什麼密碼 – macintosh264
@ macintosh264,我會想試試用NOPASSWD選項設置它。你能否澄清當你試圖通過'php'程序運行'exec'時遇到的情況?它是否會「卡住」? – imm