当文件和目录可读/可写时获取文件所有权

当文件和目录可读/可写时获取文件所有权

我在目录中找到了一些文件:

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的意愿更改其内容。

相关内容