===== 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] urzadzeniegdzie: * ''-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ź.