我正在运行一个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. 没有sudo执行mysql
- 2. Java和sudo命令执行
- 3. 如何使用sudo执行bash函数?
- 4. Makefile失败执行sudo docker kill
- 5. 无法执行“sudo npm install --save firebase-admin”
- 6. 作为sudo在织物中执行
- 7. 与exec sudo php执行失败CentOS
- 8. PHP远程Sudo脚本执行
- 9. 当从PuTTY命令行执行“sudo需要一个tty”时,“Sudo”失败
- 10. 当我(root)执行“usermod -G sudo chauncey”时,它说“sudo组不存在”
- 11. 织物SUDO运行时是否可以执行函数
- 12. 特使任务执行者:运行命令,需要sudo访问
- 13. 如何执行sudo命令与蚂蚁sshexec
- 14. 如何在sudo命令后执行多个命令
- 15. 在C程序中使用sudo执行shell命令
- 16. vim和sudo可执行文件的路径
- 17. 执行使用sudo特权任务ansible剧本
- 18. 如何使用python脚本在sudo后执行一组命令
- 19. rsync与-a执行为sudo不保留文件所有权
- 20. on Rails应用程序执行在Ruby中sudo命令
- 21. perl脚本在linux中执行sudo登录
- 22. 如何在Eclipse中从ant视图中执行“sudo ant”
- 23. 在节点中使用pty和ssh2与sudo执行命令
- 24. 在rake任务中执行'sudo su'命令
- 25. 作为用户的Java Jsch sudo并执行脚本
- 26. MySQL中,如何在Mac终端上执行“sudo kill -9 [PID]”
- 27. 警告:sudo()在执行时遇到错误(返回码1):Fabric
- 28. 执行shutdown.sh脚本为sudo-用户不工作
- 29. 运行的WebPack没有sudo
- 30. 用sudo运行命令
如果btcdbit没有什么密码 – macintosh264
@ macintosh264,我会想试试用NOPASSWD选项设置它。你能否澄清当你试图通过'php'程序运行'exec'时遇到的情况?它是否会“卡住”? – imm