我想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
。还有其他想法吗?