【发布时间】:2019-05-01 02:42:06
【问题描述】:
假设我有一个像这样的文件夹树:
root/
ro/
symlink-to-ro/
我的问题有两个:
(a) 有没有办法让ro目录下的所有文件都是只读的,但是如果这些文件是通过符号链接访问的,让它们可写?
(b) (a) 的反面:有没有办法让文件只有在直接访问时才可写?
这仅适用于 *nix/MacOS
【问题讨论】:
-
你有这方面的用例,还是纯粹出于好奇?如果您有用例,我们可能会想出另一种方法来做同样的事情。
-
@Amadan 我能想到的唯一选择就是
rsync -r,但问题是当原始文件发生变化时,它们不会相互镜像。 -
我可以通过代表看到你不是新手,所以我试图更加谨慎地暗示这可能是一个 XY 问题 :) 我的意思不是“替代访问控制路径”,我的意思是你确定你的潜在问题不能用通常的权限系统、组和/或 ACL 或其他方法来解决吗?您尝试在什么场景中使用它?
-
是的,我很好奇,如果有任何与该问题相关的好的解决方案,它们是相关的。基本上,我试图阻止某人对稍后将被命令行工具覆盖的文件进行更改。该工具会吐出文件,这些文件将是只读的,或者会有一些机制告诉用户修改文件是浪费时间,因为它们稍后会被覆盖。
-
Linux 通常只在自动生成的文件中使用 cmets,并相信具有 sudo 权限的用户不是白痴:D 如果该工具是二进制可执行文件,您可以将其设置为 setgid 并使用一个组对目录有写权限。例如
drwxrwxr-x amadan writable file,与drwxrwsrwx amadan writable utility;这将只允许writable组的成员以及utility的成员编辑文件,而不管运行它的用户是谁。
标签: linux macos file-permissions symlink readonly