我有一个网络服务器,很少有开发人员使用它。网站正在website
使用中。其他用户就像user1
,user2
等等。我已授予 sudo 访问权限user1
,user2
.. 来访问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 -
这样, foo
andbar
将在当前目录中创建,而不带前导子目录(但如果添加blah/baz
,它将创建blah
为所在的子目录baz
)