我在目录中找到了一些文件:
drwxrws-wt 2 me mygroup 4,0K 10.1. 12:34 .
-rw-r----- 1 someone mygroup 10G 10.1. 11:22 someonesfile
me
并且someone
是没有补充组的常规用户。
如何使用me
帐户获得该文件的所有权?
如果这样me
做:
$ chown me someonesfile
chown: doing bla bla bla: permission denied
然而me
可以“改变" 通过用新文件替换文件来拥有所有权:
cp someonesfile myfile && mv -f myfile someonesfile`
所以我的主要问题是是否有更简单的(更便宜)在所描述的环境中更改文件所有权的方法,而无需使用 root 帐户或其他权限提升。基本上我想知道是否me
可以以某种方式利用目录权限以某种方式重置所有权/权限而不复制整个文件。
我还注意到,编辑文件vim
并强制覆盖:w!
将更改文件的所有者,这与执行操作相同吗cp && mv
?至少touch someonesfile
会因权限被拒绝而失败。
答案1
是的,vim
将删除原始文件并创建一个新文件以放入新内容。
你的cp && mv -f
路就是要走的路。
请注意,当t
在您的情况下在目录上设置该位时,仅拥有该目录的写权限是不够的,您还需要成为文件或目录的所有者(就像您一样)。
答案2
只有 root 可以更改文件的所有者。在不涉及 root 的情况下,您所能做的就是删除该文件并使用该名称创建或重命名另一个文件。
如果您被允许盗用该文件,这将是一个安全漏洞。例如,用户someone
可以打开该文件,然后验证其所有权和权限(通过调用fstat
打开的文件句柄),并得出结论:只有运行的程序someone
才能生成此数据。如果您能够盗用该文件,您就可以违背someone
的意愿更改其内容。