Część 1: Użytkownicy i kontrola dostępu
Jako ćwiczenie wstępne stworzymy plik, i ustawimy mu prawa dostępu '751'.
tomek@Zuerst:/tmp> mkdir plik
tomek@Zuerst:/tmp> chmod 751 plik //ustawiamy wszystkie prawa dla właściciela
// pliku, rx dla grupy, x dla reszty
tomek@Zuerst:/tmp/tmp> ls -l
razem 4
drwxr-x--x 2 tomek users 4096 paź 20 19:17 plik

Prawa:
- r - czytanie
- w - pisanie
- x - wykonanie
chmod - zmienia prawa dostępu do pliku.
-R - schodzi do podkatalogów
inna notacja: {u,g,o,a}{+,-,=}{r,w,x, }
- u - właściciel
- g - grupa
- o - inni
- a - wszyscy
- + - dodaj
- - - zabierz
- = - ustal
- r - czytanie
- w - pisanie
- x - wykonanie
Ćwiczenia:
Utwórz plik "a.txt", a następnie używając obu składni zmień prawa dostępu tak, by:
1. nikt nie posiadał do niego żadnych praw
2. wszyscy mogli do niego pisać
3. właściciel miał pełne prawa dostępu, a reszta żadnych praw
4. właściciel miał pełne prawa dostępu, grupa mogła tylko pisać plik, a reszta użytkowników mogła tylko plik czytać i wykonywać
Utwórz katalog "kat", ustaw mu prawa na 700 a następnie utwórz w nim plik "plik".
5. zmień prawa dostępu do katalogu by nikt nie mógł go odczytać (-wx). Wejdź do katalogu, utwórz w katalogu plik "plik1", wylistuj katalog, wypisz "plik1", zmodyfikuj "plik1". Która z operacji jest możliwa?
6. zmień prawa dostępu do katalogu by nikt nie mógł do niego pisac (r-x). Wejdź do katalogu, utwórz w katalogu plik "plik2", wylistuj katalog, wypisz "plik1", zmodyfikuj "plik1", usun "plik1". Która z operacji jest możliwa?
7. zmień prawa dostępu do katalogu by nikt nie mógł go wykonywać (rw-). Wejdź do katalogu, utwórz w katalogu plik "plik3", wylistuj katalog, wypisz "plik1", zmodyfikuj "plik1", usun "plik1". Która z operacji jest możliwa?
8. Czym jest prawo wykonywania dla katalogów/plików?
9. Dlaczego w linuksie trudniej (w porównaniu z Windowsami działającymi pod fat32) jest złapać trojana czy robaka?
umask - zmienia szablon praw dostępu dla nowo tworzonych plików.
-S - wypisuje w "bardziej zrozumiałej" formie
-p - wymaga podania argumentów w formie u=rwx,g-rwx,o-rwx
Ćwiczenia:
10.ustaw umask na 000 a następnie utwórz katalog "kat1" i plik "plik1". Obejrzyj prawa dostępu. Czy są takie same?
11.zmien umask na 123 a następnie utwórz katalog "kat1" i plik "plik1". Obejrzyj Prawa dosępu.
12.zmień umask tak, by po utworzeniu pliku prawa dostępu były 660 (-rw-rw----).
chown - zmienia właściciela pliku, chgrp - zmienia grupe pliku
Ćwiczenia:
13.z konta roota utwórz plik "plik1" i ustaw mu prawa 640, ustaw grupę zgodną z kontem użytkownika. Wyloguj się z konta roota.Wypisz plik, zmodyfikuj plik. Czy możesz to zrobić?
14.z konta roota zmien grupe na grupe zgodną z grupą roota. Czy teraz użytkownik może odczytać plik? Dlaczego?
15.z konta użytkownika zrób plik "plik2" ustaw mu prawa 000. Wypisz plik, zaloguj się jako root i ponownie wypisz plik. Czy działa tak samo?
Część 2: Praca zdalna
whoami - wypisuje nazwe użytkownika
who - wypisuje nazwy wszystkich zalogowanych użytkowników
finger - wypisuje informacje o użytkownikach
ssh - klient SSH, połączenie bezpieczne z konsolą linuksa
sftp - klient SSH File Transfer Protocol shell, połączenie bezpieczne z konsolą linuksa
Ćwiczenia:
Zaloguj się do konta szkolnego
ssh sXXXX@mushelka.pjwstk.edu.pl
16.zobacz kto jest aktualnie zalogowany
17.użyj finger na wybranym użytkowniku
18.wykonaj polecenie ssh w tej samej formie kilka razy z rzędu, obserwuj who ilość użytkowników zalogowanych
19.wypisz plik /etc/passwd z komputera zdalnego
20.ściągnij plik /etc/passwd z komputera zdalnego
21.wyślij plik "plik1" na komputer zdalny
telnet - łączy się do komputera za pomocą TCP
Ćwiczenia:
22.wykonaj polecenie telnet pjwstk.edu.pl 80 , po czym wpisz
GET / HTTP/1.1 a następnie dwa razy enter . Jaka usługa jest uruchomiona na porcie 80 ?
23.wykonaj polecenie telnet poczta.pjwstk.edu.pl 25 , a następnie przerwij połączenie. Jaka usługa jest uruchomiona na tym porcie?
24.wykonaj polecenie telnet poczta.pjwstk.edu.pl 110 , a następnie wpisz USER sXXXX potwierdź enterem, przerwij połączenie. Jaka usługa jest uruchomiona na tym porcie?
Część 3: Przekierowanie wejścia wyjścia, zmienne środowiskowe, wyrażenia regularne
Zmienne środowiskowe:
Definują środowisko użytkownika, dostępne dla wszystkich procesów potomnych. Można je podzielić na:
- globalne - widoczne w każdym podshellu
- lokalne - widoczne tylko dla tego shella w którym został ustawione
x="napis"
echo $x
xterm& // w nowym shellu wydajemy ponownie polecenie echo $x
export x
xterm& // w nowym shellu wydajemy ponownie polecenie echo $x
Wszystkie ustawione zmienne środowiska można wypisać za pomocą env, printenv, set
Operatory przekierowania wejścia/wyjścia
< - strumień wejściowy z pliku
> - strumień wyjściowy do pliku
>> - Strumień wyjściowy do pliku tryb dopisywania
| - strumień wyjściowy do strumienia wejściowego inengo pliku
tee - kopiuje strumień wyjściowy do pliku i na stdout
Znaczenia ' " ` \
\ - "chroni" znak występujący bezpośrednio po tym znaku
` - tekst między tymi znakami (akcenty) jest traktowane jak polecenie
' - maskuje wszystkie znaki (zostawia spacje)
" - uznaje niektóre znaki specjalne (\ $ `) -> (zostawia spacje)
tomek@Zuerst:~/tmp> z=5
tomek@Zuerst:~/tmp> echo moja zmienna to: $z a katalog: `pwd`
moja zmienna to: 5 a katalog: /home/tomek/tmp
tomek@Zuerst:~/tmp> echo "moja zmienna to: $z a katalog: `pwd`"
moja zmienna to: 5 a katalog: /home/tomek/tmp
tomek@Zuerst:~/tmp> echo 'moja zmienna to: $z a katalog: `pwd`'
moja zmienna to: $z a katalog: `pwd`
Wyrażenia regularne
find - znajduje pliki -name - nazwa -maxdepth n - zagłębianie się w podkatalogach o "n"-poziomów
tomek@Zuerst:~> find `pwd` -name *top -type d //znajdz w katalogu bieżącym
//katalog pasujący do wzorca *top
/home/tomek/Desktop
Pobierz plik tworzpliki, nadaj mu prawa wykonywania i uruchom go w pustym katalogu
Napisz polecenie używające find , które wypisze nazwy plików, które:
1.zaczynają się od "lista"
2.zaczynają się od liter a lub w (wielkośc nieważna)
3.zaczynają się od z, a kończą a
4.tak jak nr 1 dodatowo posortuje je odwrotnie
5.posiadają na końcu cyfrę
6.posiadają na końcu cyfrę a w środku literę o
Programy:
wc - liczy słowa, znaki, linie -w - słowa -l - linie -c bajty
sort - sortuje linie -r - odwrotnie
uniq - wyrzuca powtórki
head - wypisuje pierwsze 10 lini na stdout -n 4 - wypisuje pierwsze 4 linie
tail - wypisuje ostatnie 10 linii na stdout -n 4 - wypisuje ostatnie 4 linie
cut - wycina określone sekcje ze strumienia
-c 1-3 - pierwsze trzy znaki każdej linii
-d " " -f 1 - dzieli według spacji i wypisuje pierwszą kolumnę
(można stosować zapis typu x-y oraz x,y przy wyborze wypisywania)
tr - transformuje tekstm wyrzuca znaki itp -d - usuwa znaki -s - usuwa powtórki
expr - wylicza wartość wyrażenia (wymagane są spacje między wyrażeniami np. 4 + 4)
grep - wypisuje linie zawierające dany wzorzec -i - ignoruje wielkość znaków -v - wyklucza wzorzec ^ha - rozpoczynające się od "ha" [ta] - "t" lub "a" ek$ - kończące się na "ek"
Ćwiczenia:
1.napisz polecenie, które wypisze 10-tą linię pliku.
2.napisz polecenie, ktore wypisze liczbę plików o nazwie kończącej się na a lub b
3.napisz polecenie, ktore wypisze pliki o nazwie nie zaczynającej się na c
4.napisz polecenie, które poda liczbę plików w bieżącym katalogu,
5.napisz polecenie, które poda liczbę wszystkich katalogów w poddrzewie zaczynającym się od bieżącego katalogu,
6.napisz polecenie, które poda liczbę plików w poddrzewie zaczynającym się od bieżącego katalogu,
7.napisz polecenie, które poda liczbę plików z rozszerzeniem.java
8.napisz polecenie, ktore wypisze wszystkie pliki użytkownika w katalogu (skorzystac z $USER lub whoami),
9.napisz polecenie, które wypisze liczbę sesji użykownika (który wykona to polecenie),
10.napisz polecenie, które wypisze same rozmiary plików w bieżącym katalogu,
11.napisz polecenie, które wypisze różne czasy dostępu do plików w bieżącym katalogu,
12.napisz polecenie, które wypisze rozmiar największego pliku w w bieżącym katalogu,
|