ubuntu - 更改 redis 转储的默认文件权限

标签 ubuntu permissions redis

我有一个 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/

相关文章:

python - 如何使用 Python API 在 Redis 中将 sadd 与多个元素一起使用?

ubuntu - ruby_block[等待 logrotate 服务套接字] Action 运行

php - 为什么 PHP 错误显示在终端中,而不是在 ubuntu 的浏览器中显示

ubuntu-14.04 - Lubuntu 禁用 [alt] + 拖动移动窗口

linux - 所有者无法访问该文件

c# - 在 Windows 7 下为非管理员用户提供目录的完全控制

redis - redis 会自动绑定(bind)到 CPU 内核吗?

ubuntu - 由于无法制作备份链接,Nginx 无法安装

php - 无法在 Windows 上打开由 PHP 应用程序生成的文件

python - Celery:接收到类型为 <AsyncResult: [hash]> 的未注册任务