我正在使用 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 (仅出现一次)并替换600
为640
例如
答案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