Come creare la configurazione Sudoer per le istantanee

Quando si utilizzano gli snapshot LVM, sono necessarie le seguenti voci nel file / etc / sudoers. Eseguire "visudo" per modificare il file / etc / sudoers e aggiungere queste voci per consentire il mysql utente per eseguire i comandi richiesti senza che venga richiesta una password e senza richiedere una shell di accesso:

mysql = NOPASSWD: / bin / mount, NOPASSWD: / bin / umount, NOPASSWD: / bin / df, NOPASSWD: / usr / sbin / lvdisplay, NOPASSWD: / usr / sbin / lvcreate, NOPASSWD: / usr / sbin / lvremove Predefiniti: % mysql! requiretty Impostazioni predefinite: mysql! requiretty

Ricorda di sostituire il percorso corretto a tutti gli lvmtools a seconda del sistema operativo in quanto potrebbe essere diverso a seconda della distribuzione di Linux che stai utilizzando.

Puoi mettere a punto il tuo file sudoers nel caso in cui la tua azienda abbia politiche più rigorose, facciamo un esempio:

Diciamo che sul server MySQL, diamond.jewel.com, esistono 3 gruppi di volumi VolGroup00, vg1 e vg2 e volumi logici LogVol00, lv1 e lv2 uno in ciascuno. Abbiamo il datadir mysql in Logvol00 con database innodb in lv1 e registri innodb in lv2:
 

File system 1K-blocchi utilizzati Disponibile Usa% montato su
/ dev / mapper / VolGroup00-LogVol00
7459216 3040728 4033464 43% /
/ dev / sda1 101086 10895 84972 12% / boot
tmpfs 127668 0 127668 0% / dev / shm
/ dev / mapper / vg1-lv1 126931 11832 108546 10% / l1
/ dev / mapper / vg2-lv2 126931 11833 108545 10% / l2


Il contenuto di /etc/my.cnf è il seguente

innodb_data_home_dir = / l1 / ibdata innodb_data_file_path = ibdata1: 10M: autoextend innodb_log_group_home_dir = / l2 / iblogs


La configurazione del file sudoer dovrebbe avere le seguenti righe per l'esempio sopra e se hai un solo gruppo di volumi devi solo avere una riga.

mysql diamond.jewel.com = NOPASSWD: / bin / mount / dev / VolGroup00 / zrm * / tmp / zrm *, NOPASSWD: / bin / umount / tmp / zrm *, NOPASSWD: / bin / df, NOPASSWD: / usr / sbin / lvdisplay, NOPASSWD: / usr / sbin / lvcreate -L * -s -n zrm * / dev / VolGroup00 / LogVol00, NOPASSWD: / usr / sbin / lvremove -f / dev / VolGroup00 / zrm * mysql diamond.jewel. com = NOPASSWD: / bin / mount / dev / vg1 / zrm * / tmp / zrm *, NOPASSWD: / bin / umount / tmp / zrm *, NOPASSWD: / bin / df, NOPASSWD: / usr / sbin / lvdisplay, NOPASSWD : / usr / sbin / lvcreate -L * -s -n zrm * / dev / vg1 / lv1, NOPASSWD: / usr / sbin / lvremove -f / dev / vg1 / zrm * mysql diamond.jewel.com = NOPASSWD: / bin / mount / dev / vg2 / zrm * / tmp / zrm *, NOPASSWD: / bin / umount / tmp / zrm *, NOPASSWD: / bin / df, NOPASSWD: / usr / sbin / lvdisplay, NOPASSWD: / usr / sbin / lvcreate -L * -s -n zrm * / dev / vg2 / lv2, NOPASSWD: / usr / sbin / lvremove -f / dev / vg2 / zrm *


NOTA: fornire il percorso corretto ai comandi lvm e df.

Se stai usando il file system xfs, devi specificare

mysql diamond.jewel.com = NOPASSWD: / bin / mount -o -nouuid / dev / VolGroup00 / zrm * / tmp / zrm *, NOPASSWD: / bin / umount / tmp / zrm *, NOPASSWD: / bin / df, NOPASSWD : / usr / sbin / lvdisplay, NOPASSWD: / usr / sbin / lvcreate -L * -s -n zrm * / dev / VolGroup00 / LogVol00, NOPASSWD: / usr / sbin / lvremove -f / dev / VolGroup00 / zrm *

Ricordati anche di aggiungere le seguenti righe in modo che non sia richiesta una shell di login per il file mysql utente per eseguire il comando sudo:

Impostazioni predefinite:% mysql! Requiretty Impostazioni predefinite: mysql! Requiretty