Apache Python mkdir错误的所有者
我对这个问题感到困惑,请帮助: 为DJANGO运行DJANGO、Python 2.7和Apache[mod_wsgi]。当mkdir或文件写入发生时,用户/组总是root:root。父目录都由apacheuid/GID拥有Apache Python mkdir错误的所有者,apache,python-2.7,mod-wsgi,Apache,Python 2.7,Mod Wsgi,我对这个问题感到困惑,请帮助: 为DJANGO运行DJANGO、Python 2.7和Apache[mod_wsgi]。当mkdir或文件写入发生时,用户/组总是root:root。父目录都由apacheuid/GID拥有 Python如何能够通过Apache做如此危险的事情,而不直接将root:root编码为拥有dir 我不介意通过os.chown()显式强制所有者,但是为了更好的安全实践,我宁愿它选择正确的权限。你知道为什么会这样吗 根据要求,更多详情: 以下是父目录: drwxrwxrw
根据要求,更多详情: 以下是父目录:
drwxrwxrwx. 7 apache apache 4096 Jan 16 00:57 archives
drwxr-xr-x. 3 root root 4096 Jan 16 00:57 test_dir
以下是使用存档目录中的os.mkdir()创建的文件夹:
drwxrwxrwx. 7 apache apache 4096 Jan 16 00:57 archives
drwxr-xr-x. 3 root root 4096 Jan 16 00:57 test_dir
我正在运行企业Linux,Apache作为服务运行:
[root@s2 archives]# ps wwwwwwwwwwwwwaux | grep httpd
apache 21634 0.7 5.2 1321760 101400 ? Sl Jan12 52:04 /usr/sbin/httpd
apache 21657 0.0 0.5 329104 10724 ? S Jan12 0:05 /usr/sbin/httpd
apache 21658 0.0 0.5 329248 10740 ? S Jan12 0:05 /usr/sbin/httpd
apache 21659 0.0 0.5 329264 10756 ? S Jan12 0:05 /usr/sbin/httpd
apache 21660 0.0 0.5 329280 10796 ? S Jan12 0:05 /usr/sbin/httpd
apache 21661 0.0 0.5 329104 10684 ? S Jan12 0:05 /usr/sbin/httpd
apache 21662 0.0 0.5 329280 10796 ? S Jan12 0:05 /usr/sbin/httpd
apache 21663 0.0 0.5 329248 10740 ? S Jan12 0:05 /usr/sbin/httpd
apache 21664 0.0 0.5 329104 10664 ? S Jan12 0:05 /usr/sbin/httpd
apache 21665 0.0 0.5 329104 10684 ? S Jan12 0:05 /usr/sbin/httpd
apache 21666 0.0 0.5 329248 10760 ? S Jan12 0:05 /usr/sbin/httpd
apache 22705 0.0 0.5 329256 10756 ? S Jan13 0:05 /usr/sbin/httpd
apache 22711 0.0 0.5 329240 10696 ? S Jan13 0:05 /usr/sbin/httpd
apache 22752 0.0 0.5 329280 10776 ? S Jan13 0:03 /usr/sbin/httpd
apache 22806 0.0 0.5 329104 10648 ? S Jan13 0:02 /usr/sbin/httpd
root 25238 0.0 0.0 103236 864 pts/0 S+ 17:19 0:00 grep httpd
root 25893 0.0 0.6 326980 13092 ? Ss 2013 3:52 /usr/sbin/httpd
如您所见,主服务作为根(标准)运行,子进程作为apache用户(标准)分叉。我可以通过Apache在同一服务器上的同一目录中执行PHP或Perl,并获得正确的权限:
drwxr-xr-x. 3 apache apache 4096 Jul 19 23:39 sqa-test1-php
drwxr-xr-x. 3 apache apache 4096 Jul 22 19:22 sqa-test2-perl
drwxr-xr-x. 3 apache apache 4096 Dec 4 21:31 sqa-test3-ruby
以下是我的WSGI测试配置:
WSGIScriptAlias / "apache/conf/Extra/django_nix.wsgi"
-=====-
我不能对阿丁发表评论,因为我使用的是我的工作账户,而不是我的个人账户。我理解你的意思,但这将回到我上面提到的第1点。允许这样做是一个巨大的安全风险。从本质上说,有人可以很容易地破解文件上传并让它以root用户身份执行-几分钟后,我可以删除所有备份,下载所有数据库,删除文件系统,更改root用户密码,删除内核并重新启动服务器。Apache用户没有shell访问权限,因此通过该用户发送和执行文件是保护web服务器的最佳方法之一。我只是从十多年来一直在我的服务器上做这件事的脚本小子那里知道这一点。顺便说一句:我对网络领域的Python还不熟悉。你的问题缺乏信息
- 向我们显示父目录的统计信息(不是所有目录,只是直接父目录)
- 您的进程作为哪个用户运行?例如,提供ps输出 ps auxw | grep apache
这不是因为Python进程是由appache运行的,而appache本身是在根目录下运行的吗?在这种情况下,所有者当然应该是root:root鉴于问题的性质,你能直接通过我的Gmail地址Graham.Dumpleton联系我吗,以便进一步调查。谢谢。我也有同样的问题,使用一个普通的老python脚本。作为一个普通用户,我在Suse 13.1下运行。这个问题与我是从Spyder运行还是从控制台运行无关,甚至与我只是在控制台上启动Python并使用os.mkdir()无关——结果总是归root所有@扎克,你们找到解决办法了吗?我是作为一个朋友遇到的well@AndrewLngdn字体不,我真的没有。在发生这种情况的某些情况下,磁盘是一个NTFS分区,与同一台计算机上的Windows安装共享,对于这些情况,Linux文件权限的东西确实有效。在所有其他情况下,我找到的唯一解决办法就是上面的问题:事后更换所有者或离开它