Złe praktyki? (symlinki i modyfikowanie plików)

Tomasz Kłoczko kloczek w rudy.mif.pg.gda.pl
Sob, 24 Sie 2002, 21:03:06 CEST


On Sat, 24 Aug 2002, Jakub Bogusz wrote:

> Zauważyłem w specach dwie praktyki, które mogą powodować problemy.
> 
> Pierwsza to względne symlinki między różnymi katalogami.
> Np. /usr/lib/libm.so -> ../../lib/libm.so.6.
> I co się dzieje, jeśli w danym systemie /usr jest symlinkiem do katalogu
> o innym poziomie zagłębienia? Link jest zepsuty.
> (swoją drogą - o ile wg FHS /usr może być symlinkiem, to nie wiem do
> czego - dodatkowych katalogów w / (typu /vol) nie można robić, a /mnt
> jest do tymczasowego montowania)
> 
> Bezwzględne symlinki też mają wadę - jeśli podmontujemy rootfs gdzieś
> indziej (np. przy ratowaniu systemu), to linki nie działają. Ale nie ma
> to chyba dużego znaczenia - żeby coś więcej zrobić w takim systemie,
> i tak robi się chroot...

Primo: jednak jak najmniej dowiązań. Reszta dylematów wynikajacych z 
takeigo podejscia i istnienai dowiazań powinno sie juz dużo łatwiej dawać 
analizować pod kontem tgo jak to rozstrzygać.

> Druga rzecz - modyfikowanie plików konfiguracyjnych sedem, grepem itp.
> Przykład z apache-mod_ssl.spec:
> 
> grep -E -v "^Include.*mod_ssl.conf" %{_sysconfdir}/httpd/httpd.conf > \
>         %{_sysconfdir}/httpd/httpd.conf.tmp
> mv -f %{_sysconfdir}/httpd/httpd.conf.tmp %{_sysconfdir}/httpd/httpd.conf
> 
> Nowo stworzony plik ma uprawnienia zależne od aktualnego umaska...
> Co zamiast mv?
> Proponuję "cp -f httpd.conf.tmp httpd.conf && rm -f httpd.conf.tmp".
> Może być jeszcze cat && rm, ale wtedy mogą być problemy z symlinkami.
> A jeśli już mv, to z odpowiednim chmod (i ew. chown, jeśli plik nie
> należy do root.root).

Jeżeli kluczowa rzeczą jest tu umaska to należałoby raczej skupić się na
tym punkcie.
IMHO rozwiązania są dwa (idące właśnie tym śladem):

- dodawać jawnie w pierwszej linijce skryptu "umask 022" (co w części 
  meisjc już jest robione) tam gzdei są tworzone jakieś pliki,

- zmodyfikować rpm-a tak żeby dla skryptów było zawsze ustawione stałe,
  wszem i wobec wiadome umask (np. 022) ustawialne jakims makrem.

To drugie wydaje się najlepsze ibezie załtwiać sprawę neizaleznie od tego 
w jaki sposób bedą tworzone pliki w skryptach.

kloczek
-- 
-----------------------------------------------------------
*Ludzie nie mają problemów, tylko sobie sami je stwarzają*
-----------------------------------------------------------
Tomasz Kłoczko, sys adm @zie.pg.gda.pl|*e-mail: kloczek w rudy.mif.pg.gda.pl*



Więcej informacji o liście dyskusyjnej pld-devel-pl