4

我有一个 cron 作业,它在一个名为“deployer”的用户下运行,访问受限。cron 作业正在执行我的 redis 数据库的备份,从而生成一个 dum /var/lib/redis/dump.rdb。

现在,cron 作业现在尝试/bin/gzip -c /var/lib/redis/dump.rdb > /home/deployer/Backup/.tmp/redis_backup/databases/Redis/dump.rdb.gz在将其发送到 S3 之前执行 a。问题是,/var/lib/redis/dump.rdb 的权限是 -rw-rw----,所以我收到以下错误:

gzip: /var/lib/redis/dump.rdb: Permission denied

所以我的问题是,我对给我的部署用户更广泛的权限不感兴趣,所以我希望每次运行 cron 作业时都会创建的转储具有其他权限。

我怎样才能以最简单的方式做到这一点?

4

1 回答 1

3

Redis 转储文件是使用标准 fopen('...',"w") 调用创建的。所以访问权限实际上是从当前的umask继承的。

在启动 Redis 服务器本身之前,尝试使用 umask 命令更改脚本中的 umask 或用于启动 Redis 服务器的 shell:

$ umask 022

此命令将更改掩码,以便创建具有 644 访问权限的新文件(666 是默认访问权限)。

于 2012-11-13T20:56:28.797 回答