如何授予访问/root中子文件夹的权限?

如何授予访问/root中子文件夹的权限?

我需要授予此文件夹中的权限read/write,该文件夹是/root目录的子文件夹mike.jackson(由于某种原因,有人在 /root 内创建了此文件夹):

/root/Products/Metadata/ApplicationServers/Port8080/Marker/

鉴于ls -la此,获得许可:

total 12
drwxrwxrwx 3 webproject_deployer users 4096 Sep  1  2010 .
drwxrwxrwx 3 webproject_deployer users 4096 Aug  4  2010 ..
drwxrwxrwx 6 webproject_deployer users 4096 Mar 15  2011 xml

所以我加入了mike.jackson这个users群组

users:x:100:mike.jackson

但他仍然无法访问该文件夹。

这是owner设置:

webproject_deployer:x:1071:100::/home/webproject_deployer:/bin/bash

用户通过 进行身份验证LDAP, 也是如此mike.jackson。我该怎么办?我不想添加mike.jackson到 sudoers,因为如果我这样做,我无法保证他不会像sudo在这个文件夹中一样执行恶意命令。

答案1

用户需要x对层次结构中的每个文件夹具有权限。通常,/root目录不允许任何用户root进入,因此请从那里开始并逐步向下操作。

不过,如果可能的话,我建议你将其移到其他地方。如果你不小心,属于 root 的数据可能会意外公开。

答案2

您需要检查权限链,

想法:
mike 可以访问吗 /
mike 可以访问吗 /root
mike 可以访问吗 /root/Products
...
mike 可以访问吗 /root/Products/Metadata/ApplicationServers/Port8080/Marker/mike

读取不是必需的,但执行遍历文件夹是最少的。

想法:chmod 711到树上的每个文件夹

答案3

如前所述,此方法无法正常工作的原因是用户需要访问完整路径,而不仅仅是特定目录。最佳答案是从 /root 中删除目录结构。您不应在根目录中执行任何操作,也不应允许从中安装或运行任何内容。您唯一应该登录根目录的情况是执行系统管理任务。如果您需要以提升的权限运行应用程序,则将其作为服务运行或创建特定用户,例如 Apache 或 MySql。

一个主要问题是,从您当前的结构来看,该应用程序将具有 root 权限,因此如果攻击者设法通过漏洞运行恶意代码,他们可能会对主机系统造成难以估量的损害。如果该应用程序与其自己的帐户相关联,那么它只能对自己构成威胁,而不会对更大的系统构成威胁。

话虽如此,如果这是一个 Web 应用程序,那么服务器应该具有 755 个权限,连接到该服务器的用户将具有服务器的权限。如果此人是需要管理服务器权限的本地用户,则将其用户帐户添加到与该特定应用程序关联的组,并相应地设置组权限。

相关内容