gpt4 book ai didi

php - chown 在脚本中

转载 作者:太空宇宙 更新时间:2023-11-04 10:57:18 24 4
gpt4 key购买 nike

更新:事实证明问题比我原先想象的要复杂。我同时试图解决为什么我的 mkdir 停止工作,这是因为我手动更改了父目录的权限以进行测试,然后将它们切换回来并添加了一个 chmod 到脚本不起作用,因为该脚本由 apache 而不是我自己运行。我将发布一个更大问题的新问题,因为我认为将所有这些添加到这个问题中会变得困惑。


我是我所在大学的一名实验室讲师,我一直在重写他们提供的用于上传作业的脚本,因为他们的脚本已经过时且存在错误。我没有修改现有脚本(用 python 编写),而是用 php 从头开始​​编写它。

我遇到了一个问题,chown 似乎无法正常工作。 php 脚本在用户 apache 下运行。我不确定该用户是否具有“特权”,但原始脚本使用了 chown。

因此我是否可以假设 apache 应该具有所需的权限并且我的问题出在其他地方或者是错误的逻辑?


服务器是大学的,他们不可能让我进行任何配置更改。我相信他们运行的是 CentOS。没有错误消息,我只是注意到我可以 chmod 文件并更改权限,但是下一行的 chown 命令似乎没有效果。

ls -al 在旧脚本上显示:

-rwxr-xr-x 1 mattw labstaff 5067 Sep  1 17:52 File_Upload.cgi

看起来 setuid 位没有打开。

Stefan 提到“用户 apache 很可能没有足够的权限来 chown 不属于它的文件/文件夹”。我试图chown 的目录是用mkdir 创建的,所以它应该属于apache。当您已经拥有该文件时,chown 是否应该不管权限如何工作?

最佳答案

Apache 可能没有这样做的特权。这取决于它在哪个环境中运行。你说 apache 在用户 apache 下运行,所以我只是假设它是 RHEL 或 Centos 等 RHEL 变体。

您可以编辑 sudoers 文件(使用 visudo)并让 apache 能够在特定目录下无需密码即可执行 sudo。请注意,如果您非常注重安全,则不建议这样做。

添加类似的东西

apache ALL = NOPASSWD:/bin/chown 1[1-9][0-9][0-9]\:1[1-9][0-9][0-9]/var/www/[a-zA-Z0-9]*

您可以将 apache 添加到不同的组,或者将另一个用户添加到 apache 组或类似的东西,然后将其更改为 0775 或 0664。

最好发布引发错误的代码、错误消息(如果有)以及哪些用户和组需要访问正在上传的文件。

关于php - chown 在脚本中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8736783/

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