将输出文件写入特权目录 - 从作为非特权用户运行的可执行文件

将输出文件写入特权目录 - 从作为非特权用户运行的可执行文件

我想bu以用户身份执行该程序backup,并且希望输出文件位于 location /mnt/nas1/。但是,此位置只能由 写入sysred,并且bu没有任何命令行选项可以输出到 stdout,只能输出到文件。如何将输出文件写入目标位置,而不将整个文件临时保存到临时目录?这是一个示例命令:

sysred@host1:~> sudo -u backup bu -f /mnt/nas1/backup.zip

这当然会失败,因为backup无法访问目标文件夹。

sysred@host1:~> sudo -u backup bu -f /dev/stdout > /mnt/nas1/backup.zip

我认为这也会失败,因为当前/dev/stdout属于sysred.

我尝试的下一件事是使用命名管道。作为用户sysred

mkfifo -m 0777 /tmp/backup
cat /tmp/backup > /mnt/nas1/backup.zip &
sudo -u backup bu -f /tmp/backup

错误信息:Failed to create /tmp/backup: zip: not a valid zip file。还有其他想法吗?

相关内容