如何将文件从一种用途复制到另一种用途?

如何将文件从一种用途复制到另一种用途?

我有一个网络服务器,很少有开发人员使用它。网站正在website使用中。其他用户就像user1user2等等。我已授予 sudo 访问权限user1user2.. 来访问website

我现在遇到的问题是用户无法从中复制脚本,website因为某些脚本不允许直接读取users.即使我尝试使用 sudo cp 它也会失败,因为website没有users目录的写权限。

由于某些安全季节,我不想更改文件权限。我在某个地方看到可以使用 tar 来做到这一点,但无法弄清楚。

有人可以帮忙吗...

谢谢!

答案1

你可以做user1类似的事情

sudo -u website cat ~website/somefile > ~user1/somefile

请注意,~user1/somefile将首先由用户运行 shell ( user1) 创建,并且cat将执行为website

您可以使用 tar(1) 与相同的技巧,对于多个文件:

sudo -u website tar cf - ~website/foo ~website/bar | tar xf -

在他的目录中运行user1,这将在标准输出上“创建”tar 存档为website,另一个 tar (没有 sudo,因此以与运行 shell 的用户相同的用户身份运行,即user1)将该虚拟 tar 文件解压到当前目录(可以user1 写入)。

更新请注意,tar 将创建通向文件的子目录,您可以通过指定来减少该行为-C,因此 tar 将在启动之前进入指定的目录:

sudo -u website tar -C ~website -cf - foo bar | tar xf -

这样, fooandbar将在当前目录中创建,而不带前导子目录(但如果添加blah/baz,它将创建blah为所在的子目录baz

相关内容