首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >脚本中的chown

脚本中的chown
EN

Stack Overflow用户
提问于 2012-01-05 02:08:53
回答 3查看 2.1K关注 0票数 1

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

我是我大学的一名实验室讲师,我一直在重写他们为上传作业提供的脚本,因为他们的任务是旧的和错误的。我没有修改现有的脚本(用python编写),而是用php从头开始编写它。

我遇到了一个问题,似乎chown不起作用。php脚本在用户apache下运行。我不确定该用户是否“骄傲”,但原始脚本使用了chown。

我是否可以假设,因此apache应该有必要的权威,我的问题在其他地方,或者是错误的逻辑?

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

旧脚本上的ls -al显示:

代码语言:javascript
复制
-rwxr-xr-x 1 mattw labstaff 5067 Sep  1 17:52 File_Upload.cgi

看上去不像是开机了。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-05 02:22:15

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

您可以编辑sudoers文件(使用visudo),并使apache能够在某个目录下不使用密码进行sudo操作。请注意,如果您非常有安全意识,则不建议这样做。

添加这样的东西

apache ALL = NOPASSWD: /bin/chown 11-90-9\:11-90-9 /var/www/a-zA-Z0-9*

您可以将apache添加到不同的组中,或者将其他用户添加到apache组或类似的类中,然后将其转换为0775或0664。

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

票数 2
EN

Stack Overflow用户

发布于 2012-01-05 02:11:50

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

请张贴ls -al /path/to/script的输出以确认这一点。它应该以它的模式显示root作为它的所有者和一个s

要为新脚本启用setuid模式,请对其进行chmod u+s。请注意,这可能会对安全造成严重影响。特别是,不要留下一个setuid脚本或二进制可写。

票数 1
EN

Stack Overflow用户

发布于 2012-01-05 02:13:03

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8736783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档