php root用户 exec,以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执行此操作,并将文件移动到带有时间戳的完成文件夹,以控制什么是发生.

标签:php,shell,scripting,sudo,apache-httpd

来源: https://codeday.me/bug/20190810/1640685.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值