Díky Rolande.
Takže odpověď na mou otázku je "AppArmor".
Z Wikipedie:
AppArmor umožňuje správci systému přiřadit každému programu bezpečnostní profil, který omezuje možnosti daného programu. Doplňuje tradiční unixový model diskrečního řízení přístupu (DAC) tím, že poskytuje povinné řízení přístupu (MAC).
Od Ubuntu Hardy serverový balíček MySQL 5.0 obsahuje také soubor profilu AppArmor (/etc/apparmor.d/usr.sbin.mysqld), který omezuje funkce serveru MySQL, jako je volání UDF pro provádění příkazů.
Abychom umožnili MySQL spouštět příkazy Linuxu, měl bych změnit úroveň zabezpečení pro MySql v AppArmor.
[[email protected] ~]# aa-complain /usr/sbin/mysqld
Chcete-li se podívat na stav AppArmor:
[[email protected] ~]# aa-status
S touto konfigurací mohu spustit sys_eval a sys_exec. Ale to je stále omezeno na adresář mysql. Nemohu tedy vytvořit soubor nebo spustit skript z žádného adresáře.
Řešením je tedy přidání oprávnění do apparmor pro mysql pro přístup k novým datovým adresářům.
sudo vi /etc/apparmor.d/usr.sbin.mysqld
Přidat:
/newdir/ r,
/newdir/** rwk,
Restartujte servery:
sudo /etc/init.d/apparmor restart
sudo /etc/init.d/mysql restart
Pokud to stále nefunguje, zkontrolujte oprávnění nix, abyste se ujistili, že mysql je vlastníkem a skupinou nového adresáře rekurzivně.
chown -R mysql:mysql “new datadir path”
Doufám, že to někomu pomůže.
Abid