Zarządzanie kontami
Jak dodać nowych użytkowników
Gdy zainstalujesz system, pierwszą rzeczą jaką powinieneś zrobić jest stworzenie nowych kont. Obsługa kont w Linuxie i nadawanie im odpowiednich uprawnień jest ściśle związana z grupami, które wiążą się z odpowiednimi funkcjami jakie mają spełniać użytkownicy wchodzący w ich skład. W naszym systemie, oprócz systemowych, planowane są następujące grupy i konta.
konto |
grupa |
funkcja |
www |
www |
Do uruchamiania serwera WWW |
|
pppusers |
Dla użytkowników ppp |
|
pppusers |
Dla użytkowników poczty |
|
wheel |
Dla użytkowników mających prawo przełączania się na konto root'a za pomocą polecenia su |
|
webmaster |
Dla użytkowników administrujących katalogiem www. |
ftp |
ftp |
Dla korzystających z ftp jako anonymous |
Do obsługi kont i grup użytkowników można wykorzystać pakiet wchodzący w skład linuxconf'a. Można oczywiście wejść do niego przez wywołanie głównego programu konfiguracyjnego linuxconf <Enter>, lecz będzie o wiele szybciej gdy skorzystamy z wywołania userconf <Enter>. Na ekranie pojawi się okno User account configurator, które może nie jest aż tak łatwo obsługiwane jak interfejs graficzny, lecz ma również bardzo intuicyjny charakter.
Zwykłe (podstawowe) konta
Podstawowe konta dają użytkownikowi możliwość zarówno logowania się w systemie, korzystania z poczty, usług ftp czy nawet łączenia się z systemem za pomocą ppp. Można powiedzieć, że jest to pełny pakiet usług jaki może nam zaoferować serwer internetowy. Podczas tworzenia tego typu kont należy przydzielić im grupę podstawową users i jeśli chcemy dodać im uprawnienia choćby do poczty to dodatkowo jako suplementary groups webmaster. Konfiguracja takiego konta może przebiegać w następujący sposób.
Uruchom userconf <Enter>.
Gdy wejdziemy do User accounts, wyświetlona zostanie lista kont dostępnych w systemie. Naciskając <Enter> w którejś z linii możemy modyfikować ustawienia poszczególnych kont. My dodamy nowego użytkownika - naciśnij Add. Pojawi się okno user account creation.
W pierwszej linii Login name wpisz nazwę konta, które użytkownik będzie musiał wpisać aby wejść do systemu.
W polu Full name możesz wpisać informacje bliżej określające właściciela konta.
W następnym polu group wpisz podstawową grupę, do której będzie należał użytkownik - lepiej niech to będzie grupa users. Nie wpisanie nic w tym polu powoduje, że system tworzy grupę o tej samej nazwie co Login name.
Pole Suplementary groups można ominąć, lecz jeśli chcemy nadać użytkownikowi prawo do korzystania z su czy też do administrowania katalogiem www musimy mu przyporządkować odpowiednie grupy, czyli w naszym przypadku będzie to whell, webmaster. Oczywiście można tu wpisać dodatkowo inne grupy systemu lub na przykład jakieś nowo utworzone.
Następna linia Home directory również nie musi być wypełniania, gdyż system utworzy katalog domowy w /home/login_name. Korzystamy z niej tylko wtedy gdy chcemy utworzyć go w innym miejscu lub nadać mu inną nazwę niż login_name.
Podobnie jest z polem Command interpreter czyli ścieżką do shella użytkownika. Modyfikujemy je tylko wtedy gdy user ma specjalne wymagania i chce korzystać choćby z csh.
Kolejne pola pozostawiamy bez zmian. User ID wykorzystywany jest tylko wtedy gdy chcemy przypisać użytkownikowi inny numer ID niż by był utworzony automatycznie. W polach Password managment możemy określić kiedy użytkownik musi zmienić hasło, jak długo tego uczynić nie może czy też datę wygaśnięcia konta.
Pola Mail aliases i Privileges również pozostawiamy bez zmian i naciskamy Accept.
Gdy podasz nowe hasło dla użytkownika, konfiguracja zostanie zakończona a jej efekty będą widoczne w wyświetlonym oknie Users accounts.
Jeśli chcesz dodać następnego użytkownika powtórz całą tą operację jeszcze raz. Jeśli chcesz skasować najedź na któreś z nich, naciśnij <Enter> i w wyświetlonym oknie naciśnij Del. Pojawią się trzy opcje do wyboru: Archive the account's data (archiwizowanie danych należących do użytkownika), Delete the account's data (skasowanie danych użytkownika - katalogu domowego) i ostatnia robi o dziwo to samo.
Oprócz skasowania konta w oknie User information możesz zmodyfikować jego parametry czy zmienić hasło przy pomocy przycisku passwd.
Przypuśćmy, że całą tą operację musisz wykonać na odległość. Niestety ssh nie obsługuje na razie takiego trybu graficznego jakiego wymaga userconf. Dlatego też skorzystamy z poleceń dostępnych od dawien dawna w trybie tekstowym. A więc aby dodać nowe konto korzystamy z plecenia adduser:
adduser -c `Full name' -d `home directory' -g `group' -G `supplementary groups' -s `command interpreter' login_name
Dodajmy konto dla Jana Kowalskiego.
adduser -c `Jan Kowalski' -g `users' janek
Mimo, że nie podaliśmy dodatkowych ustawień, zostanie domyślnie utworzone konto z katalogiem domowym w /home/janek , o shell'u /bin/bash, nie należące do żadnej grupy poza users. Gdyby Pan Jan miał inne wymagania, należałoby użyć następującej konstrukcji polecenia.
adduser -c `Jan Kowalski' -d `/kowalscy/jan' -g `users' -G `kowalscy, webmaster' -s `/bin/tcsh' janek
Aby konto mogło być wykorzystywane, musimy nadać mu hasło - wykorzystujemy do tego polecenie passwd.
passwd login_name
A więc dla konta janek będzie wyglądało to tak:
passwd janek
New UNIX password:
Retype new Unix password:
Jeśli panu Janowi zmienią się upodobania I będzie chciał zmienić ustawienia swojego konta możemy to wykonać za pomocą polecenia usermod:
usermod -c `Full name' -d `home directory' -g `group' -G `supplementary groups' -s `command interpreter' -l `nowy_login_name' obecny_login_name
Parametry tego polecenia są prawie identyczne poza dodatkowym -l wykorzystywanym do zmiany nazwy konta. I przykładowo dla Kowalskiego może to wyglądać tak (kiedy to robisz bądź pewny że kowalski nie jest zalogowany w systemie):
usermod -c `Jan Jozef Kowalski' -d `/kowalscy/jan_k' -g `users' -G `kowalscy' -l `jan' janek
Aby skasować konto wykorzystujemy polecenie userdel. Parametr -r powoduje dodatkowo skasowanie katalogu użytkownika i wszystkich plików które należą do niego (uważaj):
userdel -r jan
Zakładanie zwykłych kont dla użytkowników poczty i ppp
Użytkownicy korzystający z kont pocztowych i ppp nie mają prawa logować się w systemie. Nie jest im to potrzebne do korzystania z przypisanych im usług. Konfiguracja tego typu kont jest prawie identyczna jak w przypadku zwykłych użytkowników z tym wyjątkiem, że nie przypisujemy shell'a korzystającym z poczty, a w przypadku ppp zamiast shella podajemy ścieżkę do pliku ustalającego połączenie ppp. Więc spokojnie można je tworzyć korzystając z opcji User accounts programu userconf. Jednak program ten zawiera odpowiednie podprogramy służące do tego celu. Więc spróbujmy dodać teraz dwa konta: dla użytkownika poczty i dla ppp.
Uruchamiamy program userconf.
W oknie User account configurator wybieramy POP accounts (mail only).
Pojawi się lista użytkowników poczty. Aby dodać nowe konto wybieramy Add, lub jeśli chcemy zmodyfikować ustawienia już istniejących, naciskamy <Enter> w odpowiedniej lini. Wybierzmy Add.
Pojawi się znane nam już okno User account creation, które wypełniamy w identyczny sposób jak w przypadku zwykłych kont. Jedno jest pewne, że grupy popusers nie zmienimy gdyż do niej należą wszyscy użytkownicy typu (mail only).
Gdy zaakceptujesz ustawienia system poprosi Cie o hasło - i konto gotowe.
W przypadku gdy chcesz dodać użytkownika ppp, w głównym oknie User account configurator wybierz PPP acounts.
I tu postępuj podobnie jak poprzednio. Zauważ, że jako Command interpretator wpisany jest skrypt, wykorzystywany podczas łączenia się z serwerem (/etc/ppp/ppplogin).
Jeżeli te same operacje chcesz wykonać na odległość, będziesz musiał posłużyć się dobrze już Ci znanymi poleceniami, w odpowiedni sposób dobierając parametry. A więc jeśli chcesz dodać użytkownika poczty (janek) korzystasz z:
adduser -c 'Full name' -g 'popusers' -s '/bin/null' login_name
adduser -c 'Jan Kowalski' -g 'popusers' -s '/bin/null' janek
Zauważ, że zamiast shell'a wpisujesz /bin/null, co powoduje, że użytkownik nie może zalogować się do systemu. Stwórzmy jeszcze konto dla użytkownika ppp (przykładowo dla firmy firma1):
adduser -c 'Full name' -g 'pppusers' -s '/etc/ppp/ppplogin' login_name
adduser -c 'Jakas firma' -g 'pppusers' -s '/etc/ppp/ppplogin' firma1
Obsługa grup
Podczas administracji kontami użytkowników może się jeszcze przydać obsługa odpowiednich grup. Wykorzystujemy tu również program userconf - a dokładniej opcję Group definitions.
Gdy w głównym oknie User account configurator wybierzesz Group definitions, wyświetlona zostanie lista obsługiwanych grup.
Naciskając <Enter> w odpowiedniej linii, możesz wyedytować parametry konkretnej grupy. Przykładowo zmodyfikuj ustawienia grupy webmaster.
Gdy naciśniesz <Enter> w odpowiedniej linii zostanie wyświetlone okno Group specification. Dla podstawowej obsługi niezbędna jest tylko konfiguracja części Base info.
Aby dodać nowych użytkowników do grupy, po prostu wpisujesz ich nazwy w polu Alternate members oddzielając je przecinkami.
Możesz ewentualnie zmienić jeszcze Group ID, lecz nie próbuj zmieniać Group name (na pewno to Ci się nie uda).
Jeśli chcesz utworzyć nową grupę, w oknie Group specification naciśnij Add, i je uzupełnij według powyższych wskazówek ( w tym wypadku musisz podać Group name).
Do obsługi grup w linii poleceń wykorzystujemy następujące polecenia.
groupadd - tworzenie nowych grup.
groupadd nazwa
groupadd kowalscy
groupmod - modyfikowanie ustawień grupy
groupmod -g nowe_ID -n nowa_nazwa obecna_nazwa
groupmod -n nowakowie kowalscy
groupdel - kasowanie grupy
groupdel nazwa
groupdel nowakowie
Kontrolowanie dostępu do plików
Utworzenie konta to nie wszystko - z pewnością będziesz chciał uchronić niektóre pliki przed niepowołanym odczytem, a inne z kolei udostępnić. Możesz kontrolować dostęp do plików przez odpowiednie ustawienie parametrów dostępu. Jeśli wykonasz polecenie ls -l <Enter> zostanie wyświetlona zawartość katalogu, w którym się aktualnie znajdujesz.
Zezwolenia Użytkownik Grupa Rozmiar Data Nazwa
drwxrwxr-x 3 ktos jakas 1024 Oct 3 00:15 .
drwx------ 4 ktos jakas 1024 Oct 3 00:10 ..
-rw-r--r-- 1 ktos jakas 3768 Sep 23 22:54 .ukryty
drwxrwxr-x 2 ktos jakas 1024 Oct 3 00:10 moje
-rw-r----- 1 ktos jakas 732 May 6 01:34 normal
lrwxrwxrwx 1 ktos jakas 15 Oct 3 00:10 skrot -> /sbin/...
-rwxr-xr-x 1 ktos jakas 2864 May 4 18:32 wykonywalny
Dla każdego wypisanego pliku wyszczególniono jego zezwolenia, właściciela, nazwę grupy, rozmiar, datę ostatniej modyfikacji i nazwę. My zajmiemy się najpierw zezwoleniami. Wyświetlane są one zawsze w postaci łańcucha poprzedzającego pozostałe dane o pliku. Dane o zezwoleniach składają się z dziesięciu znaków, z których każdy ma swoje znaczenie. Chcąc odczytać zezwolenia danego pliku należy rozbić je na grupy.
Znak na pierwszej pozycji mówi nam o rodzaju „obiektu” - literka `d` oznacza, że jest to katalog, `-` mówi nam, że jest to zwykły plik, `l' oznacza łącze symboliczne. Następnie określane są przywileje, kolejno po trzy dla właściciela, grupy i reszty użytkowników. Literka `r' oznacza możliwość czytania, `w' zapisywania, a `x' uruchamiania. Jeżeli zamiast litery w pewnym polu pojawia się znak minus `-`, należy to rozumieć jako brak danego zezwolenia. Przykładowo `rw-` oznacza, iż plik można odczytać i zapisać, lecz nie uruchamiać.
W przypadku katalogów zezwolenia będą miały nieco inny sens. Prawo odczytu katalogu oznacza, że można wypisać znajdujące się w nim pliki poleceniem ls; prawo zapisu oznacza, iż w danym katalogu można tworzyć i kasować pliki, a prawo uruchamiania daje możliwość przejścia do katalogu za pomocą polecenia cd.
k |
user |
group |
other |
||||||
d |
r |
w |
x |
r |
w |
x |
r |
- |
x |
user - użytkownik, właściciel
group - grupa
other - inni użytkownicy
k - rodzaj kategorii - `-` dla pliku, `d' dla katalogu i `l' dla wskaźnika
r - uprawnienia do odczytywania pliku
w - uprawnienia do zapisywania (modyfikacji) pliku
x - uprawnienia do wykonywania pliku
chmod <parametry zezwoleń> <nazwa lub nazwy plików czy katalogów>
Parametry zezwoleń tworzymy przez kombinację następujących znaków:
Kogo dotyczy? (wybierz jeden lub więcej) |
Sposób modyfikacji (wybierz jeden) |
Typ dostępu (wybierz jeden lub więcej) |
|
u - właściciel |
a - wszyscy |
`+' - przyznaj |
r - prawo odczytu |
g - grupa |
|
`-` - usuń |
w - prawo zapisu |
o - reszta |
|
|
x - prawo uruchamiania |
Oto kilka przykładów:
chmod g+r obiekt - nadaje grupie, możliwość czytania danego pliku lub wyświetlania zawartości danego katalogu
chmod u+x obiekt - nadaje właścicielowi, prawa wykonywania pliku lub wchodzenia do danego katalogu
chmod o-x obiekt - odbiera pozostałym użytkownikom, prawa do wykonywania pliku lub wchodzenia do danego katalogu
chmod ugo-w obiekt - odbiera wszystkim prawa do czytania danego pliku lub tworzenia i zapisywania plików w danym katalogu
chmod a-x obiekt - to samo co poprzednio
Uwaga: W przypadku katalogów jeżeli na końcu składni polecenia chmod dodamy parametr -R to ustawienia obejmą także wszystkie pliki znajdujące się w tym katalogu
Za pomocą polecenia chmod można też nadawać uprawnienia w formie octalnej. Najlepiej zapamiętaj, że zezwoleniu na odczyt pliku przyporządkowujemy 4, zapis pliku 2 i uruchomienie 1. Obraz uprawnień do nago pliku powstaje z cyfr będących sumą poszczególnych (aktywnych) zezwoleń. Oto kilka przykładów:
chmod 760 obiekt - pełne uprawnienia dla właściciela, prawo czytania i pisania dla grupy
r |
w |
x |
r |
w |
- |
- |
- |
- |
4 + 2 + 1 |
4 + 2 + 0 |
0 + 0 + 0 |
||||||
7 |
6 |
0 |
Aby przydzielić plikowi nowego właściciela lub nową grupę korzystamy z polecenia chown. W przypadku katalogów musisz użyć parametru -R.
chown właściciel:grupa plik
chown jan:kowalscy testament
chown -R jan:kowalscy album
Wszystkie operacje tu przedstawione można łatwiej wykonać przy pomocy Midnight Commandera. Gdy wejdziesz do niego za pomocą mc <Enter> naciśnij <F9>. W menu file znajdują się odpowiednie opcje (chmod, chown...) które w łatwy sposób pozwalają przeprowadzać operacje na plikach.
Zarządzanie kontami
Strona 2