我已经在 SO 上问过这个问题,但也许那是错误的位置。对于重复发帖表示歉意,但这个问题可能在这里有更好的受众。
原来的问题是:/sf/ask/1793350331/
正文如下。谢谢。
当运行 postgresql [9.3]“COPY TO”功能时,postgres 用户创建一个文件。我已经告诉它把文件放在 tmp 目录中(尽管如果需要的话可以更改)。
这是作为 cron 作业的一部分运行的,用户是专门为此任务设置的“导出”用户。最终目标是导出的文件最终位于 /home/export/created_file.csv 中。
1)postgres
如果不将文件夹设置得过于宽松,则无法将导出的文件直接存储到另一个用户的主目录中。
2) 导出用户可以将文件从其/tmp
主目录复制到其主目录,但随后无法清理(删除)postgres
中拥有的文件/tmp
。
这是一个日常过程,因此需要以某种方式删除旧文件。我可以添加一个 cron 作业来清理文件,但我希望有一个更干净的解决方案 - 要么是一种更改创建文件的权限的方法postgres
,要么是某种方式为导出用户提供能够删除的额外权限该文件在创建之前。
然而,为导出用户提供与postgres
一般情况相同的权限并不是一种选择,因为这样它将可以自由控制数据库。
任何建议,无论是基于 unix 还是基于 postgres,都将非常受欢迎,谢谢。