以root用户身份从php执行shell脚本?

需要从PHP执行以下行:

$res = shell_exec(‘sudo sh /home/nicklas/cronjobs/make_account.sh
username password’);

问题是执行没有任何反应.如果我试图回复$res它就会出现空白.我也尝试过使用system(),结果相同.我猜它不起作用,因为我需要运行root访问权限,而www-data用户认没有.我将以下行添加到/ etc / sudoers以期获取访问权限:

www-data ALL=(ALL:ALL) nopASSWD:
/home/nicklas/cronjobs/make_account.sh

但没有成功.我试过在中间重启apache,不会改变任何东西.

我错过了什么吗?

解决方法:

出于安全原因,您不应该尝试使用具有比自然更多权限的用户www-data执行某些操作.之前有一个原因,为什么Apache访问被转移到www-data.
如果您需要在您的计算机上以root身份执行某些操作 – 并且更改密码或创建帐户就是这个’某事’ – 您应该构建一个界面.让PHP脚本在某处放置一些东西并通过从root执行的脚本扫描它并在那里处理它.
你可以f.e.在www-data有权访问的目录中创建一个包含要添加用户文件,然后每5分钟(或更少)通过root-cronjob执行此操作,并将文件移动到带有时间戳的完成文件夹,以控制什么是发生.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...