automysqlbackup-转储文件权限

automysqlbackup-转储文件权限

我正在使用 automysqlbackup,这是创建的默认 cron 条目

#!/bin/sh
test -x /usr/sbin/automysqlbackup && /usr/sbin/automysqlbackup

我的文件存储在这里

/var/cache/automysqlbackup

我需要用我的用户来读取它们,但所有的转储都归 root:root 和 600 所有

-rw------- 1 root root 945671 mars  12 06:49 my_2013-03-12.sql.gz
-rw------- 1 root root 951541 mars  13 06:32 my_2013-03-13.sql.gz
-rw------- 1 root root 956770 mars  14 06:31 my_2013-03-14.sql.gz
-rw------- 1 root root 961125 mars  15 06:53 my_2013-03-15.sql.gz
-rw------- 1 root root 969009 mars  17 06:38 my_2013-03-17.sql.gz
-rw------- 1 root root 969139 mars  18 06:38 my_2013-03-18.sql.gz

如何配置 automysqlbackup 以使用不同的所有者和权限?

答案1

或者,上次我检查时 automysqlbackup 是普通的 bash,因此可以轻松地制作修改后的本地副本......

在 Ubuntu 上,默认安装 automysqlbackup

$ sudo nano /usr/sbin/automysqlbackup

搜索 chmod (仅出现一次)并替换600640例如

答案2

automysqlbackup 没有选项(我怎么知道的),但你可以设置父目录的权限:

sudo mkdir /var/cache/automysqlbackup
sudo chgrp YourUserGroup /var/cache/automysqlbackup
sudo chmod 770 /var/cache/automysqlbackup

和文件应该备份时继承父目录的组权限。更多信息请访问https://dylansserver.com/note/automysqlbackup

更新:其他变体

mkdir test
chgrp guest test
chmod -R gu+s test
setfacl -d -m u::rw,g::rw,o::- test
cd test && touch file2 && ls -la file2
-rw-rw----   1 root guest    0 march 18 16:33 file2

答案3

automysqlbackup 肯定不会从父目录继承权限。我不知道为什么从来没有添加设置权限的选项,因为这很简单。

对于 Debian,我做了以下操作:

在 /etc/default/automysqlbackup 添加:

FILEPERM=644

然后我将脚本复制到运行 cronjob 的用户主目录中(这样它就不会被系统升级覆盖)并更改了第 426 行:

# Database dump function
dbdump () {
        touch $2
        chmod 600 $2

# Database dump function
dbdump () {
    touch $2
    chmod ${FILEPERM} $2

现在所有权限都设置为配置文件中给出的权限。当然,我必须将 cronjob 更新为 /home/user/automysqlbackup

相关内容