Adott egy pendrive, amin -- tobbek kozott -- egy MySQL adatbazis van,
amit tobb szervernek kellene hasznalnia (persze nem parhuzamosan). A
problema ott kezdodik, hogy az uidok elterese miatt az egyik szerver nem
latja a fajlokat, amiket a masik letrehozott rajta. Az egyik Debian
Lenny, a masik Ubuntu Jaunty, az alabbi szenvedeseket az utobbin
kovettem el.
Gondoltam sebaj, majd ACL-ekkel adok olvasasi jogot es jo lesz. De nem.
A MySQL ugy viselkedik, mintha valahogy figyelmen kivul hagyna az ACL-eket:
1. $ sudo sudo -u mysql file /var/lib/mysql/adatbazis/tabla.frm
/var/lib/mysql/adatbazis/tabla.frm: MySQL table definition file Version 10
2. Kis C program strace logja, ami -- elvileg -- ugyanazt csinalja, mint
a szerver:
chdir("/var/lib/mysql/") = 0
setgid32(123) = 0
setuid32(112) = 0
open("./adatbazis/tabla.frm", O_RDONLY|O_LARGEFILE) = 3
close(3) = 0
Tok jo, az ACL tehat mukodik, ehhez kepest a szerver strace logja:
chdir("/var/lib/mysql/") = 0
setgid32(123) = 0
setuid32(112) = 0
[pid 11755] open("./adatbazis/tabla.frm", O_RDONLY|O_LARGEFILE) = -1
EACCES (Permission denied)
Van valami, ami elkeruli a figyelmemet? Teljesen ertetlenul allok a
dolog elott.
Koszonom,
--
cc
_________________________________________________
linux lista - li...@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux
Csak tipp: Esetleg az apparmor nem okoz gondot ubuntu-n? dmesg nem mutat
olyasmi apparmor uzeneteket, hogy ezt bizony a mysqld nem teheti meg? Ha
igen, akkor editalj apparmor profilet, vagy szabadulj meg az osszes apparmor
csomagtol ubuntuban, esetleg idolegesen kapcsold ki. Bar mondjuk a
/var/lib/mysql benne szokott lenni, hacsak nem symlinkeltel oda valamit,
vagy hasonlo, es nem is az a "valos" path ... Bar nem vagyok biztos benne,
hogy mysqld-re van apparmor profile, de hatha ...
Bingo.
Van ra profile, es persze, hogy az adatbazis fajlokat symlinkeltem,
hiszen azok a pendrive-on vannak. Arra pedig nem volt olvasasi joga per
apparmor. Plusz egy sor a profile-jaba es mukodik szepen.
Koszonom,
--
cc