将文件移动到另一个用户的主目录(无需 sudo)

将文件移动到另一个用户的主目录(无需 sudo)

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

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

答案1

你可以:

  1. 使您的主目录可供全世界读取和写入。
  2. 登录他的账户。
  3. 将您的文件移动到他的目录中。
  4. 更改所述文件的所有权。
  5. 注销他的帐户。
  6. 恢复你的主目录的权限。

详细的分步指南

假设您是 becko,并且想要将文件移动到 bob 的主目录。因此,您的主目录路径如下(默认情况下):

becko: /home/becko/
bob: /home/bob/

现在假设您要移动的文件的路径如下:

/home/becko/file_01
/home/becko/file_02
/home/becko/file_03

现在,有了这个介绍,我们就可以开始了。

注意:此示例假设所有相关文件均位于您的主目录下一级。

第一步:让你的主目录可供全世界读取和写入

登录为你自己,打开一个终端(Ctrl+Alt+T)

转到你的主目录并使其可供所有人阅读:

$ cd ~
$ chmod 0777 .

第二步:登录他的账户

然后,使用上面提供的示例:

$ su - bob

系统将提示您他的密码。

第三步:将你的文件移动到他的目录中

登录后,您应该会看到以下提示(或类似的内容):

bob@hellsdesk:~$ 

现在您已进入 bob 的主目录。现在是时候将您的资料移过去了。

以下命令可以做到这一点:

$ mv /home/becko/file_01 .
$ mv /home/becko/file_02 .
$ mv /home/becko/file_03 .

第四步:更改文件所有权:

注意:对我来说,所有权已自动更改为 bob,但还是谨慎为好。:)

命令:

$ chown bob:bob file_01
$ chown bob:bob file_02
$ chown bob:bob file_03

第五步:注销他的帐户

这个很简单。输入:

$ logout

你的提示应该变回如下形式:

becko@hellsdesk:~$

第六步:恢复您的主目录权限。

默认情况下,权限为 0755。因此,我们将执行以下操作:

$ chmod 0755 .

关闭终端,您就完成了!

答案2

你不需要 root 的 sudo 密码,你需要你的密码;事实上,在正常的 Ubuntu 安装中没有 root 密码。

但是,如果您不能或不想使用 sudo,您可以确保文件及其目录对每个人都具有读/写(修改)权限,然后以其他人的身份登录并正常移动它。或者,在其他人的主目录中创建一个目录,并将其设置为可写,以便您可以以自己的身份将内容移动到那里。

这是基本的 Linux 行为。

答案3

实际上我们可能需要更多信息。例如,您不需要知道 root 密码即可使用 sudo。如果您的用户属于 sudo 组,您可以使用用户的常规密码使用 sudo。因此,如果是这种情况:

sudo mv file_to_move /home/desired_user

如果您不能使用 sudo,您可以编写一个简单的 bash 脚本来使用 scp 复制文件,然后将其删除。但是,如果您安装了 rsync:

rsync -avz --remove-source-files -e ssh file_to_move [email protected]:/home/desired_user

也有效。

相关内容