• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

树莓派上php通过sudo执行root权限的程序

php 搞代码 4年前 (2022-01-23) 18次浏览 已收录 0个评论

1、问题和原因

树莓派上的PHP主页无法运行具有root权限的命令或脚本原因,并不是PHP无法执行,而是Apache的权限不够!!!!

2、PHP运行shell脚本或Python的方法

php给我们提供了system(),exec(),passthru()这三个%本文@来源gao@!dai!ma.com搞$$代^@码!网搞代gaodaima码函数来调用外部的命令.
虽然这三个命令都能执行linux系统的shell命令,但是其实他们是有区别的:

system() 输出并返回最后一行shell结果。
exec() 不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面。
passthru() 只调用命令,把命令的运行结果原样地直接输出到标准输出设备上。
相同点:都可以获得命令执行的状态码
例子:system(“/usr/local/bin/webalizer/webalizer”);

3、PHP通过sudo执行root命令或脚本

1)开放sudo命令针对Apache用户的权限即可。

修改sudo的权限控制文件 /etc/sudoers 文件,树莓派使用如下命令:

sudo nano /etc/sudoers 或 也可以通过如下命令编辑/etc/sudoers文件: sudo visudo

添加如下一行内容:开放此用户的所有权限

www-data ALL=(ALL) NOPASSWD: ALL#我的Apache的用户是www-data

或 nobody ALL=(ALL) NOPASSWD: ALL#如果你的Apache的用户是默认的,那么用户就是nobody

也可以添加如下内容,开放某个命令的权限:

nobody ALL=(ALL) NOPASSWD: /usr/local/Apache/bin/Apachect1 restart

2)注释掉文件中的Defaults requiretty这一行,否则会出现

sudo: sorry,you must have a tty to run sudo.

3)存盘退出

以上就介绍了树莓派上php通过sudo执行root权限的程序,包括了Apache,require方面的内容,希望对PHP教程有兴趣的朋友有所帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:树莓派上php通过sudo执行root权限的程序

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址