高级文件权限以及如何正确读取它们

高级文件权限以及如何正确读取它们
alisto@ubuntu:/projects/solarproj$ \ls -al
total 32
drwxrwsr-t 3 root   solarproj 4096 Dec 8 16:02 .
drwxr-xr-x 3 root   root      4096 Dec 8 15:29 ..
-rw-rw---- 1 boband boband    802  Dec 8 15:44 bearings.jpg
-rw-rw-r-- 1 boband solarproj 101  Dec 8 15:43 controller.c
drwxrwSr-x 2 alisto solarproj 4096 Dec 8 15:40 old
-------rwx 1 alisto solarproj 19   Dec 8 14:08 power
-rw-r--r-- 1 alisto solarproj 81   Dec 8 15:44 schedule.txt
-rw----r-- 1 boband solarproj 576  Dec 8 15:58 temp
lrwxrwxrwx 1 alisto solarproj 24   Dec 8 16:02 temp.sym      ->  ../solarproj/temp

两个用户都属于 Solarproj 组

  1. Bob 可以更改文件中的内容schedule.txt吗?为什么?

    如果我正确地阅读了这篇文章,答案是否定的,因为组设置为仅读取。

  2. Alice 可以删除该文件controller.c吗?为什么?

    该文件提供了读写权限,但由于粘性位,她无法删除它/不太确定她

  3. 哪些用户可以读取该文件power?为什么?

    不属于组或 Alisto 的所有其他用户

  4. 为什么Alice可以列出old目录中的内容,而Bob却不能?

    由于组权限上的 S,x 不存在

  5. Alice 可以读取该文件temp.sym吗?为什么?

    不,因为她不被允许。

我不知道我的答案是否正确,如果有人可以纠正我的错误答案并为我提供一些帮助,我会很高兴。我很想测试一下并亲眼看看,但我的虚拟机无法正常工作,我需要为几天后即将进行的测试进行学习,然后再试一次!

答案1

当使用命令显示权限时ls,它遵循一定的结构。让我们看一个例子:

-rw-rw-r--

第一的字符表示文件类型,称为文件描述符,接下来的三个字符表示创建该文件的用户的权限,下一组三个字符指示用户组的权限,以及最后三个字符指示其他人的权限。

在这个例子中:

  • 第一的字符,称为文件描述符,指示文件的类型。在本例中-rw-rw-r--,它是开头的破折号。
  • 接下来的三个字符指示创建该文件的用户的权限。在这种情况下-rw-rw-r--,是的rw-
  • 接下来的三个字符指示前面提到的用户组的权限。
  • 最后三个字符显示其他人的权限。

第一个字符或文件描述符,一个破折号 ( -),表明这只是一个普通文件。另一方面,如果这是目录的权限,则它将是单个权限d。文件描述符可能值的非完整列表:

  • d- 一个目录
  • -- 一个“普通”文件
  • l- 符号链接
  • s- UNIX 套接字
  • p- 一条管道

其他三组三个字符遵循结构[read][write][exec],其中每个括号包含一个字符。

因此,在我们的示例中-rw-rw-r--

  • 创建该文件的用户的权限是rw-.这样用户可以读取和写入文件,但不能执行它。
  • 用户组的权限也是rw-,这意味着该用户组也可以对其进行读写。
  • 其他人的权限是r--;这意味着其他人只能读取该文件,而不能写入或执行它。

那么,对于你的问题:

Bob 可以更改文件schedule.txt 中的内容吗?为什么?

如果我正确地阅读了此内容,答案是否定的,因为组设置为仅读取

-rw-r--r-- 1 alisto solarproj 81   Dec 8 15:44 schedule.txt

你是对的。boband是该组的一部分solarproj,因此他的权限是r--,这意味着他只能读取该文件,而不能更改它。

Alice 可以删除文件controller.c 吗?为什么?

该文件提供了读写权限,但由于粘性位,她无法删除它/不太确定她

-rw-rw-r-- 1 boband solarproj 101  Dec 8 15:43 controller.c

是的她可以。她的权限是rw-因为她是 Solarproj 组的一部分,所以可以更改文件,包括删除它。

哪些用户可以读取电源文件?为什么?

不属于组或 Alisto 的所有其他用户

-------rwx 1 alisto solarproj 19   Dec 8 14:08 power

再说一遍,正确。只有 1) 不在该solarproj组中并且 2) 不在该组中的用户alisto才能够读取、更改或执行该文件。

为什么Alice可以列出old目录中的内容而Bob却不能?

由于组权限上的 S,x 不存在

drwxrwSr-x 2 alisto solarproj 4096 Dec 8 15:40 old

没有。表示S该文件可执行文件setguid 位已设置。

Alice 可以读取文件 temp.sym 吗?为什么?

不,因为她不被允许

-rw----r-- 1 boband solarproj 576  Dec 8 15:58 temp
lrwxrwxrwx 1 alisto solarproj 24   Dec 8 16:02 temp.sym      ->  ../solarproj/temp

正确的。temp.sym点文件temp; whilealisto可以读取temp.sym, 因为它指向temp, 其中alisto 不能读完后,她将被拒绝许可。

相关内容