ubuntu php 权限,关于Linux Ubuntu的php shell_exec()权限

我正在使用Linux服务器开发一个php应用程序.我的问题是执行shell_exec()来调用一些exe文件是不行的(实际上不是exe,它是一种linux可执行文件)

echo shell_exec("whoami");

我有守护进程

echo shell_exec("ls")

我有一些文件名

echo shell_exec("php -v")

我什么都没有,一页空白

echo shell_exec("php ....bla bla bla")

一张空白页面.

如果我输入终端(用户hu),所有这些命令都可以.我搜索谷歌几个小时,人们说,因为许可.我没有Linux的经验.在php中执行程序需要做什么?

解决方法:

Apache的用户www-data需要被授予使用sudo执行某些应用程序的权限.

>运行命令sudo visudo.实际上我们想在etc / sudoers中编辑文件.为此,通过在终端中使用sudo visudo,它复制(temp)sudoers文件进行编辑.

>在文件的末尾,添加以下ex: – 如果我们想要使用command for restart smokeping和php命令来解决你问题中的另一个动作,

www-data ALL = NOPASSWD:/etc/init.d/smokeping/restart,usr/bin/php

(这假设您希望使用超级用户运行restart和php命令

(root)privileges.And你在usr / bin / path中使用php命令)

但是,如果您希望使用每个应用程序运行

超级用户权限,然后添加以下内容而不是上面的内容.您可能不想这样做,不是所有命令,非常危险.

www-data ALL=NOPASSWD: ALL

3.编辑sudoers文件后(通过visudo我们编辑sudoers的临时文件,然后保存并退出临时文件(visudo)写入sudoers文件.(wq!)

4.就是这样,现在在xxx.phpscript.keep中以下列方式使用exec()或shell_exec,记得在php脚本中使用命令之前使用sudo.

例如: –

exec ("sudo /etc/init.d/smokeping restart 2>&1");

要么

shell_exec("sudo php -v");

因此,在您的问题中,将您希望使用的命令添加到步骤号(2.),因为我添加并更改您的php脚本.

标签:php,linux,shell,exec

来源: https://codeday.me/bug/20190809/1629370.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值