Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 脚本中的chown_Php_Python_Chown - Fatal编程技术网

Php 脚本中的chown

Php 脚本中的chown,php,python,chown,Php,Python,Chown,更新:原来问题比我原来想的要复杂。我同时试图解决为什么我的mkdir停止工作的问题,这是因为我手动更改了父目录的权限以进行测试,然后将它们切换回来,并向脚本添加了一个chmod,该脚本不起作用,因为该脚本是由apache而不是我自己运行的。我将发布一个更大问题的新问题,因为我认为将所有这些添加到这个问题中会变得混乱 我是我大学的一名实验室讲师,我一直在重写他们为上传作业提供的脚本,因为他们的脚本既旧又有问题。我没有修改现有的脚本(用python编写),而是用php从头开始编写 我遇到了一个问题

更新:原来问题比我原来想的要复杂。我同时试图解决为什么我的
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
的目录是用
mkdir
创建的,因此它应该属于apache。当您已经拥有该文件时,
chown
是否应在不考虑权限的情况下工作?

如果旧脚本由apache用户运行,但能够执行
chown
,则可能会启用该位,以允许它以提升的权限运行。那样的话,你的假设就错了

请张贴
ls-al/path/to/script的输出以确认这一点。它应该将
root
显示为其所有者,并在其模式中显示
s


要为新脚本启用setuid模式,
chmod u+s
it。请注意,这可能会带来严重的安全问题。尤其是不要让setuid脚本或二进制文件可写。

如果旧脚本由apache用户运行,但能够执行
chown
,则可能会启用该位以允许其以提升的权限运行。那样的话,你的假设就错了

请张贴
ls-al/path/to/script的输出以确认这一点。它应该将
root
显示为其所有者,并在其模式中显示
s


要为新脚本启用setuid模式,
chmod u+s
it。请注意,这可能会带来严重的安全问题。尤其是千万不要让setuid脚本或二进制文件可写。

用户apache很可能没有足够的权限来浏览它不拥有的文件/文件夹,您可以授予apache更多的权限,但这可能会成为一个安全问题。

用户apache很可能没有足够的权限访问它不拥有的文件/文件夹,您可以授予apache更多的权限,但这可能会成为一个安全问题。

apache可能没有这样做的权限。这取决于它运行的环境。您说过apache是在用户apache下运行的,所以我假设它是RHEL或RHEL变体,如Centos

您将能够编辑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


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

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

您将能够编辑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

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