假设一位老师在课程开始之前为他的学生准备了一系列涵盖整个课程的突击测试。
tests
├── subject1
│ └── exam.txt
├── subject2
│ └── exam.txt
├── subject3
│ └── exam.txt
└── subject4
└── exam.txt
假设他将该tests
目录放在每个学生的计算机用户主目录中。
然后他递归设置以下权限
owner: teacher
group: teachers
mode: 550
放在目录上tests
,以便只有其他老师可以阅读科目还可以访问考试文本。
在第一学期结束时,他认为他的学生已经为第一次审判做好了准备,所以在他出发的前一天晚上
owner: teacher
group: teachers
mode: 771
在tests
目录和
owner: student
group: teachers
mode: 770
放在子目录中subject1
,以便学生第二天就可以访问测试只有在他告诉他们路径之后。
第二天早上,他发现学生们不仅已经读过试卷,而且还知道所有科目,因为他们利用了这样一个事实:系统会告诉他们何时尝试访问不存在的目录以及何时尝试访问现有目录最终没有读取权限,因此他们暴力tests
使用ls
字典。
显然,老师天真地认为学生不会在考试前尝试阅读课文。尽管如此,我的问题是:
不给予有什么意义读目录上的权限用户是否仍然可以暴力破解其中每个对象的名称?
当用户尝试访问他本来不应该访问的内容时,为什么系统不直接返回一般错误?
答案1
不,Unix/Linux“权限模型”并没有“损坏”,而是您的场景。
Unix/Linux 是一套强大的工具,但它并不妨碍您搬起石头砸自己的脚。