Jestem zapalonym fanem FreeBSD. Ale od czasu do czasu, administrując tym systemem trafiam na tak upierdliwe szczegóły że po prostu krew mnie zalewa
. Tak jak np. dzisiaj.
Chciałem zrobić prostą rzecz, mianowicie miałem kilkudziesięciu userów na serwerze, którzy mieli stronki www i chciałem odizolować ich katalogi domowe od siebie, tak żeby sprytnymi skryptami php nie podglądali sobie nawzajem zawartości swoich home’ów.
No więc suphp, działa – świetnie. A teraz dodamy apache jakos członka każdej grupy usera i nadamy prawa 750/640 dla katalogów/plików. Tyle tylko że domyślny limit w FreeBSD na ilość grup których user może być członkiem jest 16.
# sysctl -a | grep ngroup
kern.ngroups: 16
Parametr kernela, czyli prawdopodobnie na działającym systemie nic nie zmienie, ok wrzucam w takim razie ustawienie do boot loader’a. Reboot. No i zonk.
# sysctl -a | grep ngroup
kern.ngroups: 16
Troche pogooglałem, i znalazłem zgłoszenie problemu, i krótkie wyjaśnienie o co chodzi w postaci linka do posta z 2003 roku!
Ok już wszystko jasne, trzeba… przekompilować najpierw system a potem praktycznie całe oprogramowanie. Świetnie.
Jakoś w Linuxie sobie z tym poradzili. I działa i nfs i samba bez problemów. Domyślnie parametr ten ma wartość 65536. Czemu nie poprawili tego w FreeBSD?
System jest naprawde fajny, ale czasami mnie rozczarowywuje.
No nic – zabieram sie do rekompilacji…
Od jakiegoś czasu (hmm… 4 lat
) jestem fanem FreeBSD.
Dzisiaj czytając jakieś grupy dyskusyjne znalazłem ciekawy artykuł Ivan Voras, mianowicie zestawienie nowych rzeczy które mają być zaimplementowane w FreeBSD 7. Lista jest naprawde spora, i co tu dużo mówić – wymiata
.
http://ivoras.sharanet.org/freebsd/freebsd7.html
W końcu dopadło i mnie. Awaria. Wskutek bliżej nieokreślonych warunków
spaleniu w serwerze uległa płyta główna oraz uszkodzeniu dysk twardy. Płyta jak płyta, wymieniona została na inna, z dyskiem było gorzej. Chciałem aby dane były maymalnie aktualne, więc spróbowałem wykorzystać do tego celu, często zachwalaną metoda dump/restore z FreeBSD (tzn. metoda jest dostępna nie tylko w FreeBSD, ale czytałem o niej głównie w odniesieniu do tego systemu). Sprawdziła się ona znakomicie. Praktycznie czystej roboty (pomijam czas a próby które były nieudane
), było na ok. 1h łącznie z czasem potrzebnym na kopiowanie danych.
Wszystko sprowadziło się do uruchomienia systemu w trybie single-user, utworzenia partycji, podmontowania ich i wydania 5 magicznych polecen:
# ( dump -0af – / ) | ( cd /bkp/root ; restore -rf – )
# ( dump -0af – /var ) | ( cd /bkp/var ; restore -rf – )
# ( dump -0af – /usr ) | ( cd /bkp/usr ; restore -rf – )
# ( dump -0af – /home ) | ( cd /bkp/home ; restore -rf – )
# bsdlabel -w -B /dev/ad1s1
Oczywiście część danych która znajdowała się w obszarze awarii dysku nie została zdumowana, ale ok. 99.9% danych jest, a ten 0.1% danych straconych pochodzil z mojego katalogu (jak pech to pech na maxa…).
No nic – cieszę się ze już po wszystkim i system spowrotem działa. Dodatkowo nauczyłem się kolejnego, bardzo użytecznego narzędzia, i cieszę się ze nie zawiodłem się na FreeBSD.