MATERIAŁY DO PRZEDMIOTU SOP - LEKCJA 2










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.1a 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,



created by: Tomasz Kaszuba 2007

Valid HTML 4.01 Transitional