【问题标题】:Changing user in a php program using apache使用 apache 在 php 程序中更改用户
【发布时间】:2016-04-10 18:34:00
【问题描述】:

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

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

我想,为了解决这个问题,我将使用命令“su - user”来更改用户,当我创建文件时,所有者将是我而不是 apache。但问题在于,当我使用这个命令时,它会调用提示窗口来编写代码,但我使用的是 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 linux apache web server


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-26
      • 2019-08-31
      • 2016-05-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多