Jak stworzyć konfigurację Sudoer dla migawek

Podczas korzystania z migawek LVM wymagane są następujące wpisy w pliku / etc / sudoers. Wykonaj polecenie „visudo”, aby edytować plik / etc / sudoers i dodaj te wpisy, aby zezwolić na rozszerzenie mysql użytkownik uruchamia wymagane polecenia bez pytania o hasło i bez konieczności posiadania powłoki logowania:

mysql = NOPASSWD: / bin / mount, NOPASSWD: / bin / umount, NOPASSWD: / bin / df, NOPASSWD: / usr / sbin / lvdisplay, NOPASSWD: / usr / sbin / lvcreate, NOPASSWD: / usr / sbin / lvremove Domyślne: % mysql! requiretty Domyślnie: mysql! requiretty

Pamiętaj, aby zastąpić właściwą ścieżkę do wszystkich lvmtools w zależności od systemu operacyjnego, ponieważ może się ona różnić w zależności od używanej dystrybucji Linuksa.

Możesz dostosować plik sudoers na wypadek, gdyby Twoja firma miała bardziej rygorystyczne zasady, weźmy przykład:

Powiedzmy, że na serwerze MySQL, diamond.jewel.com, istnieją 3 grupy woluminów VolGroup00, vg1 i vg2 oraz logiczne woluminy LogVol00, lv1 i lv2, po jednym w każdym. Mamy mysql datadir w Logvol00 z bazą danych innodb w lv1 i logami innodb w lv2:
 

System plików 1K-bloków Używane Dostępne Użyj% Zamontowane na
/ 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


Zawartość pliku /etc/my.cnf jest następująca

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


Konfiguracja pliku sudoer powinna mieć następujące wiersze dla powyższego przykładu, a jeśli masz tylko jedną grupę woluminów, wystarczy mieć tylko jedną linię.

mysql diamond.jewel.com = NOPASSWD: / bin / mount / dev / VolGroup00 / zrm * / tmp / zrm *, NOPASSWD: / bin / umount / tmp /m *, 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 *


UWAGA: Proszę podać poprawną ścieżkę do poleceń lvm i df.

Jeśli używasz systemu plików xfs, musisz określić

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 *

Pamiętaj również, aby dodać następujące wiersze, aby powłoka logowania nie była wymagana dla mysql użytkownik, aby uruchomić polecenie sudo:

Wartości domyślne:% mysql! Requiretty Domyślnie: mysql! Requiretty