gpt4 book ai didi

php - 更改用户 PHP

转载 作者:可可西里 更新时间:2023-11-01 00:16:54 26 4
gpt4 key购买 nike

我需要在运行时更改 PHP 脚本的用户。我查看了 posix_setuid,但它看起来不安全并且需要 root 权限。最好是用用户密码更改脚本的用户 ID(类似于 posix_setuid($username, $password)),并避免以 root 身份运行脚本。

我对其他方法持开放态度,脚本不一定需要是 PHP。但是,它将从 apache 调用。

该场景的一个很好的类比是 cPanel su 如何在其文件管理器上访问当前登录的用户。

我需要更改用户,因为我正在为多用户设置创建文件管理器。目前,我设置了文件管理器,以便 apache 以 root 身份为我的 PHP 文件管理器提供服务。然而,这是不合理的,因为如果代码中存在安全漏洞,一个用户可以在整个服务器上编辑文件。

我正在寻找一种将脚本 SU 发送给登录用户的方法,以便在出现安全漏洞时,用户只能访问他们自己的文件。

最佳答案

我刚才需要这样做。我基本上创建了一个 bash 脚本来访问只有 root 可以访问的资源。这是我所做的:

使用 visudo 命令更改您的 /etc/sudoers:

## Allow root to run any commands anywhere
root ALL=(ALL) ALL
apache ALL= NOPASSWD: /sbin/myscript.sh

我添加了允许 apache 用户使用 sudo 命令运行 /sbin/myscript.sh 而无需输入密码的行。

之后,您只需将以下内容放入您的 php 文件中即可获得输出:

$output = shell_exec("sudo /sbin/myscript.sh");

关于php - 更改用户 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5928566/

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