使用apache在php程序中更改用户


Changing user in a php program using apache

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

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

我想,为了解决这个问题,我将使用命令"su-user"来更改用户,当我创建文件时,所有者将是我,而不是apache。但问题是,当我使用这个命令时,它会调用pomp窗口来编写代码,但我使用的是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或名称创建一个目录。

相关文章: