Wolna amerykanka w PLD?
Pawel Wilk
siefca w entropy.echelon.pl
Śro, 9 Kwi 2003, 18:00:04 CEST
On Wed, Apr 09, 2003 at 02:46:02PM +0200, Rafal Cygnarowski wrote:
> - co chcesz przechowywac w tym "rejestrze" poza sciezka do konfiguracji
> programu?
w przyszłości także inne sciezki, np. data_dir opisany w drafcie do HOME-ETC,
czy tmp_dir, czy inne ścieżki.. także właśnie przyszedł mi taki pomysł, że
można tam trzymać także różne ustawienia, które potem będą ładowane do
zmiennych środowiska przy starcie powłoki, np.:
env.LANG = pl_PL
env.NNTPHOST = news.icm.edu.pl
i mamy z głowy sytuację taką, że dla różnych powłok zmienne środowiskowe
umieszczamy w różnych plikach rc ze względu na różnice w składni exportu.
Ofkors wymaga lekko zmodyfikowanych powłok.
Celem switches jest uspójnienie gospodarki prostymi ustawieniami i przełącznikami.
Switches może przechowywać nazwy ścieżkowe, bo nie jest celem tutaj na pewno
zastąpienie plików konfiguracyjnych.
Switches może przechowywać dowolne inne ustawienia [domena.nazwa = wartość].
Jest to rozwiązanie dla ustawień programów użytkowników jak i dla ustawień systemu.
Switches dostarcza informacji niezależnie od środowiska. Użycie pozwala
implementować mechanizmy sterowania ścieżkami i w ogóle zmiennymi także dla
aplikacji, które nie mogą czytać zmiennych środowiskowych powłoki użytkownika.
(to może się niektórym nie spodobać)
Dla systemu switches może oznaczać miejsce, w które wpadają ustawienia.
Jedna wspólna baza przypominająca sysctl. Wiem, że /etc/sysconfig/[costam]
to takie Unixowe i że przejrzyste jest. Ale tutaj skłaniam się w stronę nawet
Unixów (bo nie Windowsów), które takie informacje mają uspójnione,
co upraszcza konfigurację, bo wystarczy jedno narzędzie do sterowania
wszystkimi ustawieniami, także tymi, które wpadną w przyszłości do tej bazy.
Można opcjonalnie generować z tego db albo i dopisać wsparcie dla
"zewnętrznych" źródeł jak LDAP, jeśli danych okaże się wiele.
> - Jaka to ma zalete nad aktualnymi rozwiazaniami?
Trzymanie ustawień w zmiennych środowiskowych nie jest optymalne.
Przekazywanie ustawień używając profile.d do środowiska każdego
użytkownika nie jest optymalne. Trzymanie wielu ustawień w wielu
plikach nie jest optymalne z punktu widzenia narzędzi konfiguracyjnych.
Zmiennych env robi się coraz więcej, różne powłoki mają różną składnię
na ich wczytywanie. Są aplikacje, które nie startują z powłoki usera
ale działają na jego prawach (np. dostarczając pocztę) i im także warto
by pozwolić mieć styczność z ustawieniami użytkownika w jeden prosty
sposób.
Aby zautomatyzować konfigurację systemu trzeba obecnie pisać wiele różnych
programów, ew. modułów do programów, które korzystają z różnych
plików z ustawieniami. Można to uprościć i wrzucać wszytko w jedną
bazę. Wtedy mamy jedno uniwersalne narzędzie do kontrolowania podstawowej
konfiguracji systemu, a dla użytkownika jedno narzędzie do kontrolowania
konfiguracji swoich ustawień i przełączników.
Przystosowanie tego do obecnych rc-scripts to dodanie paru funkcji w sh
które wzywać będą polecenie uzyskujące informacje przy użyciu switches.
Jeśli chodzi o bezpieczeństwo to:
/etc/switches z odczytem dla każdego
/etc/sswitches z odczytem tylko dla nadzorcy
lub
kontrola na podstawie acl w samej bibliotece, jeśli podane
dodatkowe parametry sterowania dostępem dla konkretnego entry.
Ale to rozwiązanie ryzykowne o tyle, że pewna część mechanizmu
musiałaby działać na suidzie na właściciela pliku/bazy
odczytywalnego/zapisywalnego tylko przez niego.
Ewentualne definiowanie typów danych dla poszczególnych entries to
kwestia do dyskusji.
--
Pawel Wilk ( siefca @ entropy echelon pl ) ) pld-devel )
żyj skromnie. szanuj swojego admina.
Więcej informacji o liście dyskusyjnej pld-devel-pl