</pre>
<h1 id="11.networkfilesharing">11. Udostępnianie plików w sieci</h1>
<p>
- Do tej pory mieliśmy zajmowaliśmy się siecią jako komponentem systemu
+ Do tej pory zajmowaliśmy się siecią jako komponentem systemu
pora skorzystać z niej jako z środka komunikacji. W wiekszości
przypadków, ludzie wykorzystują sieć do dzielenia się informacjami
a te moga przybrać formę pliku dowolnego formatu, a my poznamy
metody w jaki sposób możemy przenieść pliki z jednego komputera
- na drugi z pośrednictwem sieci. Pominiemy jednak takie narzędzia jak
+ na drugi za pośrednictwem sieci. Pominiemy jednak takie narzędzia jak
SCP oraz SFTP, ponieważ były już one omawiane w poprzednim rodziale.
</p>
<h2 id="11.1.simplehttp">11.1. Proste udostępnienie z pośrednictwem WWW</h2>
127.0.0.1 - - [08/Sep/2023 12:35:25] "GET /newsfeed HTTP/1.1" 200 -
</pre>
<p>
- Za pomocą wydanego przez nas polecenie wraz z pomocą języka
+ Za pomocą wydanego przez nas polecenia z użyciem modułu języka
programowania Python, uruchomiliśmy prosty serwer
WWW. Serwer działa na wysokim porcie ze względu na uprawnienia.
- Zwykli użytkownicy nie mogą otwierać portów poniżej numer 1023.
+ Zwykli użytkownicy nie mogą otwierać portów poniżej numeru 1023.
Domyślnie serwer startuje na porcie 8000, jeśli z jakiś przyczyn
nie możemy użyć tego portu, to wówczas możemy podać mu inny wysoki
port na końcu polecenia. Adres <code class="code-inline">0.0.0.0</code>
- oznacza każdy adres przypisanego do tego komputera, oznacza to że
+ oznacza każdy adres przypisany do tego komputera, oznacza to że
mogę połączyć z tym serwerem przez pętlę zwrotną co własśnie
uczyniłem, koncowo pobrałem plik
<code class="code-inline">newsfeed</code>. Działanie serwera
- kończymy prosty Ctrl+c.
+ kończymy prostym Ctrl+c.
</p>
<h2 id="11.2.remotesync">11.2. Synchronizacja katalogu zdalnego - program rsync</h2>
<p>
- Kolejny przykład udostępniania plików, wyłamuje się po za konwencję
+ Kolejny przykład udostępniania plików, wyłamuje się poza konwencję
tego rozdziału, nie mniej jednak warto o nim wspomnieć. Może zostać
po traktowany jako narzędzie do przesłania plików na serwer służący
do ich udostępniania. Mowa tutaj o programie <strong>rsync</strong>.
zachowuje się podobnie do SCP, program może również działać na
lokalnym systemie zastępując klasyczne polecenie <em>cp</em> i tak
też to polecenie działa w prosty niemodyfikowany opcjami sposób.
- Opcje te programu są w stanie dość mocno wpłynąc na jego zachowanie,
+ Opcje programu są w stanie dość mocno wpłynąc na jego zachowanie,
że te dwa powyższe polecenie mogą stać się zbędne. Polecenie
<em>rsync</em> może być również wykorzystywane to
kopiowania/przenoszenia w obrębie jednego komputera.
drwxr-xr-x 2 xf0r3m xf0r3m 4096 09-18 09:58 .test
</pre>
<p>
- Na tę zależnośc należy uważać podczas kopiowania danych, ponieważ
+ Na tę zależność należy uważać podczas kopiowania danych, ponieważ
sam utworzony przez polecenie katalog może być istotny. Na powyższych
przykładach użyłem polecenia <em>rsync</em> wewnątrz tego samego
systemu.
</p>
<p>
- Jak wcześniej wspominalismy dużą rolę w polecenie <em>rsync</em>
- odgrywają jego opcje. Poniżej znajduja się najważniejsze z znich.
+ Jak wcześniej wspominiałem dużą rolę w polecenie <em>rsync</em>
+ odgrywają jego opcje. Poniżej znajduja się najważniejsze z nich.
</p>
<ul>
<li><strong>--archive, -a</strong> - Tryb archiwalny. zachowanie
takim jak <em>setuid</em>, czasu utworzenia oraz czasu ostatniego
dostępu. W przypadku zastosowania tej opcji nie są kopiowane
również dowiązania twarde. Wydanie opcji <em>-a</em> jest
- równoznaczne z wydaniem opcji serii opcji: <em>-rlptgoD</em></li>
+ równoznaczne z wydaniem opcji serii opcji: <em>-rlptgoD</em>.</li>
<li><strong>--update, -u</strong> - Aktualizacja. Powoduje, że
- <em>rsync</em> pomija istniejące już pliki na miejscu decelowym
+ <em>rsync</em> pomija istniejące już pliki na miejscu docelowym
jeśli ich czas modyfikacji jest póżniejszy niż pliku źródłówego,
jeśli czas modyfikacji jest równy wówczas program opiera swoje
porównania na rozmiarze pliku.</li>
częścią tego transferu.
<li><strong>--dry-run, -n</strong> - Testy. Pozwala na sprawdzenie
czy nasze opcje i ścieżki zostały właściwie dobrane przed
- dokonaniem faktycznych zmian w systemach. Polecenie to wykonuje
- czynności <em>na sucho</em>, nie dokunując żadnych zmian w
- systemie.</li>
+ dokonaniem faktycznych zmian. Polecenie to wykonuje czynności
+ <em>na sucho</em>, nie dokunując żadnych zmian w systemie.</li>
<li><strong>--verbose, -v</strong> - zwiększenie ilości komunikatów
diagnostycznych.</li>
<li><strong>--compress, -z</strong> - Kompresja. Włącza kompresję
podczas przesyłania danych.</li>
</ul>
<p>
- W tym materaile przedstawiono tylko, kilka opcji powszechnie
+ W tym materiale przedstawiono tylko, kilka opcji powszechnie
wykorzysywanych podczas korzystania z polecenia <em>rsync</em>.
Obszerną wiedzę na ten temat zwiera strona podręcznika polecenia,
zawierająca opisy wszystkich opcji oraz inne zagadnienia związane
z programem.
</p>
<p>
- Ostatnią rzeczą związana z poleceniem przekazywanie do <em>rsync</em>
+ Ostatnią rzeczą związana z poleceniem jest przekazywanie do
+ <em>rsync</em>
poleceń związanych z SSH, w końcu ten program domyślnie korzysta z
tego protokołu. Przekazanie opcji SSH wymaga użycia zmiennej powłoki.
</p>
do obszaru pamięci odpowiedzialnego za zmienne środowiskowe (będzie
o tym w ostatnim rodziale materiału). Zmiennej nadano wartość
składającą się z dwóch opcji polecenia SSH. <em>Rsync</em> będzie
- korzystać z tych informacji.
+ korzystać z tych informacji podczas zestawiania połączenia ze stroną
+ zdalną.
</p>
<h2 id="11.3.filesharingentrance">11.3. Wprowadzenie do udostępniania plików</h2>
<p>
przyjdzie kiedyś pora, na to aby wykorzystać je do współdzielenia
plików między użytkownikami, nie zależnie od tego jakiego systemu
używają. Tutaj warto się zastanowić na tym między jakimi systemami
- będą one wymieniane oraz w jaki użytkownicy łączą się z naszymi
+ będą one wymieniane oraz w jaki sposób użytkownicy łączą się z
+ naszymi
serwerami. Czy łączą się bezpośrednio z siedziby firmy gdzie też
znajdują się serwery czy też pracują zdalnie.
</p>
albo zostosowanie ich wymaga dodatkowych środków i nakładu pracy.
Inne posiadają już pewne zabezpieczenia przed nieuprawnionym
dostępem, ale nie są aż tak wydajne. Trzecią opcją są metody bardziej
- skupiające się na bezpieczeństwie, ale ich wydajność nie ma jednej
- nogi i w dodatku kuleje. Oczywiście przy większym zangażowaniu
+ skupiające się na bezpieczeństwie, ale ich wydajność dość mocno
+ kuleje. Oczywiście przy większym zangażowaniu można
użyć tych metod w pozostałych środowiskach, a nie tylko w tych
wymienionych, jednak warto mieć powyższe na uwadze oraz przyjąć do
- wiadomości fakt, że jeśli coś nie bardziej skomplikowane, to więcej
- składników tego czegość może zawieść. Tym optymistycznym akcentem
+ wiadomości fakt, że jeśli coś jest bardziej skomplikowane, to więcej
+ składników tego czegoś może zawieść. Tym optymistycznym akcentem
przjdziemy do pierwszej metody.
</p>
<h2 id="11.4.samba">11.4. Współdzielenie plików między wszystkimi platformami</h2>
<p>
Jedną z metod współdzielenia plików między większością dostępnych
platform na świecie jest pakiet <strong>Samba</strong>. Pakiet ten
- zawiera wszelkie niezbędne oprogramownie do obsługi protokołu
+ zawiera wszelkie niezbędne oprogramowanie do obsługi protokołu
SMB (ang. <em>Server Message Block</em>) firmy Microsoft. Protokół
ten w systemach MS Windows służy do udostępniania folderów w sieci.
- Sama jest natomiast implementacją protokołu SMB dla Uniksów (bo
- nie tylko dla samych dystrybucji Uniksa). Nasza konfiguracja będzie
- składać sie głównie z opisu konfiguracji serwera. W niej zamiemy się
- ogólną konfiguracją serwera, konfiguracją uwierzytelniania i
- użytkowników, udostępnianiem udziałów (katalogów) oraz udostępnianie
- drukarek. Zatem nie przedłużając:
+ <em>Samba</em> jest natomiast implementacją protokołu SMB dla Uniksów
+ (bo nie tylko dla samych dystrybucji Linuksa). Opis zagadnienia
+ będzie składać sie głównie z opisu konfiguracji serwera. W niej
+ zajmiemy się ogólną konfiguracją serwera, konfiguracją
+ uwierzytelniania i użytkowników, udostępnianiem udziałów (katalogów)
+ oraz udostępnianie drukarek. Zatem nie przedłużając:
</p>
<h3 id="11.4.1.generalsambaconfig">11.4.1. Ogólna konfiguracja serwera Samba</h3>
<p>
kiedy nad lub pod opcją mamy wyjaśnienie co dokładnie ona robi. Sama
sekcja <code class="code-inline">[global]</code> podzielona jest
za pomocą komentarzy na podsekcje, w których znajdują się opcje np.
- dotyczące sieci czy uwierzytelniania. Zawartość tego pakietu jest
+ dotyczące sieci czy uwierzytelniania. Zawartość tego pliku jest
zależna od dystrybucji. Dlatego też na Debianie mamy w podsekcji
<code class="code-inline">Browsing/Identification</code> mamy tylko
opcję definiującą grupę roboczą.
<h3 id="11.4.2.sambaauthconfig">11.4.2. Konfiguracja uwierzytelniania użytkowników na serwerach Samba</h3>
<p>
Poniżej podsekcji dotyczącej komunikatów diagnostycznych znajduje się
- dotycząca ustawień uwierzytelniania -
+ fragment pliku konfiguracyjneg dotyczący ustawień uwierzytelniania -
<code class="code-inline">Authentication</code>, ta podsekcja zawiera
ustawienia dostępu użytkowników do serwera. <em>Samba</em> może
mieć odrębne hasła, niż te wykorzystywane przez użytkowników do
dostępu do powłoki dla użytkowników wyłącznie <em>Samby</em>,
ponieważ hasła zapisane aby mieć łatwiejszy dostęp do udziałów
<em>Samby</em> z platform nie Linuksowych można odzyskać.
- opcje poprzedzone frazą <code class="code-inline">passwd</code>,
+ Dziś w dystrybucjach takich jak Debian, mimo iż ta opcja jest
+ domyślnie włączona to i tak nie działa, ponieważ element
+ podsystemu PAM, który kontrolował i obsługiwał cały ten proces
+ został usunięty w z <em>Samby</em> w okolicach 2015 roku.
+ Opcje poprzedzone frazą <code class="code-inline">passwd</code>,
służą wskazaniu programu służącemu ustawianiu hasła
(<code class="code-inline">passwd program</code>) oraz
zdefiniowaniu komunikatów wyświelanych użytkownikowi podczas
procesu zmiany hasła (<code class="code-inline">passwd chat</code>).
Obecnie te opcje są <em>puste</em> (przynajmniej na Debianie), nie
- mają żadnego wpływu na działanie pakietu.
+ mają żadnego wpływu na działanie pakietu, ponieważ na dzień dziejszy
+ synchronizacja haseł nie działa i nie zapowiada się aby kiedy
+ kolwiek przywórcono tę funkcjonalność. W wspomniano o tych opcjach
+ dla spójności opisu konfiguracji.
Przedostatnia opcja
(<code class="code-inline">pam password change</code>)
służy kontroli wykorzystania PAM podczas zmiany hasła za pomocą
klienta SMB niż w przypadku użycia programu zdefiniowanego w opcji
<code class="code-inline">passwd program</code>. Ostatnia opcja
- definiuje kiedy należy zrzucić uprawnienia połaczenia anonimowego z
- serwerem. Domyślnie jest to stosowane, kiedy nie uda się pomyślnie
+ definiuje kiedy należy zrzucić uprawnienia do połaczenia anonimowego.
+ Domyślnie jest to stosowane, kiedy nie uda się pomyślnie
uwierzytelnić użytkownika.
</p>
<p>
- Opcje uwierzytelniania otrzymały osobny podrozdział, ze względu na to
+ Opcje uwierzytelniania otrzymały osobny podrozdział ze względu na to,
że pełnią dość istotną rolę we współdzieleniu plików i zapewniają
jakiś minimalny stopień bezpieczeństwa. Warto zwrócić uwagę na to, iż
przedstawione tutaj są domyślymi ustawieniami zapożyczonymi
pakietu <em>Samba</em> jest współdzielenie katalogów, w których
użytkownicy mogą dzielić się plikami z innymi w sieci. Innym
zagadnieniem może być centralizacja katalogów domowych między
- użytkownikami wielu systemów Uniksowych.
+ użytkownikami wielu systemów uniksowych.
</p>
<p>
Pozostawiamy resztę opcji i przechodzimy do podsekcji
<code class="code-inline">Share Definitions</code>. Tutaj
kończy się sekcja <code class="code-inline">[global]</code>.
- Domyślnie w pliku konfigucyjnym nie znajdują się żadne predefiniowane
- udziały więc na początek zajmiemy exportem katalogów domowych.
+ Domyślnie w pliku konfiguracyjnym nie znajdują się żadne
+ predefiniowane
+ udziały więc na początek zajmiemy się exportem katalogów domowych.
</p>
<p>
- Za eksport katalogów domowych odpowiada sekcja
+ Za udostępnienie katalogów domowych odpowiada sekcja
<code class="code-inline">[homes]</code>. Poniżej znajduje się
sekcja eksportu katalogów domowych zapożyczona z domyślnego pliku
konfiguracyjnego Debiana:
<code class="code-inline">browseable</code>. Tutaj (domyślnie)
ustawiona jest na <code class="code-inline">no</code>, przez co
udziału nie będzie widać w składnikach typu "Otoczenie sieciowe"
- (obecnie "Sieć") w eksploratorach plików. Jak możemy się domyśleć
- po nazwie następnej opcji (<code class="code-inline">read only</code>)
- i ustawionej jej wartości (<code class="code-inline">yes</code>)
+ (obecnie "Sieć") w eksploratorach plików. Wpływ następnej opcji na
+ udział możemy się domyślić po samej nazwie
+ (<code class="code-inline">read only</code>)
+ oraz ustawionej jej wartości (<code class="code-inline">yes</code>).
Opcje zawierające frazę <code class="code-inline">mask</code>
zawierają domyślne uprawnienia dla tworzonych plików
(<code class="code-inline">create mask</code>) oraz katalogów
odwołania się do serwera. W przypadku Uniksów stosuje odwrotne
ukośniki: <code class="code-inline">//SERVER/username</code>. W ten
sposób wygląda eksportowanie katalogów domowych użytkowników. Dostęp
- katalogu domowego użytkownika wymaga podmontowania udziała lub
+ katalogu domowego użytkownika wymaga podmontowania udziału lub
skorzystania z klienta <em>Samby</em>. O czym będzie jeszcze w tym
podrozdziale.
</p>
temat opcji <code class="code-inline">comment</code> wspominałem
w podczas opisu eksportu katalogów domowych. Opcja
<code class="code-inline">guest ok</code> umożliwia udzielenie
- dostępu anonimowego do udział. W tym przypadku dostęp w ten sposób
+ dostępu anonimowego do udziału. W tym przypadku dostęp w ten sposób
jest zablokowany. Rzadko się zdarza generalnie aby dostęp anonimowy
był wymagany, jeśli tak jest to najczęściej udział jest tylko
odczytu. Chciaż spotkałem się z taką prośbą aby skonfigurować udział
- tak aby każdy mógł w nim zapisać informacje.
+ tak, aby każdy mógł w nim zapisać w nim swój plik.
Opcja <code class="code-inline">writeable</code> konfiguruje czy na
udziale będzie można zapisywać jakie kolwiek dane. Ostatnia opcja
wprawdzie ma jedno głowne zadanie, wskazać <em>Sambie</em>, że ta
sekcja to współdzielony katalog, a nie udostępiona drukarka dlatego,
- też ustawiono <em>drukowalnie</em> jako <em>nie</em>. Nie ma potrzeby
+ też ustawiono <em>drukowalne</em> jako <em>nie</em>. Nie ma potrzeby
ustawiania opcji <em>browsable</em>, ponieważ domyślnie jest ona
włączona. Chcąc zmienić ten stan, należy zapisać jej wystąpienie
definicji udziału i ustawić wartość
</p>
<p>
Dlaczego przyjąłem takie założenia, otóż drukowanie to jeden z
- cięższych tematów, ponieważ większość konsumenckich drukarek
- wsparcia dla dystrybucji Linuksa i korzystanie z nich swojego
- rodzju loteria. Dlatego może warto zajrzeć na stronę
+ cięższych tematów, ponieważ większość konsumenckich drukarek nie ma
+ dobrego wsparcia dla dystrybucji Linuksa i korzystanie z nich to
+ swojego rodzju loteria. Dlatego może warto zajrzeć na stronę
<a href="https://www.openprinting.org/printers">https://www.openprinting.org/printers</a>
- przed zakupem drukarki i jeśli ma działać do tym system to kupić
- jeden z dostępnych tam modeli. Chociaż może to niebyć w cale takie
+ przed zakupem drukarki i jeśli ma działać pod którąś z dystrybucji
+ to można rozważyć zakup
+ jedenego z dostępnych tam modeli. Chociaż może to niebyć w cale takie
prostę, poniważ wiekszość tych urządzeń lata świetności ma już za
sobą. Szkoda, bo za pomocą komputerów jednopłytkowych (takich jak
<em>Raspberry Pi</em>) można by drukarki, które nie są sieciowe
<p>
Samba prowadzi odrębną bazę użytkowników wykorzystując do tego inne
rodzaj szyfrowania. Dlatego też podczas "synchronizacji" (obecnie
- niedziałające), wymaga wpisania hasła do <em>/etc/shadow</em>. Aby
+ niedziałającej), wymaga wpisania hasła do <em>/etc/shadow</em>. Aby
uzyskać dostęp do udziałów użytkownicy innych platform muszą mieć
założone odrębne konta. Nazwy użytkowników kont <em>Samby</em> muszą
odpowiadać tym Uniksowym, więc nie możemy utworzyć użytkownika
<p>
Pierwszym z nich jest skorzyststanie z przeglądarki sieciowej
wbudowanej w menedżer plików, jeśli korzystamy z jednego z
- popularniejszych środowisk sieciowych. Przycisk uruchamiający te
+ popularniejszych środowisk graficznych. Przycisk uruchamiający te
funkcję znajduje się zazwycznaj po lewej stronie, najczęsciej nosi
nazwę <em>Przeglądanie sieci</em> lub <em>Sieć</em>. Tutaj musimy
przypomnieć sobie opcję <em>browseable</em>, która powodowała, że
Oczywiście przedstawione poniżej dwa sposoby tyczą się głównie
Uniksów, chciaż metoda z użyciem menedżera plików, również moze
znaleźć zastosowanie oczywiście jesli posiadamy opowiednie
- komponenty w swoim systemie. Jedna inne platformy jak głównie
+ komponenty w swoim systemie. Jednak inne platformy jak głównie
MS Windows będą wykorzystywać wyłącznie ją. Rzadko używa się
<em>Samby</em> do wymiany danych między dwoma Uniksami są do tego...
No właśnie, nie można jednoznacznie powiedzieć, że lepsze metody.
ograniczona do 15GB dla zwykłych użytkowników, oczywiście można
poszukać innego dostawcy tego typu usług, bo i tak nalepszym
narzędziem do korzystania z tego typu rozwiązań jest przeglądarka
- internetowa. Ceny są do siebie zbliżone. Jedym tak usługą ze strony
+ internetowa. Ceny są do siebie zbliżone. Jedyną taka usługą ze strony
trzeciej godną uwagi wydaję się <em>Internxt</em> oferując np.
plan dożywotni. Nie mniej jednak na uwagę zasługuje przchowywanie
danych, które opiera się na szyfrowaniu oraz na polityce