【问题标题】:Prevent a user to see public folder阻止用户查看公用文件夹
【发布时间】:2020-03-12 12:11:22
【问题描述】:

我在基于 linux 的映像上的容器上有 php 应用程序。该应用程序必须是公共访问(至少 007)才能正常工作。我正在尝试使用脚本创建一个用户(在容器内),并将位于 /var/www 下的软链接相关项目提供给该用户的主目录。该用户应该只对拥有的项目进行读写执行(我用 chown 设置)。

我是这样管理该权限的:

  1. 将所有文件夹的所有者设置为root

  2. 将所有文件夹的权限设置为 500 (r-x------)

  3. 创建一个用户(我用 python 脚本取了这个名字)。

  4. 将相关文件夹的所有者设置为创建的所有者。

  5. 以创建的用户身份运行软链接命令。软链接源位置是 /var/www 目标位置 /home/created-user。

使用该设置,用户只能看到其项目目录。但是,由于缺乏公共许可,我的 php 应用程序不再工作。为此,我必须将权限设置为至少 007。但这次其他用户可以 rwx 相关目录。

我尝试了 770 个仍然无法运行的应用程序。

我的问题是如何限制特定用户或 .这个问题

你知道其他方法吗?

【问题讨论】:

    标签: linux bash permissions file-ownership


    【解决方案1】:

    Unix 权限旨在允许这样做,但有一些限制(由我们在这里不需要的 ACL 利用)。

    每个文件/目录都有一个owner 和一个group,我们可以利用它来发挥我们的优势。

    在您的情况下,您需要一个用户的所有权限,您的网络服务器的阅读权限,而其他用户则一无所有。

    您可以使用750 (rwxr-x---) 实现此目的,但您需要将目录的组更改为您的网络服务组。

    例子:

    chgrp -R apache /var/www
    chmod -R 750 /var/www
    

    【讨论】:

    • 鉴于 OP 声称他们尝试了类似的方法,因此可以通过更明确地解决它与 OP 所说的他们尝试的方法有何不同以及为什么会有所不同来改进这个答案。
    • @Camusensei 感谢您的回答。我解决了这个问题并将其写下来。我对 /var/www 的子文件夹尝试了同样的方法。但是没用
    【解决方案2】:

    我不知道 007 和 777 权限之间的区别。知道这解决了我的问题。

    我的新步骤是:

    1. 将所有文件夹的所有者设置为 default_user(random)(我使用 adduser 命令执行此操作)

    2. 将所有文件夹的权限设置为 007 (------rwx)

    3. 创建一个用户(我用 python 脚本取了这个名字)。

    4. 将相关文件夹权限设置为 777 (rwxrwxrwx)。大概 707 可以工作

    5. 以创建的用户身份运行软链接命令。软链接源位置是 /var/www 目标位置 /home/created-user。

    与我的问题相关的帖子:https://superuser.com/questions/547699/difference-between-chmod-777-and-chmod-007

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-30
      • 2012-04-30
      • 1970-01-01
      • 1970-01-01
      • 2021-10-03
      • 1970-01-01
      • 2014-07-08
      相关资源
      最近更新 更多