Linux:用户与组权限

Linux:用户与组权限

我对 Linux 还不太熟悉,正在测试它。我通过 SSH 连接到服务器,并在以ussingtestuser身份登录时创建了一个目录。我注意到它没有创建主目录,所以我也使用 . 创建了主目录。当我执行. 时,目录被列出。rootaddusermkdirdrwxr-xr-x 2 root rootls -l

因此,我使用 更改了新主目录的所有者chown。现在看起来像drwxr-xr-x 2 testuser root,但我不知道该如何处理root(组对吗?)。我对所有这些用户、组及其权限感到困惑。

  1. 因此,/home/testser属于用户testuser,并且它可以更改其目录中的内容,但不能更改其他内容。这root对主目录意味着什么?

  2. 在这个例子中testuser,我们假设它属于组root。这是否意味着它具有和的权限的并集testuserroot适用于此用户?

  3. 另外,我注意到,对于我创建的新用户,会创建一个新组,其名称与用户名称相同。这有什么用处?

答案1

首先,您必须了解,在查看目录或文件时,传统的 Unix 权限仅知道区分:

  • 用户
  • 用户所在组
  • 其他人

这些权限反映在rwxrwxrwx符号中,称为模式.r代表读取、w写入和x执行。它们的含义与名称基本相同,只是执行权限允许您递归目录树。

因此,/home/testser 属于用户 testuser,它只能更改其目录中的内容,但不能更改其他内容。root 表示主目录的什么?

root这是目录所属的组。这意味着组中的任何用户都将拥有权限符号root第二部分所指示的权限。例如,意味着组中的任何人都只能读取和列出该目录,但不能写入。*rwxdrwxr-xr-xroot

在这个 testuser 示例中,我们假设它属于组 root。这是否意味着 testuser 和 root 的权限的并集适用于此用户?

用户的权限适用于此目录,因为该目录属于他们。如果恰好testuser也属于组root,则该组中的权限也将适用。如果两者都不是,则只有来自第三部分的权限才适用。

假设您正在上计算机科学课,有一台计算机,alice和都bob属于组students。他们每个人都有一个具有rwxr-x---权限的主目录,所有权为alice:studentsbob:students。这意味着任何学生都可以列出和阅读其他每个学生的内容,但他们不能修改同事的文件。

另外,我注意到,对于我创建的新用户,会创建一个新组,其名称与用户名称相同。这有什么用处?

这允许您更灵活地控制权限。有时您不希望有一个在用户之间共享的组。特别是对于主文件夹,您甚至不希望任何其他人阅读它们。这就是为什么 是个好主意,chown -R testuser:testuser /home/testuser因为没有组权限设置(甚至rwx一个)会造成安全问题。

* 嗯,不完全是,因为任何 root 用户都可以做任何事情,但如果组是其他的,那么上述情况就成立。

相关内容