gpt4 book ai didi

php - 使用apache更改php程序中的用户

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:26:13 25 4
gpt4 key购买 nike

我正在使用 php 开发一个网站。本网站使用 Apache 服务器运行

我的目标是能够控制可以上传文件的人。如果他们属于 Apache 中的特定组(linux 组),他们只能上传文件。问题是,当有人上传文件时,上传文件的用户不是 Apache,因为他们没有连接到服务器,所以当有人上传文件时,文件的所有者是 Apache,所以我无法更改所有者或这个文件的组

我想,为了解决这个问题,我将使用命令“su - user”来更改用户,当我创建文件时,所有者将是我而不是 apache。但问题是,当我使用这个命令时,它会调用 pompt 窗口来编写代码,但我使用的是 php,所以它不起作用

我发现这个 bash 可以在我的 php 程序中运行,但唯一的问题是它不起作用。因此,如果您有任何想法,我将非常感谢您的帮助

> spawn su user_name
expect "Password:" { send "my_password\r" }
expect "$ " { send "/bin/sh my_script_bash\r" }
expect "$ " { exit }

重要说明:我无权访问用户 root 及其密码,因为我在一家大公司工作,我无权知道一些密码

最佳答案

我不太明白需要将文件作为实际在服务器上的用户写入服务器的重要性,而且您的方法在大公司中被认为是不安全的,甚至是不可能的。

一个典型的 PHP 应用程序处理允许某人上传文件本身的授权,并且总是以 apache 用户 (www) 的身份写入文件,而不是以服务器上已经定义的用户身份写入文件。

通常,PHP 应用程序解决此问题的方法是在数据库中拥有某种用户,该用户有权将文件上传到服务器上的目录。如何将用户挂接到文件取决于您,一种方法是使用用户 ID 将文件的详细信息存储在数据库中,这样您就知道该文件属于用户,或者您可以创建一个具有该 ID 的目录或用户名。

关于php - 使用apache更改php程序中的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34637026/

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