|
|
(180 intermediate revisions not shown) |
Line 3: |
Line 3: |
| |} | | |} |
| | | |
| + | == Skrót zadań z Laboratorium 1 == |
| + | === Zadanie 1 i 2 === |
| + | Należy utworzyć nową maszynę wirtualną przy użyciu programu '''VirtualBox''' o nazwie '''Imie Nazwisko''' (3 GB RAM, 10 GB domyślnego rozmiaru dysku) oraz zainstalować system '''Linux Ubuntu 16.04 LTS 64-bit''' (obraz płyty iso znajduje się w: <code>/opt/sk/shared/iso/ubuntu-mate-16.04.1-desktop-amd64.iso</code>). Użytkownik: <code>student</code>, hasło: <code>student</code>. Partycja główna 8 GB, ext4. Partycja wymiany swap - pozostała pamięć. |
| + | |
| + | === Zadanie 3 === |
| + | Powtórzenie komend systemu Linux: |
| + | * polecenia: <code>cd, wget, pwd, mkdir, cp, cat</code> |
| + | * ścieżka względna oraz ścieżka absolutna |
| + | |
| + | === Zadanie 4 === |
| + | Zmienić domyślne ścieżki, z których pobierane są repozytoria oprogramowania w ten sposób, by dodać repozytorium Canonical Partners. |
| + | |
| + | === Zadanie 5 === |
| + | Należy zainstalować programy: |
| + | * serwer ''ssh'' |
| + | * edytor tekstu ''emacs'' |
| + | Należy pamiętać o komendzie <code>sudo apt-get update</code>! |
| + | |
| + | === Zadanie 6 === |
| + | Dodaj użytkownika '''test''' i nadaj mu uprawnienia do wykonywania dowolnych poleceń. |
| + | |
| + | === Zadanie 7 === |
| + | Dodaj użytkownika '''user''', który za pomocą polecenia <code>sudo</code> może tylko zrestartować komputer. |
| | | |
| == Wirtualizacja == | | == Wirtualizacja == |
Line 19: |
Line 42: |
| W przypadku laboratorium z Sieci komputerowych tworzymy maszynę wirtualną po to, by Państwo mieli pełną kontrolę nad systemem operacyjnym. Przykładowo, ewentualne przypadkowe usunięcie plików systemowych w maszynie wirtualnej uniemożliwi pracę tylko systemowi guest, host zaś będzie pracował normalnie. | | W przypadku laboratorium z Sieci komputerowych tworzymy maszynę wirtualną po to, by Państwo mieli pełną kontrolę nad systemem operacyjnym. Przykładowo, ewentualne przypadkowe usunięcie plików systemowych w maszynie wirtualnej uniemożliwi pracę tylko systemowi guest, host zaś będzie pracował normalnie. |
| | | |
- | == Zadanie 1: Tworzenie maszyny wirtualnej == | + | == Zadanie 1: tworzenie maszyny wirtualnej == |
| Istnieje wiele programów (narzędzi wirtualizacji), które umożliwiają wirtualizację systemu operacyjnego. W naszym przypadku wykorzystamy program [https://www.virtualbox.org/ VirtualBox] firmy Oracle. Jest on już zainstalowany na komputerach w laboratorium. | | Istnieje wiele programów (narzędzi wirtualizacji), które umożliwiają wirtualizację systemu operacyjnego. W naszym przypadku wykorzystamy program [https://www.virtualbox.org/ VirtualBox] firmy Oracle. Jest on już zainstalowany na komputerach w laboratorium. |
| | | |
| W celu stworzenia nowej maszyny wirtualnej postępujemy według poniższego schematu: | | W celu stworzenia nowej maszyny wirtualnej postępujemy według poniższego schematu: |
- | # otwieramy aplikację VirtualBox (wybieramy ''Applications'' w górnym menu), | + | # otwieramy aplikację VirtualBox (wybieramy '''Applications''' -> '''Accessories''' -> '''VirtualBox''' w górnym menu), |
| # włączamy kreator tworzenia nowej maszyny wirtualnej ('''Machine''' -> '''New''') | | # włączamy kreator tworzenia nowej maszyny wirtualnej ('''Machine''' -> '''New''') |
- | # '''Name''': Państwa imię i nazwisko (np. ''Jan Kowalski'') | + | # '''Name''': ''ImieNazwisko'' |
| # '''Type''': ''Linux'' | | # '''Type''': ''Linux'' |
- | # '''Version''': ''Debian (64 bit)'' | + | # '''Version''': ''Ubuntu (64 bit)'' |
- | #: <code>'''Uwaga:''' w laboratorium będziemy używać systemu Linux Debian w wersji o 64-bitowej architekturze procesora. Na 64-bitowym hoście można postawić system typu guest o architekturze zarówno 64 jak i 32 bity. Na 32-bitowym hoście możliwe jest postawienie tylko 32-bitowego systemu typu guest.</code> | + | #: <code>'''Uwaga:''' na laboratorium będziemy używać systemu [http://cdimage.ubuntu.com/ubuntu-mate/releases/18.04/release/ Linux Ubuntu 18.04 LTS] w wersji o 64-bitowej architekturze procesora ze śrdowiskiem graficznym MATE. Na 64-bitowym hoście można postawić system typu guest o architekturze zarówno 64 jak i 32 bity. Na 32-bitowym hoście możliwe jest postawienie tylko 32-bitowego systemu typu guest.</code> |
| # '''Memory size''': ''3 GB'' (trzeba pamiętać, że pula pamięci RAM jest wspólna dla obu systemów - jeśli udostępnimy za dużo systemowi goszczącemu, możemy doprowadzić do problemów z działaniem hosta) | | # '''Memory size''': ''3 GB'' (trzeba pamiętać, że pula pamięci RAM jest wspólna dla obu systemów - jeśli udostępnimy za dużo systemowi goszczącemu, możemy doprowadzić do problemów z działaniem hosta) |
| # '''Hard disk''': wybieramy ''Create a virtual hard disk now'' | | # '''Hard disk''': wybieramy ''Create a virtual hard disk now'' |
Line 34: |
Line 57: |
| ## '''Hard disk file type''': ''VDI (VirtualBox Disk Image)'' | | ## '''Hard disk file type''': ''VDI (VirtualBox Disk Image)'' |
| ## '''Storage on physical hard disk''': ''Dynamically allocated'' (rozmiar pliku na dysku hosta będzie się zwiększał w zależności od zajętości miejsca w systemie gościa) | | ## '''Storage on physical hard disk''': ''Dynamically allocated'' (rozmiar pliku na dysku hosta będzie się zwiększał w zależności od zajętości miejsca w systemie gościa) |
- | ## '''File location and size''': w pierwszym polu wpisujemy nazwę dysku dla naszej maszyny (np. ''JanKowalski'', dysk zostanie utworzony w katalogu domowym), natomiast rozmiar ustawiamy trochę większy od domyślnego (np. 10 GB) | + | ## '''File location and size''': w pierwszym polu wpisujemy nazwę dysku dla naszej maszyny (''ImieNazwisko'', dysk zostanie utworzony w katalogu domowym), natomiast rozmiar ustawiamy trochę większy od domyślnego (np. 10 GB) |
| + | |
| + | W tym momencie maszyna wirtualna jest już utworzona. Aby zainstalować system, musimy "włożyć" do wirtualnego napędu maszyny wirtualnej obraz płyty ISO z systemem operacyjnym. W tym celu należy zaznaczyć utworzoną maszynę oraz kliknąć przycisk '''Settings''' (lub kliknąć prawy przycisk myszy i również wybrać '''Settings'''). Następnie przechodzimy do '''Storage''' i tam klikamy na ikonę płyty (podpisaną '''Empty''') znajdującą się pod polem '''Controller: IDE'''. Następnie w menu wybieramy opcję '''Choose Virtual Optical Disk File'''. W okienku wyboru pliku wybieramy plik '''ubuntu-mate-16.04.1-desktop-amd64.iso''' z folderu <code>/opt/sk/shared/iso/</code>. |
| + | |
| + | [[File:Open-cdrom.png|750px]] |
| + | |
| + | W tym momencie mamy stworzoną maszynę wirtualną z włożoną "płytą" do wirtualnego napędu optycznego. Możemy zatem przejść do Zadania 2. |
| + | |
| + | == Zadanie 2: instalacja systemu Linux Ubuntu == |
| + | # Uruchamiamy maszynę wirtualną (zaznaczamy maszynę w oknie VirtualBox'a i klikamy '''Start''' w górnym menu) |
| + | #: '''Uwaga:''' Jeżeli w trakcie instalacji pokaże się ekran jak poniżej, to wciskamy '''prawy Ctrl + F7''' (pojawi się konsola) i następnie '''prawy Ctrl + F1''' (powinien wrócić graficzny instalator) |
| + | #: [[File:UbuntuProblem VB.png|685px]] |
| + | # W oknie '''Welcome''' wybieramy język angielski i klimay '''Install Ubuntu MATE''' |
| + | # W kolejnym oknie '''zaznaczamy''' ściąganie aktualizacji i '''nie zaznaczamy''' ściągania dodatkowego oprogramowania (kodeków MP3, itp.) |
| + | # W kolejnym oknie z menu wyboru dotyczącym sposobu instalacji wybieramy '''Something else''' (sami przeprowadzimy partycjonowanie dysku) |
| + | #: <code>'''Uwaga:''' polecane jest zapoznanie się z hierarchią systemu plików w systemach Linux (można o tym poczytać [http://osworld.pl/systemowa-hierarchia-plikow/ tutaj] lub [http://www.qkiz.pl/blog/ubuntu/newbie/5-dlaczego-ubuntu-podstawy-i-teoria.html?showall=1 tutaj])</code> |
| + | # W kolejnym oknie zaznaczamy dysk <code>/dev/sda</code> oraz klikamy '''New Partition Table''' i następnie w oknie '''Continue''' - pojawi się <code>free space</code>. Tworzymy dwie partycje: |
| + | ## '''Partycja głównego systemu plików''' |
| + | ##* Rozmiar: ''8 GB'' |
| + | ##* Typ: ''primary'' |
| + | ##* Location: ''Beginning of this space'' |
| + | ##* Use as: ''Ext4 journaling file system'' |
| + | ##* Mount point: / |
| + | ##: <code>'''Uwaga:''' W tej konfiguracji wszystkie dane będą na jednej partycji. W praktyce raczej przydziela się partycje na wybrane podkatalogi; przykładowo katalog /home często tworzony jest na oddzielnej partycji.</code> |
| + | ## '''Partycja wymiany (swap)''' |
| + | ##* Rozmiar: ''2 GB'' (pozostały rozmiar dysku) |
| + | ##* Typ: ''logical'' |
| + | ##* Location: ''Beginning of this space'' |
| + | ##* Use as: ''swap area'' |
| + | # Klikamy '''Install now''' i '''Continue''' |
| + | # W opcji wyboru lokacji zostawiamy ''Warsaw'' i klikamy '''Continue''' |
| + | # W ekranie wyboru klawiatury ustawiamy ''Polish'' - ''Polish'' i klikamy '''Continue''' |
| + | # W ekranie '''Who are you?''' wpisujemy: |
| + | #* '''Your name:''' ''student'' |
| + | #* '''Your computer's name:''' ''student-XX'', gdzie ''XX'' to numer komputera |
| + | #* '''Pick a userame:''' ''student'' |
| + | #* '''Choose a password:''' ''student'' |
| + | #* Zaznaczamy opcję, by wpisywać hasło przy logowaniu |
| + | # Na koniec instalacji wyskoczy okienko '''Installaction complete''' - klikamy '''Restart Now''' |
| + | # Pojawi się ekran proszący o wyjęcie płyty - sprawdzamy, czy obraz iso jest w wirtualnym napędzie ('''Settings''' -> '''Storage'''), jeśli tak - usuwamy i następnie restartujemy system |
| + | # Po restarcie pojawi się okno logowania - logujemy się na użytkownika ''student'' i w zasadzie mamy działający system |
| + | # Możemy zauważyć, że okienko maszyny wirtualnej ma dość niską rozdzielczość i nie można tego rozmiaru zmienić. W tym celu istalujemy tzw. VirtualBox Guest Additions: |
| + | #* w terminalu ('''Applications''' -> '''System Tools''' -> '''MATE Terminal''') wpisujemy komendę: <p><pre>sudo apt-get install build-essential module-assistant</pre></p> |
| + | #* i następnie: <p><pre>sudo m-a prepare</pre></p> |
| + | #* w menu uruchomionej maszyny wirtualnej wybieramy '''Devices''' -> '''Install Guest Additions CD image''' |
| + | #* procedura ta powoduje najpierw pobranie z internetu a następnie włożenie do wirtualnego napędu optycznego "płyty" z odpowiednim oprogramowaniem - napęd z płytą pojawi się na pulpcie, w wyskakujących okienkach i terminalu klikamy tak, by się nam one zainstalowały (jeśli nie wyskoczą okienka, uruchamiamy płytę poprzez skrót na pulpicie) |
| + | #* po pomyślnej instalacji w terminalu wpisujemy: <p><pre>sudo apt-get install virtualbox-guest-dkms</pre></p> |
| + | #* na koniec restartujemy system |
| + | |
| + | == Ustawienia sieci maszyny wirtualnej == |
| + | Ważnym elementem konfiguracji maszyny wirtualnej jest jej podłączenie do sieci ('''Settings''' -> '''Network''' -> '''Adapter 1''' -> '''Attached to'''). Może ona działać w jednym z kilku możliwych trybów: |
| + | |
| + | * '''Not attached''' - w tym trybie system operacyjny zainstalowany na maszynie wirtualnej widzi wirtualną kartę sieciową, ale nie ma połączenia na zewnątrz - tak jakby kabel Ethernet nie był podłączony do komputera. Zmiana statusu w trakcie pracy systemu na ten tryb odpowiada "mechanicznemu" wyjęciu kabla z wtyczki. |
| + | |
| + | * '''NAT Network''' - ''Network Address Translation'', maszyna funkcjonuje w wirtualnej podsieci. Jest to analogiczna sytuacja, gdy ustawiamy router, który tworzy własną sieć lokalną i do niego podłączamy komputer (w tym przypadku takim routerem jest ''host''). Adres IP maszyny wirtualnej nie jest widoczny na zewnątrz. |
| + | |
| + | * '''Bridged networking''' - maszyna wirtualna jest podpięta bezpośrednio do interfejsu sieciowego hosta i będzie widoczna w sieci jako kolejne urządzenie podłączone bezpośrednio do niej. Nasz system dostanie adres IP z puli sieci oraz będzie widoczny dla wszystkich innych komputerów w tej sieci tak jakby to było fizyczne urządzenie. |
| + | |
| + | * '''Generic networking''' - bardzo rzadko uzywany tryb, w którym użytkownik sam wybiera sterownik karty sieciowej (nie bedziemy tego trybu używać) |
| + | |
| + | == Zadanie 3: powtórzenie podstawowych komend systemu Linux == |
| + | Na zajęciach z Sieci komputerowych będziemy pracować w systemie Linux z dużym wykorzystaniem terminala i powłoki <code>bash</code> i stopniowo poznawać bardziej zaawansowane komendy. |
| + | |
| + | Pierwszym zadaniem jest przypomnienie sobie podstawowych komend, znanych jeszcze z PTI: |
| + | # Proszę pobrać tekst "Romeo i Julii" po angielsku: <p><pre>wget http://db.fizyka.pw.edu.pl/sk-2015/_downloads/pg1112.txt</pre></p> |
| + | # Sprawdzić, w którym katalogu się znajdujemy (<code>pwd</code>) |
| + | # Stworzyć w katalogu <code>/tmp</code> katalogi <code>foo</code> i <code>bar</code> (do tworzenia katalogów polecenie <code>mkdir</code>, do przejścia do katalogu polecenie <code>cd</code>) |
| + | # Skopiować do katalogu <code>foo</code> plik z tekstem dramatu (<code>cp</code>) |
| + | # Przejść do katalogu <code>bar</code> i wyświetlić zawartość dramatu za pomocą ''ścieżki absolutnej'' (<code>cat</code>) |
| + | # Skopiować dramat z katalogu <code>foo</code> do <code>bar</code> za pomocą ''ścieżki względnej'' |
| + | |
| + | == Podstawy administracji systemem Linux - instalacja oprogramowania == |
| + | === Użytkownik administracyjny i komenda sudo === |
| + | W systemie Linux istnieje bardzo mocno wymuszany podział na administratora komputera oraz zwykłego użytkownika (w nowszych wersjach systemu Windows został wprowadzony analogiczny mechanizm). Do wykonywania czynności administracyjnych stworzono użytkownika o nazwie '''root'''. W nowszych systemach (np. naszym Ubuntu) konto administracyjne jest domyślnie wyłączone (nie da się zalogować na takiego użytkownika), a jego uprawnienia nabywa zwykły użytkownik tymczasowo, z użyciem komendy <code>sudo</code>. |
| + | |
| + | Komenda sudo pozwala aktualnemu użytkownikowi (o ile spełnia dodatkowo pewne wymagania) wykonywać zadania administracyjne. |
| + | |
| + | Przykłady użycia:<br/> |
| + | sudo adduser ola # wykona polecenie adduser ola z uprawnieniami administratora<br/> |
| + | sudo -i # zalogouje sie do konsoli administratora<br/> |
| + | sudo -u ola -i # uruchomi konosole z zalogowanym uzytkownikiem ola |
| + | |
| + | === Instalowanie oprogramowania === |
| + | Wszystkie sytemy operacyjne Linux przychodzą z (mniej lub bardziej bogatym) zestawem oprogramowania oraz narzędziami do automatycznej instalacji programów. Instalowanie programów w systemach Linux przypomina bardziej znane ze smartfonów aplikacje typu ''Google Play'' czy ''Apple Store'', które pozwalają na automatyczną instalację zweryfikowanych aplikacji. W systemach Linux tego typu "sklepy" z (darmowym) nazywamy najczęściej '''repozytoriami''' a programy (jak i dodatkowe biblioteki) '''pakietami''' lub '''paczkami'''. Takie podejście jest znacznie bezpieczniejsze i pewniejsze niż uruchamianie losowych plików typu ''setup.exe'' ściągniętych z podejrzanych stron. |
| + | |
| + | <code>'''Uwaga:''' Oczywiście w systemie Linux istnieje możliwość ściągnięcia i zainstalowania programu, który nie istnieje w repozytoriach. Z reguły ściągamy wtedy archiwum ze skompilowany programem, po czym uruchamiamy dołaczony do niego skrypt instalacyjny.</code> |
| + | |
| + | W Ubuntu (i innych dystrybucjach pochodzących od systemu Debian) do zarządzania pakietami/paczkami służą narzędzia '''dpkg''' oraz '''apt'''. |
| + | |
| + | <code>'''Uwaga:''' Niektóre dystrybucje Linuxa (np. nasze Ubuntu) posiadają całkiem użyteczne graficzne nakładki na system instalacji pakietów z repozytoriów (np. program '''Synaptic'''). Taki graficzny program to już w zasadzie to samo co “sklepy” w smartfonach.</code> |
| + | |
| + | === Typy repozytoriów w Ubuntu === |
| + | Żródła z których pobieramy oprogramowanie są opisane w pliku <code>/etc/apt/sources.list</code>. |
| + | |
| + | Domyślne repozytorium Ubuntu podzielone jest na 4 części: |
| + | * '''Main''' – aplikacje o otwartym kodzie źródłowym szczególnie ważne i potrzebne, wspierane przez developerów Ubuntu |
| + | * '''Restricted''' – programy dodatkowe, wspierane przez Ubuntu, ale nieoparte na wolnej licencji |
| + | * '''Universe''' – niewspierane oprogramowanie Open Source |
| + | * '''Multiverse''' – niewspierane i niewolne oprogramowanie |
| + | |
| + | Do tego pliku można dopisywać kolejne repozytoria będące poza kontrolą dostawcy. |
| + | |
| + | === Przeszukiwanie pakietów === |
| + | Po zmianie konfiguracji repozytoriów (tj. modyfikacji pliku <code>/etc/apt/sources.list</code>) nalezy pobrać informacje o pakietach z repozytorium. Służy do tego komenda |
| + | |
| + | sudo apt-get update |
| + | |
| + | Komenda <code>sudo apt-get update</code> pobiera również informacje o nowych pakietach, które wydali twórcy Ubuntu i dobrze ją wykonać przed każdą czynnością dotyczącą pakietów. |
| + | |
| + | Do aktualizacji pakietów służy komenda: |
| + | |
| + | sudo apt-get upgrade |
| + | lub |
| + | sudo apt-get dist-upgrade |
| + | (druga komenda nie tylko aktualizuje zainstalowane pakiety, ale również usuwa pakiety już niepotrzebne i usuwa niepotrzebne zależności między pakietami) |
| + | |
| + | Do przeszukiwania repozytorium pakietów służy program <code>apt-cache</code>. By wyszukać pakiety, które mają w nazwie lub opisie ciąg znaków ''foo'', należy napisać polecenie: |
| + | |
| + | apt-cache search foo |
| + | |
| + | By wyszukiwać tylko w nazwie pakietu należy wpisać: |
| + | |
| + | apt-cache search -n foo |
| + | |
| + | == Zadanie 4: dodawanie nowych repozytoriów == |
| + | Należy zmodyfikować plik <code>/etc/apt/sources.list</code> w ten sposób, aby umożliwić korzystanie z oprogramowania Canonical Partners. W tym celu należy odkomentować linijkę: |
| + | |
| + | deb http://archive.canonical.com/ubuntu xenial partner |
| + | |
| + | Należy pamiętać, że po każdej modyfikacji repozytoriów należy wykonać pownonie komendę <code>apt-get update</code>! |
| + | |
| + | == Zadanie 5: instalacja pakietów == |
| + | Odnaleźć nazwę pakietu który dostarcza serwer ''ssh'', w tym celu proszę przeszukać paczki które w nazwie mają ''ssh'' a następnie za pomocą grep znaleźć paczki które w nazwie mają server: |
| + | apt-cache search ssh | grep server |
| + | |
| + | Za pomocą <code>apt-get install</code> zainstalować program '''emacs''' oraz '''serwer ssh''' (<code>openssh-server</code>). |
| + | |
| + | == Podstawy administracji systemem Linux - użytkownicy == |
| + | === Dodawanie i usuwanie użytkowników === |
| + | Do dodawania użytkownikow służy komenda <code>adduser</code>, a do ich kasowania <code>deluser</code>. |
| + | <!-- |
| + | Przy dodawaniu użytkowników można: |
| + | * Ustawić domyślną powłokę dla użytkownika (na inną niż ''bash'', np. <code>/bin/sh</code>, albo <code>/bin/false</code>), |
| + | * Ustawić położenie katalogu domowego, |
| + | * Wyłączyć możliwość logowania hasłem, |
| + | * Wyłączyć możliwość logowania w ogóle.--> |
| + | |
| + | Wszystkie informacje o użytkowniku znajdują się w pliku <code>/etc/passwd</code>. |
| + | |
| + | === Grupy użytkowników === |
| + | Użytkownik może należy do jednej bądź wielu '''grup'''. Grupy ułatwiają kontrolę wielu użytkowników (łatwo przypisywać np. użytkownikom prawa dostępu poprzez przypisanie ich do grupy). |
| + | |
| + | By dodać użytkownika do grupy można wykonać: |
| + | |
| + | sudo adduser username group |
| + | |
| + | === Zarządzanie uprawnieniami <code>sudo</code> === |
| + | Polecenie <code>sudo</code> ma większe możliwości, niż tylko nadanie uprawnień do wykonania dowolnej komendy. |
| + | |
| + | Pozwala ono np. na: |
| + | * umożliwienie użytkownikowi wykonania tylko kilku poleceń z uprawnieniami ''root'', |
| + | * umożliwienie wykonania niektórych poleceń bez podania hasła. |
| + | |
| + | Konfiguracja polecenia <code>sudo</code> znajduje się w pliku <code>/etc/sudoers</code>, jednak plik ten nie może być tak po prostu edytowany za pomocą zwykłego edytora tekstu - jeśli jego składnia będzie niepoprawna, to kolejne polecenia sudo nie będą mogły się wykonać! |
| + | |
| + | Do edycji pliku <code>/etc/sudoers</code> służy '''tylko i wyłącznie''' polecenie <code>visudo</code>. |
| + | |
| + | <code>'''Uwaga:''' Nie jest łatwo bezpiecznie skonfigurować sudo, przykładowo jeśli damy komuś dostęp do używania edytora vim z uprawnieniami root to, zasadniczo, będzie on mógł wykonywać dowolne operacje w systemie (ponieważ edytor vim sam z siebie pozwala na uruchomienie dowolnej komendy). Przykładowo: komenda '''sudo rm -rf /''' usunie nam cały system operacyjny i wszystkie pliki na dysku!</code> |
| + | |
| + | == Zadanie 6: dodawanie uprawnień <code>sudo</code> użytkownikowi == |
| + | Domyślna konfiguracja <code>sudo</code>, pozwala na wykonanie polecenia z uprawnieniami administratora każdemu użytkownikowi w grupie <code>sudo</code>. |
| + | |
| + | Dodaj w systemie użytkownika '''test''' i nadaj mu uprawnienia do wykonywania dowolnych poleceń. |
| + | |
| + | == Zadanie 7: dodawanie wybranych uprawnień <code>sudo</code> == |
| + | Dodaj w systemie nowego użytkownika '''user''', który za pomocą polecenia <code>sudo</code> może tylko zrestartować komputer (czyli wykonać komendę <code>/sbin/reboot</code>). |
| + | |
| | | |
- | W tym momencie maszyna wirtualna jest już utworzona. Aby zainstalować system, musimy "włożyć" do wirtualnego napędu maszyny wirtualnej obraz płyty ISO z systemem operacyjnym. W tym celu należy zaznaczyć utworzoną maszynę oraz kliknąć przycisk '''Settings''' (lub kliknąć prawy przycisk myszy i również wybrać '''Settings'''). Następnie przechodzimy do '''Storage''' i tam klikamy na ikonę płyty (podpisaną '''Empty''') znajdującą się pod polem '''Controller: IDE'''.
| + | == Zapasowa maszyna wirtualna == |
| + | Zapasowa maszyna wirtualna jest dostępna tutaj: [http://if.pw.edu.pl/~lgraczyk/SK2022/VM/SieciKomputerowe21.vdi link]. |
Zmienić domyślne ścieżki, z których pobierane są repozytoria oprogramowania w ten sposób, by dodać repozytorium Canonical Partners.
Wirtualizacja - jest jednym ze sposobów wydajniejszego wykorzystania sprzętu komputerowego; w naszym przypadku zajmiemy się wirtualizacją systemu operacyjnego, czyli uruchomieniem dwóch systemów operacyjnych na jednym komputerze jednocześnie.
W przypadku laboratorium z Sieci komputerowych tworzymy maszynę wirtualną po to, by Państwo mieli pełną kontrolę nad systemem operacyjnym. Przykładowo, ewentualne przypadkowe usunięcie plików systemowych w maszynie wirtualnej uniemożliwi pracę tylko systemowi guest, host zaś będzie pracował normalnie.
Istnieje wiele programów (narzędzi wirtualizacji), które umożliwiają wirtualizację systemu operacyjnego. W naszym przypadku wykorzystamy program VirtualBox firmy Oracle. Jest on już zainstalowany na komputerach w laboratorium.
W celu stworzenia nowej maszyny wirtualnej postępujemy według poniższego schematu:
W tym momencie maszyna wirtualna jest już utworzona. Aby zainstalować system, musimy "włożyć" do wirtualnego napędu maszyny wirtualnej obraz płyty ISO z systemem operacyjnym. W tym celu należy zaznaczyć utworzoną maszynę oraz kliknąć przycisk Settings (lub kliknąć prawy przycisk myszy i również wybrać Settings). Następnie przechodzimy do Storage i tam klikamy na ikonę płyty (podpisaną Empty) znajdującą się pod polem Controller: IDE. Następnie w menu wybieramy opcję Choose Virtual Optical Disk File. W okienku wyboru pliku wybieramy plik ubuntu-mate-16.04.1-desktop-amd64.iso z folderu /opt/sk/shared/iso/
.
W tym momencie mamy stworzoną maszynę wirtualną z włożoną "płytą" do wirtualnego napędu optycznego. Możemy zatem przejść do Zadania 2.
Na zajęciach z Sieci komputerowych będziemy pracować w systemie Linux z dużym wykorzystaniem terminala i powłoki bash
i stopniowo poznawać bardziej zaawansowane komendy.
Pierwszym zadaniem jest przypomnienie sobie podstawowych komend, znanych jeszcze z PTI:
W systemie Linux istnieje bardzo mocno wymuszany podział na administratora komputera oraz zwykłego użytkownika (w nowszych wersjach systemu Windows został wprowadzony analogiczny mechanizm). Do wykonywania czynności administracyjnych stworzono użytkownika o nazwie root. W nowszych systemach (np. naszym Ubuntu) konto administracyjne jest domyślnie wyłączone (nie da się zalogować na takiego użytkownika), a jego uprawnienia nabywa zwykły użytkownik tymczasowo, z użyciem komendy sudo
.
Komenda sudo pozwala aktualnemu użytkownikowi (o ile spełnia dodatkowo pewne wymagania) wykonywać zadania administracyjne.
Wszystkie sytemy operacyjne Linux przychodzą z (mniej lub bardziej bogatym) zestawem oprogramowania oraz narzędziami do automatycznej instalacji programów. Instalowanie programów w systemach Linux przypomina bardziej znane ze smartfonów aplikacje typu Google Play czy Apple Store, które pozwalają na automatyczną instalację zweryfikowanych aplikacji. W systemach Linux tego typu "sklepy" z (darmowym) nazywamy najczęściej repozytoriami a programy (jak i dodatkowe biblioteki) pakietami lub paczkami. Takie podejście jest znacznie bezpieczniejsze i pewniejsze niż uruchamianie losowych plików typu setup.exe ściągniętych z podejrzanych stron.
W Ubuntu (i innych dystrybucjach pochodzących od systemu Debian) do zarządzania pakietami/paczkami służą narzędzia dpkg oraz apt.
Do tego pliku można dopisywać kolejne repozytoria będące poza kontrolą dostawcy.
Po zmianie konfiguracji repozytoriów (tj. modyfikacji pliku /etc/apt/sources.list
) nalezy pobrać informacje o pakietach z repozytorium. Służy do tego komenda
(druga komenda nie tylko aktualizuje zainstalowane pakiety, ale również usuwa pakiety już niepotrzebne i usuwa niepotrzebne zależności między pakietami)
Należy pamiętać, że po każdej modyfikacji repozytoriów należy wykonać pownonie komendę apt-get update
!
Pozwala ono np. na: