gpt4 book ai didi

PHP:shell_exec 一个 shell 脚本与 shell_exec 一个 linux 上的程序(权限)

转载 作者:太空宇宙 更新时间:2023-11-04 12:57:37 27 4
gpt4 key购买 nike

我有一个 shell 脚本,它在执行时会生成一些文件夹并将文件复制到其中。我还有一个 node.js“程序”,它的功能与 shell 脚本完全相同。

当我使用 PHP 的 shell_exec 调用 shell 脚本时,出现权限错误,基本上是说 shell 脚本没有创建文件夹的权限。我做了一些谷歌搜索,结果我必须设置无密码的 sudo,谁知道还有什么技巧可以解决这个问题。

但是,我对 Node 做了完全相同的事情,当我像以前一样通过 shell_exec 调用它来运行 Node “程序”时,似乎这个 Node “程序”有权做任何事。

这背后的原因是什么?为什么“程序”运行时有权限,而shell脚本却没有?例如,这是执行文件系统操作(从 PHP 调用 node.js 制作的东西)的合法方式吗?因为如果我尝试用 PHP 执行相同的操作,那么摆弄权限很烦人。

最佳答案

Php 由 apache 或类似的东西运行,并在用户 www-data 或 http 或类似的东西下运行。您的 Node 服务器可能在 piwwoli 用户下运行。 piwwoli可以在/home/piwwoli下创建一个目录,但是www-data不能。

程序和shellscripts在运行时都有权限,问题是谁在运行它们。

你可以创建一个 www-data 和 piwwoli 都可写的目录:

mkdir /path/to/dir
chmod o+w,g+w /path/to/dir
chown piwwoli.www-data /path/to/dir # maybe you'll need sudo for this to work

关于PHP:shell_exec 一个 shell 脚本与 shell_exec 一个 linux 上的程序(权限),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35271906/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com