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

时间:2016-01-06 15:41:06

标签: php linux apache web server

我正在使用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及其密码,因为我在一家大公司工作而我没有权利知道一些密码

1 个答案:

答案 0 :(得分:0)

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

典型的PHP应用程序处理授权,允许某人自己上传文件,并始终将文件写为apache用户(www),而不是用户已经在服务器上定义的文件。

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

相关问题