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 / 问题 / 35247
In Process

        3 revs, 2 users 67%anon
3 revs, 2 users 67%anon
Asked: 2009-07-03 11:27:31 +0800 CST2009-07-03 11:27:31 +0800 CST 2009-07-03 11:27:31 +0800 CST

哪些 CHMOD 设置可以防止用户查看目录?

  • 772

我有一个“包含”目录,我的 Web 服务器应该能够与之完全交互,但我不希望用户能够看到它的内容。

linux chmod
  • 9 9 个回答
  • 27128 Views

9 个回答

  • Voted
  1. John T
    2009-07-03T11:33:15+08:002009-07-03T11:33:15+08:00

    linux 上的权限(这是我假设您正在使用的)按顺序排列:

    uuu|ggg|ooo
    rwx|rwx|rwx
    

    U 是用户,文件的所有者。G 是特定组的组访问权限,O 是其他组。

    如果用户不在可以访问它的组中并且他们不是目录的所有者,则他们属于其他类别,因此您只需修改最后 3 个字段。

    最简单的方法:

    chmod dir o-r
    

    或者

    chmod dir 770
    

    770 将授予所有者和组完全访问权限,但从“其他人”获取访问权限。尽管如果他们无法读取它(需要查看内容),但给他们写入和执行访问权限是没有意义的,因此您最好使用 770 chmod 而不是 776 等。

    • 4
  2. Jeremy Smyth
    2009-07-03T11:30:44+08:002009-07-03T11:30:44+08:00

    您需要找到您的网络服务器运行的用户或组,然后chown是该用户和/或组的目录,然后

    chmod -R 660 directory
    

    或类似的东西。

    这假设您指的是本地用户 :) 如果您指的是网络用户,那么您必须记住,匿名网络用户必须与您的网络服务器具有完全相同的权限。

    • 1
  3. KSchmidt
    2009-07-03T11:31:13+08:002009-07-03T11:31:13+08:00

    您可能想要使用 htaccess 文件来限制对该文件夹的查看权限,但请阅读 Apache 的有关该主题的文档以获取其他更好的选择。

    • 1
  4. John Kugelman
    2009-07-03T11:34:10+08:002009-07-03T11:34:10+08:00

    将包含目录放在您的网站根目录之外。您不希望它在您的内容目录下,因为 Web 服务器可以将其提供给站点用户。因此,如果您的网站根目录是/var/www/html一个并行/var/www/includes目录。

    chmod不会做您想做的事,因为该httpd过程将访问您的所有文件,而不是实际的 shell 帐户。您可以使用限制访问,.htaccess但这比简单地将includes目录移出内容区域是一种较差的解决方案。

    • 0
  5. thepocketwade
    2009-07-03T12:34:34+08:002009-07-03T12:34:34+08:00

    @jeremy(因为我没有代表评论他的答案):您不想 chmod 660 目录,因为这会给所有者和组权限拒绝错误和/或奇怪的输出。

    例如`

    ls -l testingjunk
    ls: 无法访问 testingjunk/something: 权限被拒绝

    共 0

    -????????? ? ? ? ? ? 某物

    我忘了展示这部分。

    ls -ld testingjunk [16:32]
    drw-rw---- 2 wjenkin2 itstaff 4096 2009-07-02 16:30 testingjunk/

    `

    • 0
  6. James F
    2009-07-03T13:14:38+08:002009-07-03T13:14:38+08:00

    假设您希望 Web 服务器进程能够在目录中读取和写入文件(但不能从目录中提供内容),您希望

    • 在文档根目录之外创建一个目录
    • 将此目录的所有权更改为您的 Web 服务器运行的用户和组
    • 将此目录的模式更改为0700

    如果您的 Web 服务器以无人身份运行(某些发行版在其下运行多个服务器进程的非特权用户),请记住,以该用户身份运行的其他进程也可能能够访问该目录。如果这是一个问题,您可能需要为您的 Web 服务器创建一个专用用户。除了创建用户和组之外,这还需要更改 Web 服务器配置和/或启动脚本。

    由于我推荐模式 0700,因此该组在技术上并不重要,但您必须记住,如果 Web 服务器用户的 umask 设置为002 而不是更常见的 022。专用组将确保不会无意中打开此类文件以供共享组的其他成员写入,您可能会将 Web 服务器用户粘在其中。

    • 0
  7. Jonathan Leffler
    2009-07-03T21:25:52+08:002009-07-03T21:25:52+08:00

    确保您的 Web 服务器以具有有限权限的用户身份运行,并将受限组作为其组。然后确保文件只能由用户和/或组访问,通过删除公共读取和执行访问权限(几乎永远不应授予公共写入访问权限)。

    维护站点的人也需要访问这些材料——最好不要使用超级用户权限。这可能会改变你做事的方式。

    考虑 ACL 是否合适 - 这将允许您为 Web 服务器组提供对文件的读取访问权限,为维护组提供读取和写入访问权限,但仍然拒绝一般公共访问。如果没有 ACL,您只能拥有一组组权限。

    • 0
  8. gbarry
    2009-07-03T21:54:54+08:002009-07-03T21:54:54+08:00

    如果您删除读取权限,他们将无法看到那里有哪些文件。(如果你删除了执行权限,那么他们就不能 cd 到它。)

    • 0
  9. aem
    2009-07-03T11:29:59+08:002009-07-03T11:29:59+08:00

    Linux/Unix 中目录上的“x”(执行)位控制是否可以列出其内容。

    • -3

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

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

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

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

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

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

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

    • 30 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 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
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +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