AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 111350
Accepted
solsol
solsol
Asked: 2010-02-10 15:16:53 +0800 CST2010-02-10 15:16:53 +0800 CST 2010-02-10 15:16:53 +0800 CST

哪些 chmod 和 owner:group 设置最适合 Web 应用程序?

  • 772

我们正在 CentOS 上配置一个 PHP Web 应用程序,并且我们所有的文件当前都在 /var/www/html/project/

Apache 被配置为作为 apache:apache 运行并且可以访问上面的目录。现在我们的文件和目录具有以下权限:

所有者 = 根组 = apache

目录:drwxr-x---root apache

文件:-rw-r-----root apache

这是一个安全的设置吗?还是使用新用户(例如“项目”)作为所有文件和目录的所有者更好?

php apache-2.2 security chmod chown
  • 2 2 个回答
  • 10194 Views

2 个回答

  • Voted
  1. Best Answer
    CarpeNoctem
    2010-02-10T15:37:25+08:002010-02-10T15:37:25+08:00

    让所有者成为用于上传/管理服务器上文件的任何受限用户帐户是最佳实践。该组通常是运行 php 的帐户,因此在这种情况下 apache 是正确的。其他权限应该设置为空,因为它们是。你已经接近完美了。

    如果您遇到多个帐户可能正在修改/编辑文件的情况,您可以创建一个 cron 脚本,每隔一小时左右递归地 chowns dir 以保持正确的所有权。同样的技术也可以保持权限正确。

    此外,您可能希望将拥有所有权的受限用户帐户的 umask 修改为与您的权限方案一致。

    • 5
  2. Patrick R
    2010-02-10T16:01:03+08:002010-02-10T16:01:03+08:00

    你肯定玩得很安全。

    如果您需要通过 apache 按需创建,您的设置将阻止您在 DIRECTORIES 中创建其他文件夹。

    我建议您使用以下权限:

    DIRECTORIES: drwxrwx--- root apache
    FILES: -rw-rw---- root apache
    

    将您的开发人员添加到 apache 组,以便在他们通过 ssh 或 ftp 登录时可以继续写入这些文件。

    如果您可以信任运行它们的用户,您可以拥有自由的文件权限。如果您的代码是可靠的,那么您可以允许 apache 组使用权限做更多事情。

    编辑:一般给apache:

    rwx if it needs to create folders
    rw if it needs to create files
    r if everything is static
    

    最后归结为只提供您必须的权限。使它们尽可能保守,并在需要时在开发应用程序时开放它们。

    关于团体的一件小事。您将看到一些显示这一点的示例(这些也是正确的设置):

    DIRECTORIES: drwxrwxrw- root somegroup
    FILES: -rw-rw-r-- root somegroup
    

    运行 Web 应用程序需要这些权限,因为apache 用户不是组权限的一部分。在这种情况下,apache 被认为是所有人,因此您需要设置权限以允许所有人与您的网站进行交互。每个人我并不是指世界上的每个人(即匿名)。我的意思是每个当前是您服务器上的用户的人(查看 /etc/passwd 以获取列表)。

    • 2

相关问题

  • 在 SOHO 环境中实施的最佳 VPN 技术是什么?[关闭]

  • mod_rewrite 不转发 GET 参数

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve