03

03



Komunikacja między procesami w Unixie powinno się używać w odniesieniu do poleceń, które nie prowadzą interaktywnego dialogu z użytkownikiem. Ciekawostką związaną z rsh jest to, że polecenie wywołane z dowolną nazwą inną niż rsh traktuje swoją nową nazwę jako argument definiujący nazwę hosta. Jeśli więc zostanie utworzone łącze symboliczne do polecenia rsh (jego prawdziwe położenie można znaleźć poleceniem whereis rsh) z nazwą zdalnego hosta, wystarczy później wpisać samą nazwę hosta (która jest teraz symbolicznym łączem do rsh) wraz z poleceniem, aby zostało ono wykonane w zdalnym komputerze.

Proces wywołujący rsh w komputerze lokalnym jest klientem. Komunikuje się on z pro-cesem-serwerem. Serwerem rsh jest rshd (demon zdalnej powłoki). To rshd wykonuje polecenie w zdalnym hoście i zwraca wynik polecenia do klienta działającego w kompu-terzę lokalnym. Wykonywanie zdalnych poleceń za pomocą rsh przebiega bezproblemowo wtedy, gdy mamy do czynienia z zaufanymi hostami lub użytkownikami. Jeśli host jest zaufany, każdy użytkownik mający tę samą nazwę w obu systemach może wykonywać polecenie rsh bez wpisywania swojego hasła. Jeżeli w zdalnym hoście użytkownik zostanie zdefiniowany jako zaufany, będzie mógł w nim wykonywać polecenie rsh, nawet nie posiadając w nim konta. Choć koncepcja zaufanych hostów i użytkowników poprawia komfort pracy — dzięki niemu można na przykład uniknąć konieczności logowania się do systemu — ma istotną wadę, stanowi bowiem, potencjalne źródło różnych nadużyć i naruszeń systemu bezpieczeństwa.

Listę zaufanych hostów i użytkowników zawiera plik /etc/hosts.equiv. Przykład typowego pliku hosts. equiv pokazano na ilustracji 9.2.

Ilustracja 9.2. Typowa zawartość pliku host.equiv

% cat /etc/hosts.equiv

morpheus

thetic

stimpty

skynet    "f

hobbes

hal

faust

faraday

obiwan

Wiersze pliku hosts.equiv mogą być również pełnymi nazwami, takimi jak fo-ozie.hartford.edu. Jeżeli nazwa hosta poprzedza nazwę użytkownika, to wiersz definiuje zaufanego użytkownika. Choć w większości systemów definiq'e zaufanych hostów i użytkowników są zapisane w pliku hosts. equiv, w pliku . rhosts ulokowanym w katalogu domowym każdego użytkownika można znaleźć dodatkowe informacje. Na ilustracji 9.3. pokazano zawartość tego pliku z hosta o nazwie morpheus.

Ilustracja 9.3. Przykładowy plik .rhosts

morpheus % cat .rhosts caribou.hartford.edu bgray misho

Widać, że użytkownik bgray z hosta caribou. hartf ord. edu jest użytkownikiem zaufanym. Jeśli więc bgray, będąc załogowanym do hosta caribou. hartf ord. edu, uruchomi następujące polecenie:

caribou% rsh -1 gray morpheus rm ważny_plik

to wtedy host morpheus zaakceptuje i wykona polecenie rm (usuwając ważny plik) tak samo, jakby to zrobił w odpowiedzi na polecenie wydane lokalnie! Wiersz mi sho oznacza zaufanego użytkownika gray z hosta misho. Pliku . rhosts można również używać do ograniczania dostępu użytkownikom z określonych hostów oraz użytkownikom wymienionym z nazwy. Robi się to, umieszczając znak minus przed nazwą hosta lub użytkownika. Na przykład wpis misho -bob uniemożliwi dostęp do lokalnego hosta użytkownikowi o nazwie bob z hosta misho.

System rozpoczyna sekwencję weryfikacji autentyczności, sprawdzając najpierw plik ho-sts. equiv, a następnie przechodząc do pliku .rhosts. Przeglądanie będzie zatrzymane w chwili, gdy zostanie napotkany pierwszy pasujący wpis. Dlatego kolejność wpisów, zwłaszcza tych wykluczających pewne hosty i pewnych użytkowników, jest istotna. Dodatkowo przed nazwą można umieścić znak „+". Oznacza on, że wszystkie hosty z danej domeny będą traktowane jako zaufane (podobnie wszyscy użytkownicy z danego hosta). Oczywiście nikł nie chce, aby jego system został spenetrowany tą drogą. Ze względu na potencjalne nadużycia większość administratorów systemów nie zezwala użytkownikom na posiadanie plików .rhosts.

9.3. Wykonywanie zdalnych poleceń z poziomu programu

Do wykonywania poleceń na zdalnym hoście z poziomu programu C służy funkcja rexec {remote exec). Funkcja biblioteczna rexec przypomina pod wieloma względami zdalną wersję omówionej wcześniej funkcji system. Składnię funkcji umieszczono w tabeli 9.1.

Tabela 9.1. Zestawienie informacji o funkcji rexec

Pliki włączane

<netdb.h>

Rozdział

podręcznika

3N

Prototyp

int rexec(char ** ahost,

unsigned short ińport, const char *user, const char *passwd, const char *cmd, int *fd2p);

Zwracana

wartość

Sukces

Niepowodzenie

Czy zmienia errno

Deskryptor pliku gniazd strumieniowych

-1

Nie

249


Wyszukiwarka

Podobne podstrony:
Komunikacja między procesami w Unixie morpheus % factclient morpheus Program do wyliczania silni&nbs
Komunikacja między procesami w Unixie_ ■    Jeżeli klient wysunie kilka identycznych
Komunikacja między procesami w Unixiedo naszych badań wybierzemy tylko nieliczne. Zestawienie argume
Komunikacja między procesami w Unixie i argv. W sekcji deklaracyjnej klienta rezerwowane jest miejsc
Komunikacja między procesami w Unixie Jeżeli proces zostanie uruchomiony lokalnie, zostanie również
Komunikacja między procesami w Unixie int * print_hello_l(void *argp, CLIENT *clnt) { static int
Komunikacja między procesami w Unixie (svc_req *) Client);    Wywołać funkcję
Komunikacja między procesami w Unixie    _ rzone przez rpcgen. Plik f act_client. c t
Komunikacja między procesami w UnixieTabela 9.9. Zestawienie informacji o funkcji clnt_destroy Pli
Komunikacja między procesami w Unixie łinclude "fact.h" long
Komunikacja między procesami w Unixie typedef linę *line_ptr; /* wskaźnik na "dużo miejsca"
Komunikacja między procesami w Unixie jest ustawiany na 1 (TRUE). Jeżeli bufor wynikowy został wcześ
Komunikacja między procesami w Unixie_ if (rpc_stat != RPC_SUCCESS) if (rpc_stat !- RPC_TIM£DOUT) (
ich form nie powinno się używać) na przykład, czy używać formy OH, czy też Ohio lub obu naraz, gdy i
image001 6. Uzupełnić tabelę nazwami mechanizmów komunikacji między procesami w taki sposób, żeby wł
DSC00273 (6) 6. Uzupełnić tabelę nazwami mechanizmów komunikacji między procesami w taki sposób, żeb
DSC00277 (9) 6. Uzupełnić tabelę nazwami mechanizmów komunikacji między procesami w taki sposób, żeb
Bezpieczny salon Do wykonywania zabiegów powinno się używać wyłącznie technicznie sprawnych narzędzi

więcej podobnych podstron