尝试使用 Sudo 用户进行复制

尝试使用 Sudo 用户进行复制

我有一个“超级用户”,它具有 /opt/example 文件夹的写入权限。我有一个名为“user”的普通用户,它具有 /opt 的读取权限,“user”有一个目录 /home/user/example。 “用户”具有 sudo 权限。我想将整个示例文件夹从“/home/user/example”复制到“/opt/example”。我已经尝试了现有线程中的以下选项,但没有一个起作用。

在Linux中将文件从用户复制到另一个用户

ssh [email protected] 'sudo tar -C /home/example/ -czf - .' | tar -C /opt/example/ -xzf -

scp -r /home/example /opt/example/

sudo chown SuperUser /home/example

sudo -u SuperUser < /home/example sh -c 'cat > /opt/example' 

cat ~/home/example | sudo -u SuperUser tee ~/opt/example >/dev/null

我相信我在这里遗漏了一些东西。有人可以纠正我吗?

答案1

root 帐户在复制时将保留文件的所有权,并且还可以读取所有文件并写入目标目录

sudo cp -a /home/user/example /opt/

如果目标/opt/example已经存在,您可以使用它

sudo cp -a /home/user/example/. /opt/example/

你自己的尝试并不完全正确,因为......

  • ssh用于连接到远程机器
  • scp用于复制到远程机器或从远程机器复制
  • sudo chown更改了目标目录的所有权但没有复制任何内容
  • sudo ... cat我不确定这里发生了什么
  • cat | sudo同样地

答案2

我建议你尝试一下

sudo cp -p -R /home/user/example /opt/example

相关内容