Задание 3
#!/bin/bash -
mysqldump students_db | xz > "db_dump_$(date + '%Y-%m-%d').sql.xz"
find . -type f -mtime +7 -delete
[Unit]
Description=Dump DB every day
[Service]
Type=oneshot
Execstart=/home/user/sh/db_dump
[Unit]
Description=Timer for db_dump.service
[Timer]
OnUnitActiveSec=1d
Unit=db_dump.service
[Install]
WantedBy=multi-user.target
Задание 4
#!/bin/bash -
mysqldump -u test -ptest students_db \
| xz > "db_dump_$(date + '%Y-%m-%d').sql.xz"
find . -type f -mtime +7 -delete
Чтобы дать возможность новому юзеру делать бэкапы, нужно дать ему три разрешения: SELECT
, LOCK TABLES
, PROCESS
.
С первыми двумя, я не думаю, что могут возникнуть проблемы с безопасностью. Но разрешение PROCESS
дает право с помощью команды show processlist
просматривать чужие соединения и в виде plain текста все чужие запросы, включая запросы root
. Опасность главная в том, что в этот список попадают еще и запросы на изменение и установку паролей (тоже plain текстом).