- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对这个问题感到困惑,请帮忙:
运行 DJANGO、Python 2.7、Apache [mod_wsgi] for DJANGO。当 mkdir 或文件写入发生时,用户/组始终是 root:root。父目录均由 Apache UID/GID 拥有。
根据要求,更多详细信息:
这是父目录:
drwxrwxrwx. 7 apache apache 4096 Jan 16 00:57 archives
这是使用 os.mkdir() 在文件目录中创建的文件夹:
drwxr-xr-x. 3 root root 4096 Jan 16 00:57 test_dir
我正在运行 Enterprise 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
如您所见,主服务以 root(标准)身份运行,子进程以 apache 用户(标准)身份 fork 。我可以通过 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"
-=====-
我无法向 Ardin 发表评论,因为我使用的是工作帐户,而不是个人帐户。我明白你在说什么,但这又回到了我上面提到的第一点。允许这样做会带来巨大的安全风险。本质上,有人可以轻松破解文件上传并以 root 身份执行 - 只需几分钟,我就可以删除所有备份、下载所有数据库、清除文件系统、更改 root 用户密码、清除内核并重新启动服务器。 Apache 用户没有 shell 访问权限,因此通过该用户传送和执行文件是保护 Web 服务器的最佳方法之一。我只是通过十多年来与脚本小子的斗争才知道这一点,这些脚本小子一直对我的服务器执行此操作。附带说明:我是 Web 空间中的 Python 新手。
最佳答案
您的问题缺乏信息。
您的进程以什么用户身份运行?提供ps输出,例如
ps auxw | grep apache
至于你的问题:
在这个世界上,Python 就像任何其他编程语言一样尊重底层 Unix 库。是的,以 root 身份运行的进程可以创建 root 拥有的目录。为什么你想要其他方式?
您不应该使用 chown 来解决此问题,而应该首先了解为什么会发生这种情况,并且到目前为止您还没有提供任何有用的证据。
关于apache - Python mkdir 错误所有者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21168144/
我正在尝试在 Java 中创建一个新目录,但它不起作用。我想知道为什么,因为我首先尝试了 mkdir() ,然后尝试了 mkdirs() ,它应该创建不存在的目录。 我写道: boolean stat
我尝试使用 mkdir 在本地 git 存储库中创建文件夹。它没有用,但是mkdir -p 有效。 为什么? 顺便说一句,我正在使用 Mac 操作系统。我检查了 mkdir -p 的定义。但是我还是不
我一直在关注 Learn Code the Hard Way 的教程,了解如何在 PowerShell 中使用命令行界面。在 this文章中,它告诉我使用命令 mkdir -p i\like\icec
下面是我的 MainActivity.java 代码。根据 toasts 的错误是在创建目录时。 主 Activity .java @Override protected void onActivit
我使用以下代码: final File newFile = new File("/mnt/sdcard/test/"); newFile.mkdir(); // if I use mkdirs() r
我被这个逼疯了: Log.d("STATE", Environment.getExternalStorageState()); File f = new File(Environment.getExt
我正在创建一个应用程序,我需要创建多个文件夹,而且创建文件夹是一步到位的。 要做最优化,然后我意识到 mkdir() 比 system('mkdir path') 快得多; 有谁知道原因吗? 最佳答案
mkdir $2 || echo "I can't create directory $2" && exit 8 大家好,这是我在这里的第一篇文章,请多多关照。 我现在正在制作一个脚本,这一行让我很困
您好,我最近遇到了这个问题,但能够解决它。实际上路径中的拼写错误。我想知道如何正确处理这些错误。也就是说,如果 mkdir 失败,我的程序应该继续执行并且应该安全地返回 false。这是我的代码 tr
我正在尝试在我的程序开始时创建一个日志文件。 如果 /log 目录没有创建目录,我需要检查它是否存在,然后继续创建日志文件。 好吧,我尝试使用 os.Mkdir(以及 os.MkdirAll),但无论
以下代码可与其他 API 一起使用,但 26 public static boolean cretaeDir() { String dir = Environment.getExternalS
尝试在 PHP 中使用 mkdir() 函数时出现此错误。 基本上,我是在我的服务器上创建一个基于 input field 的 HTML 表单中名为 (inPut) 的 sundomain。 现在我正
为什么 file.mkdir 返回 false? Google 指出可能有多种原因(例如安全性、权限、路径名等)。 我的问题: 如何找到返回false的确切原因? 如果安全/权限是一个原因,那么为什么
我找不到答案的简单问题: 使用 os.mkdir("somedir") 比 os.system("mkdir somedir") 或 subprocess.call() 有好处吗,超越代码可移植性?
这个问题与this question无关.我已经看到它了,但它是特定的 Android 4.4.2 问题,因为该代码在其他版本的 Android 上运行良好。 final File path = ne
os.Mkdir 和 syscall.Mkdir 在 Golang 中有相同的 API 系统调用.Mkdir: func Mkdir(path string, mode uint32) (err er
已结束。此问题不符合 Stack Overflow guidelines .它目前不接受答案。 要求代码的问题必须表明对正在解决的问题的最低理解。包括尝试的解决方案、它们为什么不起作用以及预期结果。另
这个问题在这里已经有了答案: What is different between makedirs and mkdir of os? (3 个答案) 关闭 9 个月前。 根据 python 3.6
我通过 bash 中的 mkdir 和 python 中的 os.mkdir 使用文件模式创建了目录。他们制作了具有不同权限的目录。 我在命令行中的测试代码如下, $ mkdir -m 0775 aa
给定: MIGRATION_FOLDER=/opt/migration 要么这样: ssh -tt ${REMOTE_SERVER} sudo sh -c "mkdir -p /opt/migrati
我是一名优秀的程序员,十分优秀!