===== Podstawy administrowania 1: użytkownicy i system plików =====
==== Przygotuj się do laboratorium ====
* Przeczytać strony **''man''** dla plików i poleceń z części [[#Wiedza|Wiedza]].
* Uzyskaj dostęp do maszyny wirtualnej na której będziesz realizować zadania. [[instr_virtualbox|Szczegóły/wymagania znajdują się tutaj]].
==== Wiedza ====
=== 1. Konta użytkowników ===
Większość istotnych informacji o użytkownikach jest przechowywana w poniższych plikach:
* ''/etc/passwd'' - podstawowe informacje o kontach użytkowników (ew. zaszyfrowane hasło),
* ''/etc/group'' - podstawowe informacje o grupach użytkowników,
* ''/etc/shadow'' - rozszerzone informacje o kontach użytkowników (np. daty ważności) i zaszyfrowane hasło (w systemie shadow),
* ''/etc/gshadow'' - rozszerzone informacje o grupach użytkowników (w systemie //shadow//).
Narzędzia do modyfikowania kont. Podstawowe metody zakładania kont użytkowników:
* z wykorzystaniem **adduser**,
* z wykorzystaniem **useradd**,
* przy pomocy edytora.
Informacje o koncie można uzyskać przy pomocy poleceń takich jak **id**, **groups**.
Raz założone konto można modyfikować na wiele sposobów:
* polecenie **chfn** zmienia informacje GECOS (imię, nazwisko, itp.) o użytkowniku,
* polecenie **chsh** zmienia powłokę,
* narzędzie **usermod** modyfikuje dowolne parametry konta,
* narzędzie **groupmod** j.w. dla grupy,
* instrukcja **passwd** zakłada nowe hasło, a w systemie //shadow passwords// zmienia daty ważności konta.
Usuwanie kont i grup:
* konto użytkownika można usunąć przy pomocy polecenia **userdel**,
* powyższe polecenie z opcją -r usuwa katalog domowy użytkownika,
* polecenie **groupdel** usuwa grupy użytkowników,
* przy pomocy polecenia instrukcji **find** można odnaleźć i usunąć pliki których właścicielem jest podany użytkownik lub grupa.
Istnieje kilka metod blokowania dostępu do konta:
* poleceniem **passwd** z opcją -l,
* przez ręczną modyfikację hasła w pliku //passwd/shadow//,
* poprzez zmianę powłoki użytkownika na program nie dopuszczający logowania.
Trzeba pamiętać, iż powyższe metody nie są skuteczne w przypadku sieciowych metod autoryzacji nie korzystających z haseł, np. rhosts.
Ręczne modyfikowanie użytkowników i grup: można to robić poprzez bezpośrednie zmiany w.w. plików w dowolnym edytorze, ale najlepiej skorzystać z **vipw** i **vigr**.
=== 2. Zarządzanie systemami plików ===
Zarządzanie systemami plików to między innym:
* zakładanie partycji na dyskach fizycznych,
* tworzenie systemów plików,
* montowanie (podłączanie),
* odmontowywanie (odłączanie),
* sprawdzanie,
* utrzymywanie wolnego miejsca.
Na istniejącym urządzeniu specjalnym (np. dysku) można założyć nowy system plików przy pomocy polecenia **mkfs**.
Użycie:mkfs -t typ [-c] urzadzenie
gdzie:
* ''-t typ'' - typ systemu plików, np. ext2,
* ''-c'' - sprawdzenie, czy na urządzeniu nie ma uszkodzonych bloków (ang. bad blocks) - parametr opcjonalny,
* ''urzadzenie'' - urządzenie (np. partycja dysku) na której zakładany jest system plików.
Montowanie:
* aby skorzystać z systemu plików, trzeba go zamontować,
* nowy system jest dostępny w podanym katalogu,
* dostęp do systemu plików może być regulowany przy pomocy opcji polecenia mount,
* w ogólnym przypadku, tylko administrator może montować systemy plików,
* polecenie wywołane bez opcji wyświetla podmontowane systemy plików.
Składnia **mount**: mount -t typ urządzenie punkt_montowania -o opcje
* ''typ'' - typ systemu plików,
* ''urzadzenie'' - urządzenie na którym znajduje się system plików,
* ''punkt_montowania'' - katalog w którym udostępniany jest nowy system plików,
* ''-o opcje'' - różne opcje dodatkowe, np. ''ro,rw,remount''; zależą również od typu systemu plików.
Odmontowywanie:
* do odmontowywania służy polecenie **umount**,
* odmontowanie jest możliwe tylko wtedy, gdy żaden proces nie korzysta z plików na odmontowywanym systemie plików,
* przy odmontowaniu wystarczy podać punkt montowania lub urządzenie.
Sprawdzanie:
* do sprawdzania systemów plików służy polecenie **fsck**,
* **fsck** wywołuje specjalne wersje narzędzi dla konkretnego systemu plików (np. **e2fsck**),
* **e2fsck** można również wywoływać bezpośrednio,
* systemy plików są systematycznie sprawdzane w trakcie startu systemu.
Partycje swap:
* te partycje są używane jako pamięć wirtualna systemu,
* umożliwiają maksymalne zwiększenie ilości dostępnej pamięci,
* zakłada się je poleceniem: **mkswap**,
* włącza (montuje) przez: **swapon**,
* wyłącza (odmontowuje) przez: **swapoff**,
* możliwe jest również korzystanie z plików swap.
==== Ćwiczenia ====
=== I. Zakładanie i usuwanie kont ===
- Założyć konto przy pomocy polecenia ''useradd'':
- wywołując je tylko z nazwą użytkownika,
- oprócz nazwy użytkownika ustawić z linii poleceń powłokę,
- oprócz nazwy użytkownika ustawić z linii poleceń katalog domowy,
- oprócz nazwy użytkownika ustawić z linii poleceń numer uid,
- oprócz nazwy użytkownika ustawić z linii poleceń grupę użytkownika. \\ Czy padło pytanie o hasło? Jeżeli nie, należy je ustawić poleceniem ''passwd''.
- Sprawdzić przy pomocy ''useradd -D'' domyślne parametry konta, a następnie zmienić:
- domyślną powłokę,
- domyślny katalog domowy,
- domyślną grupę.
- Sprawdzić, czy w systemie jest polecenie ''adduser''. Można to zrobić wywołując manual, lub sprawdzając jakie polecenie jest wywoływane jako ''adduser''. Jeżeli jest obecne:
- proszę wykonać podobne operacje jak w ćwiczeniu 1.
- proszę wykonać podobne operacje jak w ćwiczeniu 2, edytując plik ''/etc/adduser.conf''.
- Proszę założyć grupy użytkowników, np. grupy ''biuro'' ''praca''.
- Dopisać użytkowników do założonych uprzednio grup:
- jeżeli to możliwe, przy pomocy ''addgroup'',
- ręcznie, edytując plik ''/etc/group''.
- Przy pomocy ''deluser'' i ''delgroup'' proszę usunąć założone konta i grupy. Czy usunięcie konta pociąga za sobą automatyczną likwidację grupy?
- Proszę założyć ręcznie podobne konta i grupy, według omówionych wcześniej zasad. Sprawdzić czy konta funkcjonują poprawnie. (Wskazówka: jedyne potrzebne narzędzie to edytor tekstowy: nano/vi/...).
- Należy założyć konto systemowe. Jakie powinny być hasło i powłoka?
=== II. Modyfikacje i blokowanie kont ===
- Przy pomocy poleceń ''id'', ''groups'' proszę sprawdzić informacje o kilku kontach użytkowników i systemowych.
- Korzystając z polecenia ''chfn'' lub ''usermod'' zmodyfikować parametry wcześniej założonego konta:
- dane personalne użytkownika,
- nazwę konta.
- Korzystając z ''chsh'' proszę zmienić powłokę wybranego konta.
- Wykonać podobne modyfikacje jak w ćwiczeniu 2, ale korzystając tylko z edytora (nano/vi/...).
- Wykorzystując polecenie ''ls -ln'' można zobaczyć numeryczne wartości właścicieli plików. Przed zmianą nazwy konta proszę oglądnąć te wartości. Operację należy powtórzyć po zmianie nazwy grupy lub konta i porównać te wartości. Czy zmiana nazwy konto lub grupy pociąga za sobą zmianę uid i gid?
- Proszę zablokować wybrane konto przy pomocy przez zmianę hasła:
- polecenia ''passwd'',
- przy pomocy edytora (nano/vi/...).
- Proszę zablokować wybrane konto przez zmianę powłoki:
- polecenia ''chsh'',
- przy pomocy edytora (nano/vi/...).
=== III. Zakładanie partycji ===
Nowe partycje można utworzyć na trzy sposoby - w zależności od możliwości sprzętowych stanowiska proszę przetestować każdą z nich:
- Sprawdzić przy pomocy ''mount'' na jakim dysku (urządzeniu) znajduje się główny system plików (np. ''/dev/sda''). Uruchomić na tym urządzeniu program ''fdisk'' i jeżeli na dysku jest wolne miejsce (polecenie ''F'' w ''fdisk''), założyć nową partycję. W niektórych przypadkach zalecane jest zrestartowanie maszyny w celu uaktualnienia tablicy partycji.
* Uwaga: w przypadku pracy w VirtualBox, na obrazie Ubuntu pobranym z OSBoxes, dysk ma już zajętą całą przestrzeń - nie da się utworzyć nowych partycji (bez kasowania / zmniejszania starych), ale możesz to wykorzystać do obejrzenia jakie partycje są dostępne w systemie i gdzie są podmontowane :-)
- Sprawdzić przy pomocy ''free'' stopień zajętości pamięci. Sprawdzić w pliku ''/etc/fstab'' na jakim urządzeniu znajduje się partycja swap. Jeżeli większość pamięci swap jest wolna, odłączyć partycję swap. Dalsze ćwiczenia (z tworzeniem systemów plików) będzie można wykonywać na tak odłączonej partycji swap.
- Stworzyć przy pomocy ''dd'' średniej wielkości plik (np. 16MB) wypełniony zerami:dd if=/dev/zero of=/root/my.swap bs=1M count=16
Udostępnić go przez jedno z urządzeń ''/dev/loop'': losetup /dev/loop4 /root/my.swap
Plik będzie wykorzystywany do zakładania systemów plików w kolejnych zadaniach.
=== IV. Zakładanie systemów plików ===
- Na przygotowanym w części wcześniejszej urządzeniu (osobnej partycji / odłączonej partycji swap / urządzeniu loop) założyć przy pomocy ''mkfs'':
* system plików ext2,
* system plików minix (o ile to możliwe),
* system plików msdos (o ile to możliwe).
- Jeżeli w punkcie 1. założono system ext2 proszę uruchomić na nim ''dumpe2fs'' i obejrzeć wyświetlane informacje. Gdzie są licznik i limit montowań?
- Stworzyć katalog ''/mnt/tmp'' i podmontować do niego stworzony w ćwiczeniu 1. system plików. Uruchomić ''df''. Sprawdzić, czy można korzystać z nowego systemu plików, zakładając w nim plik.
- Po odmontowaniu stworzonego systemu plików uruchomić polecenie ''fsck''. Dla systemu ext2 uruchomić ''e2fsck'' z opcją ''-f''.
- Podmontować założony system plików do ''/mnt/tmp''. Wykonać polecenie ''cd /mnt/tmp''. Spróbować odmontować system plików. Sprawdzić przy pomocy ''fuser'' jakie procesy z niego korzystają. Co jest warunkiem odmontowania systemu plików?
- Dla systemu ext2 proszę kilkakrotnie podmontować i odmontować system plików, obserwując licznik montowań.
- Utworzyć w pliku ''/etc/fstab'' wpis odpowiadający nowemu systemowi plików. Czy utworzenie tego wpisu uprości montowanie?
- W jaki sposób umożliwić każdemu użytkownikowi montowanie systemu plików? (Wskazówka: ''man fstab'')
- Jakiej opcji należy użyć, by zapobiec automatycznemu montowaniu systemu plików w trakcie startu systemu? (Wskazówka: ''man fstab'')
- Jak wymusić montowanie systemu plików w trybie tylko do odczytu? (Wskazówka: ''man fstab'')
=== V. Partycje swap ===
- Sprawdzić na jakim urządzeniu znajduje się partycja swap (w pliku ''/etc/fstab'' lub za pomocą ''fdisk -l''). Jeżeli większość pamięci swap jest wolna, odłączyć partycję swap (o ile nie zostało to zrobione wcześniej w części III.)
- Stworzyć partycję swap na urządzeniu przygotowanym w części III.
- Sprawdzić ilość dostępnej pamięci (''free''). Podłączyć partycję swap. Sprawdzić ilość dostępnej pamięci (''free'').
- Czy można mieć dwie partycje swap podłączone równocześnie? Sprawdź.