这是我们在学校里讨论过的东西。
大概是这样
- 创建目录(名为
data
,以供此处参考)
- 将权限更改为“
chmod 711 data
”
- 组和其他人只有
x
-可以进入目录
- 他们无法列出目录
- 现在,创建一个目录
difficult-name-here
(可以是一个哈希字符串)
- 将权限更改为“
chmod a+rx difficult-name-here
”
- 此目录的内容安全,而外部目录无法列出
- 知道“难名”的人可以跳到第二个目录
- “
cd path/to/data/difficult-name-here
”
- 其他人看不到名称,也无法访问目录内容
- 但是,
root
可以始终访问所有内容(在这里这不是问题)
difficult-name-here
与您要提供此数据的人共享
- 将共享文件保留在第二个目录中
非常粗糙,但是如果可以在不破坏unix访问控制的情况下将其破解,我想知道。
来自的评论更新dmckee
,
这恰恰是我们得出的结论!
“默默无闻的安全性”限制了安全性。
话虽如此,在设计数据保护时,
重要的是确定其价值。
您应该以
- 破坏安全的成本高于
- 受保护内容的成本,
- 与你的偏执成正比
在这种情况下,如果root
决定在公共访问中的某个位置枚举目录树,那么
您的秘密就泄露了!但是,您是在保护自己免受根源还是潜在的不负责任?
如果真是这样,那么您还有更多的事要担心共享文件。
更新有关问题中无效的注释。
我在Linux的早期就使用了它,以了解它的工作原理。
如果得到的是“ cannot access non-existant file
”而不是“ 'permissions denied
”,则很可能是顺序错误。你想要的应该是这样的,
755711755任意-===访问权限
BasePath / CoverDir / Obscure / protectedFile.txt
| | ^^^^^^^^^^^^^^^^^^^
| ^^^^^^^^目录名称读取权限
^^^^^与朋友公开分享。晦涩的目录。
无障碍
目录。
- 如果将“
CoverDir
访问权限设置为'rwx--x--x
”,则
组和其他用户只能进入目录,而不能读取其内容。
- 现在,如果在其中使用晦涩的目录名
“ Obscure
”,并使用“ rwxr-xr-x
” 给予完全读取访问权限,那么
任何知道此名称的人都可以列出其内容。
- 这种访问必须在外部使用'
ls BasePath/CoverDir/Obscure
',
因为您组中的人员和其他人将无法使用' ls BasePath/CoverDir
'。