Hvilken bestemt version af Ubuntu er dette, og er denne Ubuntu Server Edition?
Nylige Ubuntu Server Editions (såsom 10.04) leveres med AppArmor og MySQL's profil kan være i håndhævelsestilstand som standard. Du kan kontrollere dette ved at udføre sudo aa-status
sådan:
# sudo aa-status
5 profiles are loaded.
5 profiles are in enforce mode.
/usr/lib/connman/scripts/dhclient-script
/sbin/dhclient3
/usr/sbin/tcpdump
/usr/lib/NetworkManager/nm-dhcp-client.action
/usr/sbin/mysqld
0 profiles are in complain mode.
1 processes have profiles defined.
1 processes are in enforce mode :
/usr/sbin/mysqld (1089)
0 processes are in complain mode.
Hvis mysqld er inkluderet i enforce-tilstand, så er det den, der sandsynligvis nægter at skrive. Indgange vil også blive skrevet i /var/log/messages
når AppArmor blokerer skrive/adgang. Det du kan gøre er at redigere /etc/apparmor.d/usr.sbin.mysqld
og tilføj /data/
og /data/*
nær bunden som sådan:
...
/usr/sbin/mysqld {
...
/var/log/mysql/ r,
/var/log/mysql/* rw,
/var/run/mysqld/mysqld.pid w,
/var/run/mysqld/mysqld.sock w,
**/data/ r,
/data/* rw,**
}
Og få derefter AppArmor til at genindlæse profilerne.
# sudo /etc/init.d/apparmor reload
ADVARSEL:Ændringen ovenfor vil tillade MySQL at læse og skrive til /data-mappen. Vi håber, du allerede har overvejet sikkerhedskonsekvenserne af dette.