Flo*_*ker 12 linux permissions posix
看来,Linux支持更改符号链接(即业主lchown
),但改变一个符号链接的模式/许可(即lchmod
)是不支持的。据我所知,这是符合 POSIX 的。但是,我不明白为什么要支持这些操作之一而不是两者。这背后的动机是什么?
Sté*_*las 10
与大多数类 Unix 系统(Apple OS/X 是少数例外之一)一样,Linux 在解析目标时会忽略符号链接的权限。
然而,符号链接的所有权与其他文件一样,在涉及重命名或取消链接其在t
设置了位的目录中的条目的权限时是相关的,例如/tmp
.
为了能够删除或重命名 中的文件(符号链接与否)/tmp
,您需要成为该文件的所有者。这是人们可能想要更改符号链接的所有权(授予或删除取消链接/重命名它的权限)的原因之一。
$ ln -s / /tmp/x
$ rm /tmp/x
# OK removed
$ ln -s / /tmp/x
$ sudo chown -h nobody /tmp/x
$ rm /tmp/x
rm: cannot remove ‘/tmp/x’: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
此外,正如 Mark Plotnick 在他现在删除的答案中提到的,备份和存档应用程序需要lchown()
将符号链接恢复到它们的原始所有者。另一种选择是在创建符号链接之前切换 euid 和 egid,但这不会有效并且会使符号链接提取到的目录的权限管理复杂化。
归档时间: |
|
查看次数: |
2525 次 |
最近记录: |