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 组
Bob 可以更改文件中的内容
schedule.txt
吗?为什么?如果我正确地阅读了这篇文章,答案是否定的,因为组设置为仅读取。
Alice 可以删除该文件
controller.c
吗?为什么?该文件提供了读写权限,但由于粘性位,她无法删除它/不太确定她
哪些用户可以读取该文件
power
?为什么?不属于组或 Alisto 的所有其他用户
为什么Alice可以列出old目录中的内容,而Bob却不能?
由于组权限上的 S,x 不存在
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
不能读完后,她将被拒绝许可。