我需要一些帮助,了解将文件所有权设置为所有者时会发生什么情况。也就是说,chmod 400 意味着只有所有者可以查看文件,其他人无法对其进行任何操作。但是,如果我打开 vim(作为所有者用户)并更改文件,我可以使用“wq!”对其进行写入。那么,如果用户可以覆盖这些权限,这些权限究竟会限制什么?我是否也可以在 vim 以外的其他工具中覆盖权限(即从程序中写入文件)?
答案1
系统完全按照预期运行并遵循您的明确指示。
使用!
你告诉 vim按照我说的做,我知道自己在做什么。由于您是文件的所有者,您可以更改权限以允许写入,因此这实际上就是 vim 将执行的操作。
答案2
使用以下方法使文件不可变:聊天室即chattr +i yourfile
。那么任何人都无法更改它,即使是 root 也不行,除非取消设置该属性。请注意,只有 root 可以设置或取消设置此属性。
答案3
是的,作为文件所有者(或 root 用户),您可以忽略文件权限。不过,正如您已经看到的,这确实需要一个覆盖开关(!
vim 中的)来强制解决问题,因为正常行为当然是尊重文件系统权限。许多甚至大多数程序都没有设计这样的覆盖。
这使得rwx
权限类型正常自主访问控制,它们在一定程度上依赖于对软件运行良好的隐性信任。
强制访问控制(例如 SELinux)可以强制执行正确的行为,即使软件行为不当。