Podstawy systemu
Linux
dr inż. Ireneusz Mrozek
dr inż. Andrzej Chmielewski
Wydział Informatyki
Politechniki Białostockiej
Powłoka systemowa
Podstawy
Powłoka (shell) – tekstowy interfejs użytkownika w systemach
UNIX/Linux
Powłoka nieustannie realizuje cztery zadania:
wyświetla
prompt
wykonuje
polecenie
przetwarza
polecenie
wczytuje
polecenie
powłoka
Typu poleceń
Podstawy
Polecenia dzielimy na wewnętrzne (wbudowane) oraz
zewnętrzne (aplikacje)
Aplikacje znajdują się zwykle w katalogach: /bin, /usr/bin, /sbin, /usr/sbin
Jak sprawdzić typ polecenia?
$ type echo
echo is shell builtin
$ type date
date is /bin/date
System plików
Podstawy
Struktura podstawowych katalogów
Źródło: http://myshortnotes.info
Ścieżki dostępne
Podstawy
Ścieżki względne oraz bezwzględne
Ścieżka dostępu jest sekwencją katalogów oddzielonych znakiem „/”,
która identyfikuje miejsce katalogu (pliku) w systemie plików.
Ścieżka bezwzględna
Sekwencja katalogów od wierzchołka systemu plików (root) do danego
katalogu bądź pliku (np. /bin, /home/user/student).
Ścieżka względna
Sekwencja katalogów od bieżącego miejsca w systemie plików do
danego katalogu bądź pliku (np. ./proj1, ../student1/proj2).
Podstawowe polecenia
Podstawy
Korzystanie z interfejsu tekstowego jest zwykle znacznie
szybsze w porównaniu z narzędziami graficznymi
ls
: lista plików
cp
: kopiowanie plików
mv
: przenoszenie plików
rm
: kasowanie plików
mkdir
: tworzenie katalogów
cd
: zmiana katalogu
rmdir
: skasowanie katalogu
pwd
: wypisanie bieżącej ścieżki
chmod
: zmiana praw dostępu do plików
umask
: ustawienie maski praw dostępu
Edycja i podgląd zawartości plików
Podstawy
Korzystanie z interfejsu tekstowego jest zwykle znacznie
szybsze w porównaniu z narzędziami graficznymi
cat, more, less, head, tail [file] – wyświetlenie zawartości (bądź
jej części) pliku
grep word [file …] – wyszukanie w pliku danego słowa (wzorca)
vi, vim, pico, nano – edycja pliku
Ochrona plików
Podstawy
System wielodostępowy: wielu użytkowników, jeden komputer
Jak chronić dane prywatne ?
Jak upublicznić dane ?
Jak częściowo upublicznić dane ?
Ochrona plików
Podstawy
Podstawowy schemat praw dostępu
Trzy poziomy użytkowników
właściciel (u), grupa (g), pozostali (o)
Trzy poziomy ochrony
odczyt (r), zapis (w), wykonanie (x)
Schemat może być rozszerzony do ACL.
Ochrona plików
Podstawy
Poziomy ochrony
Poziom
Pliki
Katalogi
read
Pozwala
przeczytać
zawartość pliku
Pozwala wylistować
zawartość katalogu
write
Pozwala
modyfikować
zawartość pliku
Pozwala
tworzyć/usuwać pliki
execute
Pozwala wykonać
dany plik jako
program
Pozwala użyć pliki w
katalogu
Poziomy użytkowników
Podstawy
Trzy typy właścicieli
Właściciel – właściciel pliku lub katalogu
Grupa – członkowie zdefiniowanej w systemie grupy
Pozostali – wszyscy inni użytkownicy systemu
root – administrator systemu, może czytać/modyfikować wszystko
Polecenia zmiany właściciela i grupy
$ chown <new_user> <file>
$ chown <new_user>:<new_group> <file>
$ chgrp <new_group> <file>
Czytanie praw dostępu
Podstawy
Zmiana praw: chmod <perm> <file>
-
rwx
r-x
r--
1 student programisci
read
write
execute
właściciel
grupa
pozostali
właściciel
grupa
Prawa dostępu
Zmiana praw dostępu
Podstawy
Zmiana praw: chmod <perm> <file>
Poziom
Właściciel
Grupa
Pozostali
read
4
4
4
write
2
2
2
execute
1
1
1
+
chmod 740 plik
Przykład 1
Podstawy
Czy użytkownik user3 uruchamiający polecenie cat a.txt
obejrzy zawartość pliku a.txt ?
Mamy plik a.txt o następujących parametrach:
-rw-rw---- user1 group1 . . . a.txt
Mamy program cat (wyświetlający zawartość plików) o
następujących parametrach:
-rwxr-xr-x user2 group1 . . . cat
Przykład 2
Podstawy
Czy użytkownik user3 uruchamiający polecenie passwd
jest w stanie zmienić własne hasło ?
Mamy plik /etc/shadow o następujących parametrach:
-r-------- root root . . . shadow
Mamy program /usr/bin/passwd (umożliwiający zmianę hasła) o
następujących parametrach:
-r-s—x--x root root . . . passwd
Prawa dostępu procesów
Podstawy
Trzy typy praw dostępu procesów
Zachowany identyfikator użytkownika oraz zachowany identyfikator
grupy zawierają kopie rzeczywistego identyfikatora użytkownika i
rzeczywistego identyfikatora grupy w uruchomionym programie.
Nazwa
Opis
Rzeczywisty identyfikator użytkownika
Rzeczywisty identyfikator grupy
Kim my rzeczywiście jesteśmy
Efektywny identyfikator użytkownika
Efektywny identyfikator grupy
Identyfikator grup dodatkowych
Używane przy dostępie do plików
Zachowany identyfikator użytkownika
Zachowany identyfikator grupy
Identyfikator zachowany poprzez funkcję
exec()
SUID, SGID, sticky bit
Podstawy
Dodatkowe typy uprawnień
SUID
Jako identyfikator użytkownika przy sprawdzaniu praw dostępu danego procesu
do zasobów brany jest pod uwagę właściciel programu.
SGID
Jako identyfikator grupy przy sprawdzaniu praw dostępu danego procesu do
zasobów brana jest grupa do której należy program.
Sticky bit
Jeżeli ustawiony jest w katalogu, to użytkownik może w tym katalogu kasować te
pliki, których jest właścicielem lub do których ma prawo modyfikowania (nawet
jeżeli ma prawo modyfikowania katalogu).
Ustawianie praw specjalnych
Podstawy
Trzy typy specjalnych praw dostępu procesów
SUID
chmod 4xxx <file>
SGID
chmod 2xxx <file>
STB
chmod 1xxx <file>
SUID + SGID
chmod 6xxx <file>
SUID SGID
STB
r
w
x
r
w
x
r
w
x
4
2
1
4
2
1
4
2
1
4
2
1
Specjalne
Właściciel
Grupa
Pozostali
Odczyt praw specjalnych
Podstawy
Dodatkowe typy uprawnień
Prawa dostępu wyświetlane z użyciem polecenia „ls –l” nie mają
specjalnej sekcji na prawa specjalne. Prawa specjalne są jednak
związane z prawem „execute” w związku z czym są one
zaznaczane na tej właśnie pozycji.
r w x r w x r w x
r w
s
r w
s
r w
t
SUID
SGID
sticky
bit
Korzystanie z pomocy systemowej
Podstawy
Najlepsze źródło informacji. Dokumentacja zgodna z wersjami
zainstalowanych pakietów.
man <polecenie> lub info <polecenie>
$ man ifconfig
$ info ifconfig