Spis treści
Do one thing and do it well - Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface.
Everything is file - Ease of use and security is offered by treating hardware as a file.
Small is beautiful.
Store data and configuration in flat text files - Text file is a universal interface. Easy to create, backup and move to another system.
Use shell scripts to increase leverage and portability - Use shell script to automate common tasks across various UNIX / Linux installations.
Chain programs together to complete complex task - Use shell pipes and filters to chain small utilities that perform one task at time.
Choose portability over efficiency.
Keep it Simple, Stupid (KISS).
Wirtualizacja — pozwala uruchomić jednocześnie wiele systemów operacyjnych na tej samej maszynie
Kiedy wirtualizacja jest przydatna:
Włączenie kreatora tworzenia maszyn wirtualnych (Machine -> New)
Nazwa: Wasze imie i nazwisko (jan-kowalski)
Operating System Linux, Version Debian 64bit
Note
Konfigurujemy VirtualBox’a tak, że systemem gościem będzie GNU/Linux Debian w wersji o 64 bitowej architekturze procesora (chodzi tu o architekturę maszyny gościa, można na 64-bitowym hoście ustawić 32-bitową maszynę wirtualną — na odwrót nie jest to możliwe).
Memory: ustaw 1GB. Pozwala to określić ile z pamięci RAM systemu host jest widoczne dla maszyny wirtualnej. Ustawienie to można łatwo zmienić.
Stworzenie wirtualnego dysku: Create New
Note
Dyski maszyny wirtualej widzoczne są jako pliki na maszynie matce. Teraz konfigurujemy taki dysk.
Rodzaj dysku: VDI. Jest to natywny format dysków VirtualBoksa.
Na następnej karcie: Dynamically allocated: w tym formacie rozmiar pliku z dyskiem rośnie w trakcie pracy.
Położenie. Bez zmian. Domyślnie dysk zapisze się w katalogu ~
Size: 8GB.
Note
Dla praktycznych zastosowań radzę wybrać większy dysk. Zmiana rozmiaru dysku po utworzeniu jest nietrywialna.
Po stworzeniu maszyny wirtualnej, należy umieścić obraz płyty w wirtualnym napędzie CD. By to zrobić należy wybrać Settings, dalej Storage kliknąć na ikonce dysku CD, wybrać: “Choose Virtual Optical Disk File”, następnie wybrać obraz z pliku /opt/sk/shared/iso/*iso (Obraz płyty instalacyjnej debiana 8.1).
Wybór płyty.
Language: English.
Country: Poland
Locale: en_US.utf8
Hostname: debian
Domain: dowolne
Wybór hasła root. Pozostawiamy puste
Note
Konto roota jest kontem administracyjnym zawierającym wszystkie uprawnienia. Dobrą praktyką bezpieczeństwa jest uniemożliwienie logowania na konto roota.
Użytkownik i hasło. Proszę wybrać swoje imie i nazwisko i hasło: student.
Partycjonowanie dysków.
Note
Polecam zapoznanie się hierarchią systemu plików w systemie UNIX: System plików w Linuksie
- Wybieramy opcję Manual.
- Tworzymy dwie partycje:
Partycję na główny system plików
Parametry:
- Rozmiar 7GB
- Typ primary
- Format ext4
- Mount point /
Note
W tej konfiguracji wszystkie dane będą na jednej partycji.
W produkcyjnych środowiskach raczej przydziela się partycje na wybrane podkatalogi, na przykład /home jest na oddzielnej partycji.
Partycję na plik wymiany
- Rozmair (reszta wolnej przestrzeni)
- Typ: Logical
- Use as: swap
Note
Obszar wymiany jest obszarem na dysku, do którego system operacyjnu może kopiować zawartość pamięci RAM, gdy pamięci tej zbyt mało.
W Windowsie plik wymiany jest plikiem na jednej z partycji, w UNIXach jest on z reguły oddzielną partycją.
Note
Uwaga: Jeśli instalujecie Debiana w domu, możecie spokojnie użyć opcji “Guided”.
Scan another CD: No
Use network mirror: yes, Poland, ftp.pl.debian.org
Popularity contest: No
Software Selection:
Install GRUB to master boot record: wybieramy yes. Następnie Wybieracie /dev/sda....
Note
Grub (Grand Unified Boot Loader) zarządza ładowaniem systemu operacyjnego (i pozwala wybrać odpowiedni jeśli jest kikla systemów do zastosowania).
Do maszyny wirtualnej można podpiąć 4 karty sieciowe. Każda z tych kart może działać w takich trybach:
Warning
Opisy te mogą się wydać enigmatyczne, ale przy odrobinie szczęścia, po kolejnych wykładach będą jasne.
NAT
Maszyna dziecko funkcjonuje w wirtualnej podsieci, w której rolę bramy pełni maszyna matka. Można skonfigurować przekierowania portów, tak, by połączenie do maszyny matki na port X było przekierowane na daną maszynę wirtualną.
Jest to najprostsze rozwiązanie.
Host-only-network
Dana karta sieciowa jest wpięta w wirtualną sieć na komputerze matce, ma w tej sieci dostęp do:
- Wszystkich uruchomionych maszyn wirtualnych
- Maszyny matki
Dane z tej sieci nie wchodzą na zewnątrz maszyny matki.
Warto skorzystać z takiej sieci jeśli:
- Dane, które wynieniają między sobą maszyny wirtualne są poufne.
- Jeśli chcemy mieć pełną kontrolę nad adresami IP maszyn w wirtualnej sieci.
Bridged
Dana karta jest podpięta do wybranego interfejsu sieciowego na maszynie matce (np. połączenie kablowe eth0, połączenie WiFi wlan0).
Maszyna będzie funkcjonować jako kolejny host działający bezpośrednio w danej sieci. Gdybyśmy wybrali tą opcję, nasza maszyna byłaby widoczna w sieci Wydziału Fizyki.
Warto skorzystać z tej sieci jeśli:
- Nasza maszyna wirtualna ma być widoczna w sieci maszyny matki (jest na przykład serwerem).
Proszę pobrać tekst Romeo i Julii po angielsku:
wget http://db.fizyka.pw.edu.pl/sk-2015/_downloads/pg1112.txt
Sprawdzić, w którym jesteśmy katalogu (pwd).
Stworzyć w katalogu /tmp, katalogi foo i bar (polecenie mkdir).
Skopiować do katalogu foo plik z tekstem dramatu.
Przejść do katalogu bar i wyświetlić zawartość dramatu za pomocą ścieżki absolutnej.
Skopiować dramat z katalogu foo do bar za pomocą ścieżki względnej.
W GNU/Linuksie istnieje bardzo mocno wymuszany podział na administratora komputera, oraz zwykłego użytkownika (w nowszych wersjach systemu Windows jest analogicznie).
Do wykonywania czynności administracyjnych stworzono użytkownika o nazwie root, o specjalnym id równym 0.
Na nowszych systemach konto administracyjne jest domyślnie wyłączone, a jego uprawnienia zdobywa się tymczasowo, z użyciem komendy sudo.
Komenda sudo pozwala aktualnemu użytkownikowi (o ile spełnia dodatkowo pewne wymagania) wykonywać zadania administracyjne.
Przykłady:
sudo adduser jbzdak # Wykona polecenie adduser jbzdak z uprawnieniami administratora
sudo -i # Zalogouje się do konsoli administratora
sudo -u user -i # Uruchomi konosolę z zalogowanym użytkownikiem user
Wszystkie sytemy operacyjne Linux przychodzą z (mniej lub bardziej bogatym) zestawem oprogramowania, oraz narzędziami do automatycznej instalacji wspomnianego oprogramowania.
Ma to wiele zalet:
System paczek debiana oparty jest o programy dpkg oraz apt.
Note
Niektóre dystrybucje (np. Ubuntu) posiadają całkiem użyteczne graficzne nakładki na system pakietów, nakładki te przypominają “Sklepy” znane z polularnych marek smartfonów.
Debian posiada też inne narzędzia do pracy z Pakietami, np. bardzo dobry aptitude (tekstowy lub graficzny) oraz graficzny synaptic, jednak w “pierwszym kontakcie” mogą obe być mniej intuicyjne w użyciu
Żródła z których pobieramy oprogramowanie są opisane w pliku: /etc/apt/sources.list (oraz w plikach w: /etc/apt/sources.list.d).
Można dopisywać do tych plików repozytoria będące poza kontrolą dostawcy Waszej dystrybucji np. by zainstalować najnowszą wersję przeglądarki.
Aktualnie Wasze maszyny wirtualne mogą być skonfigurowane do pobierania pakietów z płyty CD.
Konfigiracja managera pakietów powinna wyglądać tak:
deb http://ftp.pl.debian.org/debian/ jessie main non-free contrib
deb http://security.debian.org/ jessie/updates main contrib non-free
deb http://ftp.pl.debian.org/debian/ jessie-updates main non-free contrib
Instalujemy pakiety z aktuanej stabilnej wersji Debiana (jessie).
Repozytorium debiana podzielone jest na sekcje:
Note
Na komputer “domowy” możecie śmiało użyć tej konfigurajci, na serwer warto się zastanowić czego potrzebujecie.
Za pomocą sudo oraz Waszego ulubionego edytora tekstu ustawcie zawartość pliku /etc/apt/sources.list na:
deb http://ftp.pl.debian.org/debian/ jessie main non-free contrib
deb http://security.debian.org/ jessie/updates main contrib non-free
deb http://ftp.pl.debian.org/debian/ jessie-updates main non-free contrib
Po zmianie konfiguracji repozytorióœ nalezy pobrać informacje o pakietów z repozytorium:
sudo apt-get update
Komenda sudo apt-get update pobiera również informacje o nowych pakietach które wydali twórcy Debiana i dobrze ją wykonać przed każdą czynnością dotyczącą pakietów.
Do przeszukiwania repozytorium pakietów służy program apt-cache.
By wyszukać pakietów które mają w nazwie lub opisie ciąg znaków foo należy napisać polecenie:
apt-cache search foo
By wyszukać tylko w nazwie pakietu należy napisać:
apt-cache search -n foo
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.
Za pomocą apt-get install zainstalować program emacs oraz serwer ssh (openssh-server).
Do dodawania użytkownikow służy komenda adduser, a do ich kasowania deluser.
Przy dodawaniu użytkowników można:
Note
Każda usługa działająca w systemie Linux musi działać jako jakiś użytkownik, najczęściej nie powinien to być użytkownik ``root``. Dobrym zwyczajem jest stworzenie oddzielnego użytkownika na każdą z usług, które uruchamiacie na swoim systemie.
Wszystkie informacje o użytkowniku są w /etc/passwd, skrót hasła jest w pliku /etc/shadow.
Użytkownik może należy do jednej bądź wielu grup. Grupy ułatwiają kontrolę wielu użytkowników.
By dodać użytkownika do grupy można wykonać:
adduser username group
Sudo pozwala na trochę lepszą kontrolę, niż tylko nadanie uprawnień do wykonania dowolnej komendy.
Pozwala na:
Konfiguracja polecenia sudo jest w pliku /etc/sudoers, jednak plik ten nie może być po prostu edytowany — jeśli jego składnia będzie niepoprawna, to kolejne polecenia sudo nie będą mogły się wykonać.
Do edycji pliku /etc/sudoers służy polecenie visudo.
Note
Nie jest łatwo bezpiecznie skonfigurować sudo, przykładowo jeśli dacie komuś dostęp do wykonywania edytora vim z uprawnieniami root to, zasadniczo, może on wykonywać dowolne operacje na systemie (ponieważ edytor vim pozwala na uruchomienie dowolnej komendy.