Prawa dostępu $ ls -al właściciel grupa rozmiar -rw------- 1 asawicka staff 6627 22 lut 22:37.bash_history -rw-r--r-- 1 asawicka staff 173 23 sie 2012.bash_profile drwxr-xr-x 2 asawicka staff 68 1 gru 2012 Applications -rw-r--r-- 2 asawicka staff 0 1 mar 06:28 plik.txt -rw-r--r-- 2 asawicka staff 0 1 mar 06:28 plik2.txt lrwxr-xr-x 1 asawicka staff 8 1 mar 06:29 plik_symb.txt -> plik.txt liczba twardych dowiązań do pliku np. d katalog - zwykły plik l dowiązanie symboliczne c urządzenie znakowe b urządzenie blokowe modification time czas zmiany zawartości ls -l access time czas dostępu (np.czytania, zapisu) ls -ul change time czas zmiany informacji o pliku np. zmiany praw dostępu (ale zmiany zawartości też) ls -cl 421421421 rwxrwxrwx u g o pierwsza trójka uprawnienia dla właściciela druga trójka uprawnienia dla grupy trzecia trójka uprawnienia dla wszystkich pozostałych Plik: r - możliwość czytania zawartości pliku w - możliwość zmiany zawartości pliku x - możliwość wykonywania pliku Katalog: r - możliwość listowania zawartości katalogu (ls katalog TAK, ale ls -al NIE) w - możliwość dodawania i usuwania plików (dodatkowo potrzebne x) x - możliwość dostępu do konkretnego pliku w katalogu (zgodnie z uprawnieniami do tego pliku), nie daje możliwości listowania katalogu, przykładowo: jeśli znamy nazwę pliku i mamy uprawnienia do zapisu możemy wykonać np.cat >>katalog123/plik.txt Dowiązania twarde ln plik_zródłowy plik_docelowy dowiązanie twarde jest nierozróżnialne od oryginalnego pliku każda zmiana dokonana w pliku/na pliku jest widoczna we wszystkich dowiązaniach twardych (nie odnoszą się do katalogów) symboliczne ln -s plik_zródłowy plik_docelowy dowiązanie symboliczne zawiera nazwę pliku/katalogu na który wskazuje
Struktura katalogów /bin podstawowe programy takie jak bash czy cat /boot jądro systemu oraz pliki niezbędne do poprawnego uruchomienia systemu /etc pliki konfiguracyjne (np. /etc/passwd, /etc/group) /root katalog domowy administratora systemu /home katalogi domowe użytkowników (najczęściej na oddzielnej partycji) pliki konfiguracyjne użytkownika (np..bashrc.bash_profile.bashhistory) /lib biblioteki współdzielone /lost+found pliki/katalogi odtworzone podczas naprawiania systemu /tmp pliki tymczasowe programów /mnt, /mount, /media proponowany punkt montowania różnych systemów plików np. zewnętrznych urządzeń/nośników /sbin programy administracyjne /proc pliki, w których zapisane są informacje o działającym systemie np. używanych przerwaniach, wykorzystywanej pamięci /var pliki robocze (np. dzienniki systemowe, poczta, kolejki wydruków) /dev pliki reprezentujące urządzenia, np. Urządzenia blokowe odczyt/zapis danych blokami danych (sektorami/kilobajtami, klastrami) : - hda, hdb, sda... dyski IDE - hda1, hda2, sda1, sda2... - partycje na powyższych dyskach - s*, np. sda, sdb,... dyski SCSI, SATA, USB - fd dyskietka (fd0 partycja na dyskietce) Urządzenia znakowe odczyt/zapis danych znak po znaku/bajt po bajcie - /dev/tty0, /dev/tty1 terminale - /dev/pts/0, /dev/pts/1,. /dev/pty* - pseudoterminale - /dev//ttys0, ttys1,... - porty COM - /dev/null - czarna dziura - /dev/random, /dev/urandom generatory liczb losowych - /dev/zero generator zer - /dev/modem, /dev/ppp - modem -... i wiele innych, w zależności np. od dystrybucji Polecenia związane z prawami dostępu: chmod zmiana praw dostępu dla pliku/katalogu chmod [u g o a][+ - =][r w x] plik.txt chmod 744 plik.txt -podanie praw w postaci liczby w systemie ósemkowym, co oznacza rwxr--r-- chmod o+w-x plik.txt powoduje dodanie prawa do zapisu i odebranie prawa do wykonywania do pliku dla pozostałych użytkowników chmod go-x plik.txt powoduje odebranie praw do wykonywania pliku dla grupy i pozostałych
chmod a+r plik.txt powoduje dodanie prawa do odczytu pliku dla wszystkich chmod ug=rwx,o=r plik.txt powoduje ustawienie prawa do odczytu, zapisu i wykonywania pliku dla usera i grupy, zaś tylko do odczytu dla pozostałych SUID - proces ma uprawnienia właściciela pliku (na plikach wykonywalnych) chmod 4764 SGID - proces ma uprawnienia grupy pliku (na plikach wykonywalnych) chmod 2764 lub dziedziczenie grupy właściciela katalogu przez nowo tworzone pliki/katalogi zamiast grupy użytkownika (na katalogach) Sticky - pliki mogą być usuwane/zmieniana nazwa tylko przez właściciela pliku chmod 1764 plik.txt lub katalogu, w którym się znajduje/superusera (zazwyczaj na katalogach) chgrp id_grupy plik zmiana grupy pliku chown id_usera:id_grupy plik zmiana właściciela pliku umask zmienia /wyświetla maskę dla nowych plików/katalogów (w systemie Linux uprawnienia dla tworzonego pliku to rw-rw-rw- (bez maski) i dla tworzonego katalogu - rwxrwxrwx (bez maski)) - przykładowo: polecenie umask 022 spowoduje, że nowo utworzone pliki będą miały uprawnienia -rw-r--r--, zaś nowo utworzone katalogi będą miały uprawnienia drwxr-xr-x Zadania (na koncie student na maszynach wirtualnych lub np. w /tmp na mushelce): zmień uprawnienia dostępu do wybranego pliku, tak by wszyscy mogli czytać i pisać w pliku, ale by wykonywać mogła go tylko grupa i Ty -utwórz katalog, a w nim plik tekstowy - pozostaw katalogowi tylko prawa do odczytu i zapisu (dla usera) - spróbuj przejść do tego katalogu - spróbuj wyświetlić zawartość stworzonego pliku - spróbuj wylistować zawartość katalogu sprawdź jaka jest maska praw dostępu ustaw taką maskę, by nowo tworzony plik miał uprawnienia -rw-r----- utwórz 2 dowiązania twarde do dowolnego pliku tekstowego, wylistuj z opcją -l katalog w którym znajduje się plik i dowiązanie co uległo zmianie? - usuń plik oryginalny co uległo zmianie? - zmień zawartość jednego z utworzonych dowiązań sprawdź, czy drugie też ma zmienioną zawartość - utwórz dowiązanie symboliczne do pliku tekstowego, wyświetl zawartość tego dowiązanie, następnie usuń plik i spróbuj ponownie wyświetlić zawartość dowiązania.
Montowanie systemów plików mount montowanie systemów plików/wyświetlenie zamontowanych mount -t cd9660 -o ro /dev/disk1s0 /mnt/cdrom mount -t cd9660 -o nodev,nosuid,rdonly,noowners /dev/disk1s0 /mnt/cdrom/ umount - odmontowanie systemów plików umount /dev/disk1s0 umount /mnt/cdrom przykład montowania/odmontowania CD na dystrybucjach w salach lab. : (jeśli została automatycznie zamontowana, na potrzeby ćwiczeń odmontowujemy przez umount ) sudo mount -t iso9660 -o ro,nosuid,nodev,uid=1000,gid=1000,iocharset=utf8,mode=0400,dm ode=0500 /dev/sr0 ~/mnt/cdrom sudo umount ~/mnt/cdrom/ (program sudo umożliwia wykonywanie poleceń jako inny użytkownik systemu np. root) Informacje o systemie uname -a wyświetlenie informacji o systemie (o jądrze systemu, komputerze nazwa, typ procesora, nazwa dystrybucji itp.) du wyświetlenie zestawienia informacji na temat miejsca zajętego przez poszczególne katalogi np. du --max-depth=2 -h -x -wyświetlenie w ludzkiej formie (K,M,G) rozmiarów katalogów 2 poziomy w głąb od bieżącego, bez przechodzenia zamontowanych systemów plików du -s ~/Desktop/ ~/Downloads/-wyświetlenie rozmiaru dla poszczególnych argumentów df - wyświetlenie informacji o zamontowanych systemach plików rozmiar, ilość wolnego i zajętego miejsca, punktach montowania (df -h) quota - wyświetla limity na zajmowaną przestrzeń dyskową w systemach plików (quota / quota -v) lsof - lista otwartych plików sprawdź, jakie systemy plików zostały zamontowane zamontuj/odmontuj płytę CD (jeśli została automatycznie zamontowana po włożeniu, najpierw odmontuj ją) sprawdź, które dwa z podkatalogów katalogu domowego zajmują najwięcej miejsca sprawdź, który z dysków mushelki ma największą pojemność
Komunikacja write s00... - wysłanie komunikatu do użytkownika s00... (^D - koniec) mesg [y/n] - włączanie/wyłączanie odbierania komunikatów talk s00... - rozmowa z użytkownikiem s00... wyślij komunikat do wybranego studenta ze swojej grupy dobierając się w pary przetestuj możliwość zablokowania/odblokowania przychodzenia wiadomości przeprowadź rozmowę z wybranym studentem swojej grupy Poszukiwanie programów/plików which lokalizacja programów (locate) find znajdowanie plików/katalogów w systemie find -name "*.txt" -type f wyszuka pliki tekstowe w oraz pod katalogiem bieżącym find public_html -maxdepth 2 -type d wyszuka wszystkie katalogi co najwyżej 2 poziomy pod katalogiem public_html znajdź w swoim katalogu domowym (i podkatalogach) wszystkie katalogi, których nazwa zawiera ciąg znaków SOP (wielkość liter nie ma znaczenia odszukaj w manualu do polecenia find jaka opcja to zapewni) Procesy ps polecenie pokazujące procesy w systemie np. ps ax wszystkie procesy w systemie ps axjf wszystkie procesy w postaci drzewa ps xjf własne procesy w postaci drzewa ps -u username - procesy danego użytkownika kill nr_procesu zabicie procesu (wysłanie sygnału do procesu, domyślnie TERM) kill 24156 kill -9 24156 wysłanie sygnału KILL top/htop informacje o działających procesach killall nazwa - zabicie wszystkich procesów wykonujących program o danej nazwie uruchamianie procesu w tle - & np. sleep 1000 & ^Z wstrzymanie procesu, ^C zakończenie procesu/wysłanie sygnału INT jobs wyświetla zlecenia- job'y bg nr_joba przesłanie zlecenia w tło fg nr_joba przesłanie zlecenia na pierwszy plan
- uruchom konsolę i edytor tekstu - na drugiej konsoli wyświetl wszystkie swoje procesy, odszukaj numer procesu edytora i spróbuj zabić ten proces uruchom htop, posortuj procesy po właścicielu - uruchom polecenie find / -name *.txt - wstrzymaj proces pierwszoplanowy przez ^Z - sprawdź czy istnieją jakieś zlecenia poleceniem jobs - spróbuj przenieść istniejące zlecenie do tła poleceniem bg - spróbuj wprowadzić jakieś polecenie na konsoli np. ls czy ps - spróbuj przenieść istniejące zlecenie na pierwszy plan poleceniem fg - spróbuj ponownie wprowadzić jakieś polecenie na konsoli np. ls czy ps - wstrzymaj proces pierwszoplanowy przez ^Z - sprawdź czy istnieją jakieś zlecenia poleceniem jobs - wznów istniejące zlecenie (na pierwszy plan) - zakończ działanie zlecenia przez ^C - sprawdź czy istnieją jakieś zlecenia poleceniem jobs uruchom kilkukrotnie w tle sleep liczba_sekund, wyświetl wszystkie procesy, zabij wszystkie procesy sleep jednym poleceniem, ponownie wyświetl wszystkie procesy i upewnij się, że wszystkie sleep zostały zabite Praca zdalna ssh s0001@msh.pjwstk.edu.pl telnet host port sftp s0001@msh.pjwstk.edu.pl praca zdalna ze środowiskiem X praca parami na dwóch stanowiskach - zmiana hasła na koncie student (polecenie passwd) - uzyskanie adresu IP komputera 2 (polecenie ifconfig) - komputer 1: ssh -Y student@172.21.223.27 (użyj IP komputera 2) xeyes & xclock & - komputer 2: ps -a spróbuj połączyć się programem telnet do serwera pjwstk.edu.pl na port 80 a następnie wysłać żądanie
GET /~asawicka/index.html HTTP/1.1 host: www.users.pjwstk.edu.pl - jaka usługa uruchomiona jest na porcie 80? w pliku /etc/services sprawdź na którym porcie uruchomiona jest usługa SMTP pobierz z mushelki (przez sftp) dowolny plik tekstowy