将文件移动到另一个用户的主目录(不使用 sudo)?

将文件移动到另一个用户的主目录(不使用 sudo)?

我有几个文件想要移动到另一个用户的主目录。我无权写入该用户的主目录,但我知道他的密码。

我知道怎么做复制文件使用scp(参见这里)。但是,如果我想移动文件,复制然后删除原始文件的效率很低。有没有办法移动该文件,而不使用sudo(我不知道 root 的密码)?

答案1

根据目标用户实际上可以访问其原始位置的文件的某些假设,以下方法可能有效:

SRC='/path/to/existing/file'
DST='/path/to/new/file'

su target_user sh -c "ln -f '$SRC' '$DST'" && rm -f "$SRC"

这会将文件“移动”到新用户的位置,但不会更改所有权或权限。

答案2

su如果您知道密码,您可以访问任何用户。 (对于 sudo,您需要成为 sudoer,并且知道自己的密码)。

因此,使文件可读且目录可写(用于删除),将文件添加到共享组,或使用访问控制列表(ACL)setfacl在 gnu/linux 上设置文件权限等有哪些不同方法

然后su other user 然后做动作。


另请参阅 @roaima 的答案,了解如何在不向接收用户授予写访问权限的情况下执行此操作。

相关内容