我有一个 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 之前。问题是,/var/lib/redis/dump.rdb 的权限是 -rw-rw----,所以我得到以下错误:
gzip: /var/lib/redis/dump.rdb: Permission denied
所以我的问题是,我对给予我的部署者用户更广泛的权限不感兴趣,所以我希望每次运行 cron 作业时创建的转储具有其他权限。
我怎样才能以最简单的方式完成它?
最佳答案
Redis 转储文件是使用标准的 fopen('...',"w") 调用创建的。所以访问权限其实是继承自当前的umask .
在启动 Redis 服务器本身之前,尝试更改用于启动 Redis 服务器的脚本或 shell 中的 umask,方法是使用 umask 命令:
$ umask 022
此命令将更改掩码,以便创建具有 644 访问权限的新文件(666 是默认访问权限)。
关于ubuntu - 更改 redis 转储的默认文件权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13364713/