Podstawowe polecenia

Wprowadzenie teoretyczne do lekcji nr 3

Ta lekcja ma na celu przypomnienie, takich trochę podstawowych poleceń stosowanych w Linuksie. Oczywiście zwrócę też uwagę na pliki konfiguracyjne, które odgrywają ważną rolę w funkcjonowaniu naszego systemu, a niejednokrotnie ich znajomość zdecydowanie ułatwia pracę.

I. Polecenia proste.

Po poleceniach związanych z tworzeniem użytkowników czy też sprawdzaniem adresacji warto sobie przypomnieć takie polecenie jak pwd. Jest to polecenie, które wyświetla nam informację o tym, w którym obecnie miejscu się znajdujemy, czyli pokazuje nam ścieżkę aktualnego katalogu. Wpisujemy w konsoli:
$ pwd
I już widzimy, że jesteśmy w naszym katalogu domowym /home/highsec. Gdy przejdziemy do katalogu głównego systemu poleceniem:
$ cd /
i ponownie użyjemy polecenia pwd, to też widzimy, że aktualną ścieżką, w której się znajdujemy jest katalog /

Gdy jesteśmy już w katalogu głównym systemu /, to możemy pokazać sobie jego zawartość. Służy do tego polecenie ls lub ls -l. Po użyciu tej drugiej opcji mamy uporządkowaną listę plików i katalogów łącznie z uprawnieniami. Wpisujemy więc w konsoli:
$ ls -l
I widzimy zawartość katalogu /.

Oczywiście niemal każde polecenie w Linuksie ma dodatkowe opcje, z których możemy korzystać. Aby je podglądnąć to należy użyć help albo skorzystać z podręcznika systemowego man. Użyjemy najpierw help. Wpisujemy polecenie:
$ ls --help
I widzimy dostępne opcje, ale są one niekompletne, ponieważ brakuje nam początku, a nie możemy sobie "przeskrolować" zawartości. Musimy to zmienić.

Skorzystamy z opcji less, która pozwoli nam Enterem przewijać linijkę po linijce lub Spacją ekran po ekranie. Wpisujemy więc polecenie:
$ ls --help | less
Widzimy, że teraz ekran nam się zatrzymał i możemy spokojnie przewijać dalszą zawartość. Nawet strzałkami możemy sobie operować w górę lub w dół. Oczywiście opcja less może być wykorzystywana z dowolnym poleceniem np.:
ls -l | less
Program kończymy klawiszem q

W przypadku podręcznika systemowego man, wpisujemy polecenie:
$ man ls
I mamy już dostęp do wszystkich opcji. Ekrany bądź linijki przewijamy tak samo jak w przypadku polecenia less i podobnie jak wyżej program kończymy klawiszem q

II. Ważne pliki z katalogu /etc.

W Linuksie jednym z ważniejszych katalogów, który zawiera wiele plików konfiguracyjnych dotyczących naszego systemu, sieci, usług serwerowych itp., jest katalog /etc. Dodatkowo znajdują się tam skrypty lub katalogi zawierające skrypty, które są uruchamiane podczas startu systemu. Oczywiście nie będę w tym miejscu omawiał tego wszystkiego, ale zwrócę uwagę na kilka plików, które mogą w przyszłości ułatwić nam pracę. Do tych istotnych z punktu widzenia egzaminu zawodowego z kwalifikacji INF.02 należą:
- /etc/group
- /etc/passwd
- /etc/shadow
- /etc/fstab
- /etc/shells
Plik /etc/group definiuje grupy, do których należą użytkownicy.
Plik /etc/passwd zawiera informacje o każdym użytkowniku, czyli np. nazwę, numer UID, katalog domowy, powłokę itp.
Plik /etc/shadow tak zwany "plik cieni", w którym przechowywane są zaszyfrowane hasła.
Plik /etc/fstab zawiera informacje dotyczące dysków twardych, partycji oraz sposobu ich montowania.
Plik /etc/shells zawiera informacje o ścieżkach do dozwolonych powłok zgłoszeniowych.
Plik /etc/group był już omówiony w jednej z poprzednich lekcji, więc teraz zaczniemy od pliku /etc/shells.

Plik /etc/shells

Ostatni plik, który tutaj omówimy to /etc/shells. Aby go otworzyć wpisujemy:
$ sudo nano /etc/shells
W pliku tym zawarte są ścieżki do dozwolonych powłok zgłoszeniowych. Na zielono zanaczyłem powłokę, z której obecnie korzystamy.

Plik /etc/fstab

Następny plik to /etc/fstab. Aby go otworzyć wpisujemy:
$ sudo nano /etc/fstab
W pliku tym zawarte są linie z 6 polami dla każdego zamontowanego systemu plików. Screen nie jest do końca czytelny, ponieważ korzystamy w VB. Na maszynie rzeczywistej wpisy wyglądają bardziej sensownie.

Plik /etc/fstab

Tutaj mamy screen z maszyny rzeczywistej, gdzie dyski i partycje są już właściwie opisane.

Aby otworzyć plik /etc/passwd wpisujemy:
$ sudo nano /etc/passwd
Widzimy, że w naszym systemie znajduje się trzech użytkowników - root, highsec oraz admin01, którzy mają dostęp do powłoki (kolor czerwony) i mogą się logować. Oprócz tego mamy nazwę użytkownika (kolor jasny zielony), informację o haśle (x - kolor fioletowy), identyfikator użytkownika UID (kolor żółty), identyfikator grupy GID (kolor niebieski), informacje dodatkowe (kolor ciemny zielony) oraz katalog domowy użytkownika (kolor pomarańczowy).

Kolejnym plikiem jest /etc/shadow. Aby go otworzyć wpisujemy:
$ sudo nano /etc/shadow
Ponownie widzimy naszych trzech użytkowników - root, highsec oraz admin01, a parametry konta, podobnie jak w poprzednim pliku oddzielone są dwukropkiem. Do naszej dyspozycji jest: nazwa użytkownika (kolor jasny zielony), hasło w postaci zaszyfrowanej (kolor niebieski), uniksowa data utworzenia konta (kolor żółty), ilość dni po których hasło może zostać zmienione (kolor ciemny zielony), ilość dni po których hasło musi zostać zmienione (kolor fioletowy), ilość dni przy których nastąpi ostrzeżenie o wygaśnięciu hasła (kolor pomarańczowy) i dwie ostatnie pozycje dotyczące daty wygasania konta oraz pole rezerwowe (kolor biały).

III. Zmiana ustawień i parametrów konta użytkownika.

Skoro już analizujemy plik /etc/shadow, w którym znajdują się różne parametry dotyczące konta użytkownika, to spróbujemy je zmienić. Do zmian parametrów i ustawień konta użytkownika możemy użyć poleceń: chage oraz passwd.

Polecenie chage

Najpierw spróbujemy wykorzystać polecenie chage. Żeby sprawdzić jakie daje nam możliwości warto skorzystać z podpowiedzi. Wpisujemy więc:
$ chage --help
Pojawia nam się lista dostępnych opcji, które możemy użyć razem z tym poleceniem. Na początek wykorzystamy parametr -l, który wyświetla nam informacje o statusie konta.

Polecenie chage

Pozyskamy sobie informacje dotyczące konta admin01. Wpisujemy więc:
$ sudo chage -l admin01
Jak widać musimy użyć sudo ponieważ dostajemy odmowę dostępu. Stosując np. parametr -E możemy ustawić datę wygasania konta. Na chwilę obecną konto nigdy nie wygasa.

Wygasanie konta

Załóżmy, że chcemy aby nasze konto wygasło z dniem 21 marca 2026 roku. Aby to zrobić wpisujemy polecenie:
$ sudo chage -E 2026-03-21 admin01
Gdy ponownie wyświetlimy sobie informacje o naszym koncie, to widzimy, że jest już właściwa data ustawiona.

Wygasanie konta

Gdybyśmy natomiast chcieli ponownie ustawić opcję "konto nigdy nie wygasa", to wystarczy zamiast daty wpisać -1. Wygląda to tak:
$ sudo chage -E -1 admin01
Ponownie wyświetlamy informacje o naszym koncie i widzimy, że konto nigdy nie wygasa.

Wygasanie konta

Polecenie chage ma też możliwość pracy w trybie interaktywnym. Działa tak wtedy, kiedy nie używamy żadnego parametru. Gdy wpiszemy polecenie:
$ sudo chage admin01
Będziemy mieli możliwość podania konkretnych wartości dla każdego z kolejnych pól, zatwierdzając je Enterem. Podanie wartości pustej pozostawia wartość bieżącą, która wyświetlona jest w nawiasie kwadratowym [ ]. Wprowadzimy teraz następujące dane:
- Minimalna ilość dni po których hasło może zostać zmienione: 40 dni
- Maksymalna ilość dni po których hasło musi zostać zmienione: 365 dni
- Ostatnia zmiana hasła: nie wprowadzamy zmian
- Ostrzeżenia o konieczności zmiany hasła: 14 dni
- Ilość dni po wygaśnięciu hasła, umożliwiająca logowanie: nie wprowadzamy zmian
- Data wygasania konta: 21 marzec 2026 rok
Na koniec sprawdzamy poprawność wprowadzonych zmian.

Plik /etc/shadow po zmianach

Dodatkowo możemy jeszcze sprawdzić jak zmienił się plik /etc/shadow, poprzez jego edycję znanym już nam poleceniem:
$ sudo nano /etc/shadow
Jak widać zmiany te zostały wprowadzone i niektóre puste pola też są już wypełnione. Oczywiście parametry konta można również zmieniać tutaj w tym pliku.

Polecenie passwd

Sprawdzimy teraz drugie polecenie - passwd. Dotyczy ono głównie zmiany haseł dla użytkowników, ale można też przy jego pomocy wykonać jeszcze kilka innych czynności. Żeby sprawdzić jakie daje nam możliwości warto skorzystać z podpowiedzi. Wpisujemy więc:
$ passwd --help
Pojawia nam się lista dostępnych opcji, które możemy użyć razem z tym poleceniem. Na początek wykorzystamy parametr -S, który wyświetla nam informacje o statusie konta.
$ sudo passwd -S admin01
Oczywiście musimy użyć sudo, bo bez tego nie uzyskamy żadnych informacji o naszym koncie. Sam efekt polecenia nie jest skomplikowany i zawiera 7 pól, które czytając od lewej oznaczają: login, status hasła (L-zablokowane, NP-brak hasła, P-hasło aktywne), data ostatniej zmiany hasła, minimalna ilość dni po których hasło może zostać zmienione, maksymalna ilość dni po których hasło musi zostać zmienione, ostrzeżenie o konieczności zmiany hasła oraz ilość dni po wygaśnięciu hasła, umożliwiająca logowanie.

Blokada hasła do konta

Teraz dla przykładu, mając dostępne opcje zablokujemy konto (a właściwie hasło do konta) admin01, stosując polecenie:
$ sudo passwd -l admin01
Następnie sprawdzamy status konta i widzimy już literkę L, która świadczy o zablokowanym haśle. Próbujemy się jeszcze zalogować naszym użytkownikiem, ale dostajemy informację o niepoprawnym loginie.

Odblokowanie hasła

Na koniec odblokujemy nasze hasło poleceniem:
$ sudo passwd -u admin01
Sprawdzamy status konta i widzimy już literkę P, która świadczy o aktywnym haśle. Dla formalności zalogujemy się naszym użytkownikiem i widzimy, że wszystko jest ok.

IV. Uprawnienia w Linuksie.

1. Prawa dostępu - właściciel, grupa i pozostali użytkownicy.
Istotną rzeczą podczas wykonywania czynności na plikach i katalogach są uprawnienia oraz to, kto jest właścicielem tychże zasobów. Zakładam, że większość użytkowników przystępujących do pracy na Linuksowym serwerze radzi sobie z uprawnieniami, niemniej jednak przypomnę kilka podstawowych zasad, które ułatwią nam pracę z późniejszymi usługami (np. z Sambą). Definiując prawa dostępu stwarzamy użytkownikom możliwość odczytu, zapisu i wykonania do poszczególnych plików lub katalogów.

Uprawnienia do plików i katalogów

Aby lepiej zrozumieć jak funkcjonują uprawnienia w Linuksie, utworzymy sobie jeden katalog o nazwie goldfinger oraz plik sean_connery.txt. Wpisujemy polecenia:
$ mkdir goldfinger
$ touch sean_connery.txt
Następnie wyświetlamy sobie zawartość naszego katalogu domowego i widzimy, że utworzony folder domyślnie ma uprawnienia 775 (rwxrwxr-x), natomiast plik 664 (rw-rw-r--). Na powyższym screenie podaję wykaz pojedynczych uprawnień zarówno w wartościach cyfrowych (a dokładnie w systemie ósemkowym) jak i literowych. Oczywiście prawa dostępu można łączyć i stąd rwx po zsumowaniu daje wartość 7, a r-x daje wartość 5. Widzimy również, że pierwszy bit przy folderze ma literkę "d", a przy pliku jest "-". Kolejne trzy bity dotyczą uprawnień dla właściciela (user-owner), następne trzy bity to uprawnienia dla grupy (group), a ostatnie trzy to uprawnienia dla pozostałych użytkowników (others).

2. Polecenie chmod.
Aby zmienić uprawnienia do określonych zasobów używamy polecenie chmod. Jeśli jesteśmy właścicielem pliku bądź katalogu to możemy tę operację wykonać bez polecenia sudo W przeciwnym razie używamy polecenia sudo, chyba że mamy pełne prawa do tego pliku lub katalogu.

Uprawnienia do plików i katalogów

Załóżmy, że chcemy nadać do katalogu goldfinger pełne prawa dla właściciela (7), odebrać uprawnienia dla grupy (0), a dla pozostałych użytkowników nadać możliwość odczytu (4). Użyjemy do tego polecenia:
$ chmod 704 goldfinger
Nie musimy używać sudo ponieważ jesteśmy zalogowani użytkownikiem admin01, który jest właścicielem tego katalogu (kolor pomarańczowy). Następnie sprawdzamy uprawnienia:
$ ls -l
I widzimy, że uprawnienia są już zmienione (kolor jasny niebieski).

Tworzenie plików

Przejdziemy teraz do katalogu goldfinger i utworzymy w nim dwa plik tekstowe: sean.txt oraz connery.txt. Wpisujemy: $ touch sean.txt connery.txt
I znanym już poleceniem ls -l sprawdzamy czy te pliki się tam znajdują.

Sprawdzanie uprawnień

Zalogujemy się teraz użytkownikiem highsec i sprawdzimy czy mamy dostęp do katalogu goldfinger. Dla pozostałych użytkowników był nadany tylko odczyt więc może być z tym mały problem. Wpisujemy:
$ cd /home/admin01/goldfinger
I mamy odmowę dostępu. Natomiast jeśli wylistujemy zawartość katalogu poleceniem:
$ ls -l /home/admin01/goldfinger
Mamy odmowę dostępu, ale jest jakaś informacja (niepełna), że te dwa pliki się tam znajdują.

Prawo do odczytu i wykonania

Teraz zmienimy sobie uprawnienia do tego katalogu, nadając dla pozostałych użytkowników tylko prawo do wykonania (x). Musimy więc zabrać odczyt (o-r) i dodać wykonanie (o+x) poleceniem:
$ sudo chmod o+x,o-r /home/admin01/goldfinger
Musimy użyć sudo ponieważ robimy to z poziomu użytkownika highsec, który nie ma do tego uprawnień, ani nie jest właścicielem tego katalogu. Następnie ponownie próbujemy przejść do tego katalogu (sukces) oraz podejrzeć jego zawartość (nieudana próba). Wytłumaczenie tej sytuacji jest bardzo proste. Jeśli mamy tylko odczyt, to możemy podglądnąć zawartość katalogu, ale nie możemy do niego wejść ze względu na brak prawa do wykonania (execute). W sytuacji odwrotnej możemy wejść do katalogu (prawo do wykonania), ale nie możemy podejrzeć jego zawartości brak prawa do odczytu).

Prawo do odczytu i wykonania

Dlatego, aby wejść do katalogu i mieć możliwość podglądnięcia jego zawartości należy te dwa prawa (odczyt i wykonanie) ustawić jednocześnie. Wykonanie już mamy, więc dodamy tylko odczyt poleceniem:
$ sudo chmod o+r /home/admin01/goldfinger
Ponownie przechodzimy do katalogu i próbujemy podglądnąć jego zawartość. Teraz już wszystko działa.

3. Polecenie chown.
Bardzo często podczas pracy na plikach i katalogach dochodzi do sytuacji, w której korzystamy z możliwości zmiany właściciela lub grupy. Gdy tworzymy np. katalog i nie stosujemy polecenia sudo to właścicielem tego zasobu jest ten użytkownik, który go utworzył. Jeśli zaś zastosujemy polecenie sudo, to właścicielem będzie root. Do zmiany właścicela lub grupy słyży polecenie chown.

Polecenie chown

Będąc zalogowanym użytkownikiem highsec, przejdziemy do jego katalogu domowego i utworzymy w nim dwa nowe foldery skyfall oraz spectre. Jeden utworzymy bez, a drugi z użyciem polecenia sudo. Wpisujemy zatem:
$ mkdir skyfall
$ mkdir spectre
I znanym już poleceniem ls -l sprawdzamy kto jest ich właścicielem. Oczywiście potwierdziło się to co napisałem wcześniej. W takim razie zmienimy właściciela katalogu skyfall z root na highsec.

Zmiana właściciela i grupy

Aby to zrobić należ użyć polecenia chown, które powinno zawierać składnię: sudo chown nazwa_użytkownika nazwa_katalogu/pliku. Wpisujemy zatem:
$ sudo chown highsec skyfall
Wylistujemy sobie znanym już poleceniem ls -l i mamy już zmienionego właściciela, ale nadal pozostała grupa root. Aby zmienić ją także na highsec, zastosujemy polecenie:
$ sudo chown :highsec skyfall
Teraz już jest wszystko ok.

Zmiana właściciela i grupy

Jeśli natomiast chcemy jednym poleceniem zmienić właściciela i grupę, to należy użyć składni: sudo chown nazwa_użytkownika:nazwa_grupy nazwa_katalogu/pliku. Zmienimy zatem właściciela i grupę do katalogu spectre z highsec na admin01. Wpisujemy zatem:
$ sudo chown admin01:admin01 spectre
Wylistujemy sobie znanym już poleceniem ls -l i mamy już zmienionego właściciela i grupę.

4. Lepki bit.
Bardzo przydatną opcją przy nadawaniu praw dostępu do katalogów jest lepki bit. Pozwala on mieć kontrolę nad własnymi plikami i folderami, przy pełnych prawach dostępu dla wszystkich użytkowników w naszym systemie.

Zastosowanie lepkiego bitu

Aby zrozumieć działanie lepkiego bitu, nadamy do katalogu spectre pełne prawa dla wszystkich użytkowników. Wpisujemy zatem:
$ sudo chmod 777 spectre
Jak zawsze w takiej sytuacji wylistujemy sobie poleceniem ls -l i widzimy, że jego właścicielem jest admin01, a wszyscy użytkownicy mają pełne prawa dostępu do tego katalogu. Następnie przejdziemy do tego katalogu i bedąc zalogowanym użytkownikiem highsec utworzymy w nim dwa pliki:
$ touch daniel_craig.txt monica_bellucci.txt
Poleceniem ls -lsprawdzamy zawartość tego katalogu i widzimy, że te pliki się tam znajdują.

Zastosowanie lepkiego bitu

Następnie logujemy się użytkownikiem admin01 przechodzimy do katalogu spectre i tworzymy w nim kolejne dwa pliki:
$ touch christoph_waltz.txt ralph_fiennes.txt
Sprawdzamy zawartość poleceniem ls -l i widzimy, że mamy cztery pliki, z których właścicielem dwóch jest admin01, a kolejnych dwóch użytkownik highsec.

Zastosowanie lepkiego bitu

Ponieważ każdy użytkownik "może wszystko" to spróbujemy usunąć z poziomu użytkownika admin01 jeden swój plik, a jeden użytkownika highsec. Wpisujemy polecenia:
$ rm daniel_craig.txt
$ rm ralph_finnes.txt
Podczas usuwania pliku użytkownika highsec pojawiło się pytanie czy na pewno chcemy usunąć ten plik, ale wystarczyło potwierdzić literą "Y" i plik został usunięty. Oczywiście ze swoim plikiem nie było żadnego problemu.

Zastosowanie lepkiego bitu

Wracamy teraz ponownie na konto użytkownika highsec i wykonujemy tę samą czynność. To znaczy próbujemy usunąć z poziomu użytkownika highsec jeden swój plik, a jeden użytkownika admin01. Wpisujemy polecenia:
$ rm monica_bellucci.txt
$ rm christoph_waltz.txt
Podobnie jak w poprzedmim przypadku, podczas usuwania pliku użytkownika admin01 pojawiło się pytanie czy na pewno chcemy usunąć ten plik, ale także wystarczyło potwierdzić literą "Y" i plik został usunięty. Oczywiście ze swoim plikiem nie było żadnego problemu.

Zastosowanie lepkiego bitu

Nie jest to do końca porządana sytuacja, ponieważ właścielem folderu jest użytkownik admin01, a użytkownik highsec może usuwać jego pliki. Wprawdzie daliśmy mu pełne uprawnienia do tego katalogu, ale nie chcemy aby usuwał nasze dane. Utworzymy ponownie te cztery pliki (dwa przez jednego użytkownika, a kolejne dwa przez drugiego) i ustawimy lepki bit do tego folderu. Aby to zrobić należy np. wyjść poziom wyżej do katalogu /home/highsec/ i użyć polecenia:
$ chmod 1777 spectre
Sprawdzamy zawartość poleceniem ls -l i widzimy, że nasz katalog spectre ma na ostatnim bicie literkę t. To oznacza, że właściciel tego zasobu (admin01) ma ustawiony lepki bit i nikt nie będzie mógł usunąć jego plików i katalogów.

Zastosowanie lepkiego bitu

Z poziomu użytkownika admin01 próbujemy usunąć dwa pliki (jeden swój, a drugi użytkownika highsec) za pomocą poleceń:
$ rm monica_bellucci.txt
$ rm christoph_waltz.txt
Sprawdzamy zawartość poleceniem ls -l i widzimy, że obydwa pliki zostały usunięte.

Zastosowanie lepkiego bitu

Teraz logujemy się użytkowniem highsec i próbujemy usunąć kolejne dwa pliki (jeden swój, a drugi użytkownika admin01) za pomocą poleceń:
$ rm ralph_finnes.txt
$ rm daniel_craig.txt
Jak widać jeden z plików nie dał się usunąć, a był to plik użytkownika admin01. Sprawdzamy jeszcze zawartość katalogu poleceniem ls -l i widzimy, że ten plik pozostał. Tak właśnie działa lepki bit.

V. Dowiązanie (link) twarde i symboliczne.

1. Dowiązanie twarde.
Definicja linku bądź dowiązania jest bardzo prosta. Jest to zwyczajne odwołanie się do konkretnego pliku lub katalogu znajdującego się na dysku za pomocą dowolnej nazwy (jednej lub wielu). Dowiązanie twarde to nic innego jak utworzenie nowej nazwy do konkretnego pliku, a właściwie nie do pliku tylko do jego zawartości. Używając dowiązania twardego nie możemy odwołać się do katalogu. Aby zrozumieć jak funkcjonuje dowiązanie twarde, najlepiej zrobić to na przykładzie.

Dowiązanie twarde

W katalogu domowym użytkownika highsec mamy katalog spectre, a w nim plik ralph_fiennes.txt. Najpierw ustawimy sobie dla niego możliwość zapisu dowolnym użytkownikiem korzystając z polecenia:
$ sudo chmod o+w ralp_fiennes.txt
A następnie wprowadzimy do niego zawartość "Ralph Fiennes jest brytyjskim aktorem". Użyjemy do tego polecenia:
$ echo "Ralph Fiennes jest brytyjskim aktorem" > ralph_fiennes.txt
Oczywiście możemy sprawdzić, czy nasze zdanie zostało wprowadzone do naszego pliku. Użyjemy polecenia:
$ cat ralph_fiennes.txt
Widzimy, że wszystko jest ok i plik zawiera wprowadzone przez nas zdanie.

Dowiązanie twarde

Teraz utworzymy dowiązanie twarde, do którego zastosujemy polecenie ln. Ogólnie składnia wygląda następująco: ln plik_do_którego_tworzymy_dowiązanie nazwa_dowiązania. Stworzymy teraz dowiązanie twarde do pliku ralph_fiennes.txt i umieścimy je pod nazwą link_rf.txt w katalogu skyfall. Wpisujemy polecenie
$ ln ralph_fiennes.txt /home/highsec/skyfall/link_rf.txt
Następnie przechodzimy do katalogu skyfall i widzimy, że nasze dowiązanie już się tam znajduje. Podglądamy jego zawartość poleceniem cat i wszystko się zgadza. Co ciekawe jeśli naniesiemy jakieś zmiany w tym dowiązaniu, to zostaną one również wprowadzone w pliku oryginalnym.

Dowiązanie twarde

Dodamy więc kolejne zdanie do naszego dowiązania:
$ echo "Ralph jest także reżyserem" >> link_rf.txt
Następnie podglądamy jego zawartość poleceniem cat i wszystko się zgadza. Sprawdzimy jeszcze zawartość pliku ralph_fiennes.txt tym samym sposobem i widzimy, że to zdanie znajduje się również w pliku oryginalnym.

Dowiązanie twarde

Jest jeszcze jedna rzecz, o której warto wspomnieć. Gdy używamy polecenia ls -l to po uprawnieniach widzimy wartość 2. Oznacza to, że w systemie znajdują się dwa pliki z tą samą zawartością (powiązane ze sobą). Gdy stworzymy kolejne dowiązanie do pliku ralph_fiennes.txt, to powinna pojawić nam się w tym miejscu wartość 3. Wpisujemy więc:
$ ln ralph_fiennes.txt /home/highsec/skyfall/drugi_link_rf.txt
Następnie sprawdzamy poleceniem ls -l czy wartość 3 pojawiła się w odpowiednim miejscu. Oczywiście tak się stało. Przechodzimy zatem do katalogu skyfall, także podglądamy jego zawartość i widzimy, że kolejne dowiązanie zostało utworzone. Dodatkowo wartość 3 pojawiła się przy obydwu plikach.

2. Dowiązanie symboliczne.
Dowiązanie symboliczne to nic innego jak utworzenie zwykłego skrótu do określonego zasobu. Używając dowiązania symbolicznego możemy odwołać się zarówno do pliku jak i katalogu. Podobnie jak wcześniej aby lepiej zrozumieć jak funkcjonuje dowiązanie symboliczne, zróbmy to na jakimś przykładzie.

Dowiązanie symboliczne

Utworzymy dowiązanie symboliczne, do którego zastosujemy polecenie ln -s. Ogólnie składnia wygląda następująco: ln -s plik/katalog_do_którego_tworzymy_dowiązanie nazwa_dowiązania. Niech to będzie dowiązanie symboliczne do katalogu spectre i umieścimy je katalogu skyfall pod nazwą skrotskyfall. Użyjemy do tego polecenia:
$ ln -s /home/highsec/spectre /home/highsec/skyfall/skrotskyfall
Przechodzimy do katalogu skyfall, podglądamy jego zawartość i widzimy, że dowiązanie już tam się znajduje. Wystarczy teraz użyć polecenia:
$ cd skrotskyfall
I jeszcze klasycznego ls -l i widzimy zawartość katalogu spectre.