Następna strona Poprzednia strona Spis treści

7. Wprowadzanie pakietu Shadow Suite do użycia.

Sekcja ta opisuje kilka rzeczy które będziesz chciał wiedzieć jak już zainstalowałeś pakiet Shadow Suite. Dalsze informacje zawarte są na stronach podręcznika systemowego na temat każdego polecenia.

7.1 Dodawanie, Modyfikacja i usuwanie użytkowników.

Pakiet Shadow Suite dodał następujące polecenia do dodawania, modyfikacji i usuwania użytkowników. Są one obsługiwane z wiersza poleceń przez parametry (mogłeś także zainstalować program adduser).

useradd.

Polecenie useradd może zostać użyte, aby dodać użytkownika do systemu. Wykonujesz je także, żeby zmienić domyślne ustawienia.

Pierwszą rzeczą jaką powinieneś zrobić, to sprawdzić ustawienia domyślne na twoim systemie i odpowiednio je zmienić:

useradd -D


GROUP=1
HOME=/home
INACTIVE=0
EXPIRE=0
SHELL=
SKEL=/etc/skel

Wartości domyślne to pewnie nie są te, które chcesz używać, tak więc jeśli zacząłbyś dodawać użytkowników teraz, to musiałbyś podawać informacje dla każdego użytkownika. Jednak możemy i powinniśmy zmienić wartości domyślne:

Aby zrobić takie zmiany napisałbym:

useradd -D -g100 -e60 -f0 -s/bin/bash

Teraz uruchomienie useradd -D pokaże:


GROUP=100
HOME=/home
INACTIVE=0
EXPIRE=60
SHELL=/bin/bash
SKEL=/etc/skel

W razie gdybyś chciał wiedzieć, to wartości te są zapisywane w /etc/default/useradd.

Teraz możesz użyć polecenia useradd, aby dodać użytkowników do systemu. Na przykład, aby dodać użytkownika fred używając wartości domyślnych napisałbyś:

useradd -m -c "Fred Flintstone" fred

Stworzy to następującą pozycję w /etc/passwd:

fred:*:505:100:Fred Flinstone:/home/fred:/bin/bash

oraz następującą pozycję w /etc/shadow:

fred:!:0:0:60:0:0:0:0

Utworzony zostanie katalog domowy freda oraz skopiowana zostanie tam zawartość katalogu /etc/skel z powodu opcji -m.

Ponieważ nie podaliśmy UID-u użyty zostanie następny wolny.

Konto freda będzie utworzone, ale nie będzie on się mógł zalogować dopóki go nie odblokujemy. Zrobimy to przez zmianę hasła:

passwd fred


Changing password for fred
Enter the new password (minimum of 5 characters)
Please use a combination of upper and lower case letters and numbers.
New Password: *******
Re-enter new password: *******

Teraz w /etc/shadow będzie:

fred:J0C.WDR1amIt6:9559:0:60:0:0:0:0

A fred będzie mógł się teraz zalogować i korzystać z systemu. Najlepsze w użyciu programów, które przychodzą razem z pakietem Shadow Suite jest to, że wszelkie zmiany plików /etc/passwd i /etc/shadow są wykonywane z tzw. blokowaniem. Ta więc jeśli dodajesz użytkownika do systemu a inny użytkownik właśnie sobie zmienia hasło, to obie operacje zostaną wykonane poprawnie.

Powinieneś używać raczej dostarczonych programów niż edytować ręcznie pliki /etc/passwd i /etc/shadow. Jeśli edytowałeś plik /etc/shadow i jakiś użytkownik zmieniał sobie w tym samym czasie hasło, to po zapisaniu zmian dokonanych przez ciebie nowe hasło użytkownika zginie.

Oto mały interaktywny skrypt, który dodaje nowego użytkownika używając useradd i passwd:


#!/bin/bash
#
# /sbin/newuser - Skrypt dodający użytkowników do systemu używającego
#                 programów useradd z pakietu Shadow Suite i passwd.
#
# Napisany przez Mike'a Jacksona <mhjack@tscnet.com> jako przykład do 
# Shadow-Password-HOWTO. Pozwolenie na używanie i modyfikacje wyraźnie dane.
#
# Możnaby ten skrypt zmodyfikować tak, żeby pokazywał wartości domyślne
# oraz pozwalał na modyfikację podobnie jak program adduser ze Slackware.
# Możnaby też sprawdzać błędy, czy głupie wartości.
# 
#
##
# Wartości domyślne dla polecenia useradd
##
GROUP=100        # Domyślna grupa
HOME=/home       # Katalog domowy (/home/identyfikator)
SKEL=/etc/skel   # Katalog szkieletowy
INACTIVE=0       # Ilość dni, po których wygasa hasło.
EXPIRE=60        # Ilość dni, przez którą ma istnieć hasło
SHELL=/bin/bash  # Domyślna powłoka (pełna ścieżka)
##
# Wartości domyślne dla polecenia passwd
##
PASSMIN=0        # Ilość dni między którą zmienia się hasło
PASSWARN=14      # Ilość dni przed wygaśnięciem hasła kiedy jest
#                  wysyłana wiadomość ostrzegająca.
##
#            Upewnij się, że "root" uruchomił ten skrypt
##
WHOAMI=`/usr/bin/whoami`
if [ $WHOAMI != "root" ]; then
        echo "You must be root to add news users!"
        exit 1
fi
##
#   Zapytaj o identyfikator i imię i nazwisko
##
echo ""
echo -n "Username: "
read USERNAME
echo -n "Full name: "
read FULLNAME
#
echo "Adding user: $USERNAME."
#
# Zauważ, że wymagane są "" przy $FULLNAME ponieważ pole to będzie
# prawie zawsze zawierało przynajmniej jedną spację, a bez " polecenie
# useradd "pomyślałoby", że jest to następny parametr kiedy doszłoby
# do spacji.
#
/usr/sbin/useradd -c"$FULLNAME" -d$HOME/$USERNAME -e$EXPIRE \
        -f$INACTIVE -g$GROUP -m -k$SKEL -s$SHELL $USERNAME
##
# Ustaw domyślne wartości dla hasła
##
/bin/passwd -n $PASSMIN -w $PASSWARN $USERNAME >/dev/null 2>&1
##
# Niech polecenie passwd zapyta poprawnie (dwa razy) o hasło
##
/bin/passwd $USERNAME
##
# Pokaż, co zostało zrobione
##
echo ""
echo "Entry from /etc/passwd:"
echo -n "   "
grep "$USERNAME:" /etc/passwd
echo "Entry from /etc/shadow:"
echo -n "   "
grep "$USERNAME:" /etc/shadow
echo "Summary output of the passwd command:"
echo -n "   "
passwd -S $USERNAME
echo ""

Użycie skryptu do dodawania użytkowników do systemu jest na prawdę bardziej preferowane niż ręczna edycja plików /etc/passwd czy /etc/shadow czy też używanie programu adduser ze Slackware. Możesz śmiało modyfikować ten skrypt dla swoich potrzeb.

Więcej informacji na temat useradd znajdziesz w podręczniku systemowym.

usermod.

Program usermod używany jest do modyfikowania informacji na temat danego użytkownika. Opcje tego programu są podobne do opcji programu useradd.

Powiedzmy, że chcesz zmienić powłokę dla freda; zrobiłbyś to tak:

usermod -s /bin/tcsh fred

Teraz pozycja dotycząca freda w /etc/passwd zmieniłaby się na:

fred:*:505:100:Fred Flinstone:/home/fred:/bin/tcsh

Załóżmy, że chcemy, żeby konto freda wygasło 15.09.1997:

usermod -e 09/15/97 fred <-- data w stylu angielskim-amerykańskim (mmddrr)

Teraz pozycja dotycząca freda w /etc/shadow zmieniłaby się na:

fred:J0C.WDR1amIt6:9559:0:60:0:0:10119:0

Więcej informacji na temat usermod znajdziesz w podręczniku systemowym.

userdel.

userdel robi dokładnie to czego się spodziewałeś - kasuje konto podanego użytkownika. Użycie jest proste:

userdel -r <identyfikator>

Opcja -r powoduje skasowanie wszystkich plików z katalogu domowego użytkownika. Plików zlokalizowanych w innym systemie plików trzeba poszukać i skasować je ręcznie.

Jeśli chcesz tylko zablokować dane konto, a nie skasować to użyj polecenia passwd.

7.2 Polecenie passwd i "termin ważności" hasła.

Polecenie passwd używane jest do zmiany hasła. Oprócz tego używane jest przez "root-a" do:

Na przykład, spójrzmy jeszcze raz na freda:

passwd -S fred
fred P 03/04/96 0 60 0 0

Oznacza to, że hasło freda jest ważne, ostatnio było zmieniane 04.03.1996, może być zmienione w każdej chwili, wygasa po 60 dniach, fred nie zostanie ostrzeżony oraz konto nie zostanie zablokowane po wygaśnięciu hasła.

Oznacza to po prostu tyle, że kiedy fred zaloguje się po wygaśnięciu hasła zostanie zaraz na początku poproszony o podanie nowego hasła.

Jeśli zdecydujemy się, że chcemy ostrzec freda na 14 dni przed wygaśnięciem jego hasła i zablokować jego konto 14 dni po wygaśnięciu hasła trzebaby napisać tak:

passwd -w14 -i14 fred

Teraz dane o fredzie zmianiły się na:

fred P 03/04/96 0 60 14 14

Więcej informacji na temat passwd znajdziesz w podręczniku systemowym.

7.3 Plik login.defs

Plik /etc/login jest plikiem konfiguracyjnym dla programu login oraz dla całego pakietu Shadow Suite.

/etc/login zawiera ustawienia od tego jak będą wyglądać znaki zachęty do tego jakie domyślne wartości będą dla wygasania hasła kiedy użytkownik je sobie zmieni.

Plik /etc/login.defs jest dość dobrze udokumentowany już przez same komentarze w nim zawarte. Chociaż jest kilka rzeczy do odnotowania:

Z powyższej listy wynika, że jest to raczej ważny plik i powinieneś się upewnić, że istnieje i że ustawienia są takie jak chciałeś.

7.4 Hasła dla grup.

Plik /etc/groups może zawierać hasła, które pozwalają użytkownikom dołączyć się do jakiejś grupy. Funkcja ta jest włączona jeśli zdefiniujesz stałą SHADOWGRP w pliku /usr/src/shadow-YYMMDD/config.h .

Jeśli ją zdefiniujesz i skompilujesz pakiet, musisz utworzyć plik /etc/gshadow, żeby trzymać tam hasła grup i informacje administracyjne.

Do utworzenia pliku /etc/shadow użyłeś programu pwconv; nie ma odpowiednika do utworzenia pliku /etc/gshadow, ale to nie ma znaczenia bo plik ten sam się sobą zajmuje.

Aby stworzyć początkowy plik /etc/gshadow zrób tak:

touch /etc/gshadow
chown root.root /etc/gshadow
chmod 700 /etc/gshadow

Jak będziesz tworzył nowe grupy, zostaną one dodane do /etc/group i /etc/gshadow.

Do modyfikacji grup służą programy dostarczane wraz z pakietem Shadow Suite: groups, groupadd, groupmod i groupdel.

Format pliku /etc/group jest taki:

nazwa_grupy:!:GID:członek,członek,...

Gdzie:

nazwa_grupy

- chyba nie wymaga wyjaśniania :)

!

- w tym miejscu normalnie byłoby hasło, ale teraz jest ono w gshadow

GID

- numer grupy

członek

- lista członków grupy.

Format pliku /etc/gshadow jest taki:

nazwa_grupy:hasło:admin,admin,...:członek,członek,...

Gdzie:

nazwa_grupy

- chyba nie wymaga wyjaśniania :)

hasło

- zakodowane hasło grupy

admin

- lista administratorów grupy

członek

- lista członków grupy

Polecenie gpasswd jest używane tylko do dodawania i usuwania członków do/z grupy. "root" i każdy z administratorów grupy może usuwać i dodawać członków.

Hasło dla grupy może być zmienione za pomocą polecenia passwd przez "root-a" i każdego z administratorów grupy.

Chociaż nie ma strony do podręcznika systemowego dla gpasswd, to zrozumienie opcji tego polecenia nie jest takie trudne jak już rozumiesz jego format i koncept. gpasswd bez żadnych parametrów poda opcje jakie przyjmuje.

7.5 Programy do sprawdzania poprawności.

pwck

Program pwck sprawdza poprawność plików /etc/passwd i /etc/shadow. Sprawdzi każdego użytkownika czy ma:

Ostrzeże nas także jeśli znajdzie konta bez haseł.

Uruchomienie tego programu po zainstalowaniu pakietu Shadow Suite jest dobrym pomysłem. Powinno sie go także uruchamiać okresowo - co tydzień, co miesiąc. Jeśli użyjesz opcji -r, to możesz użyć programu cron, aby uruchamiać pwck okresowo i dostawać raport pocztą.

grpck

Program ten sprawdza poprawność plików /etc/group i /etc/gshadow. Sprawdza:

Ma także opcję -r do automatycznych raportów.

7.6 Hasła przez telefon. (Dial-up)

Hasła przez telefon są inną opcjonalną linią obrony dla systemów, które umożliwiają dostęp przez telefon. Jeśli masz system z dużą ilośćią użytkowników łączących się lokalnie albo poprzez sieć, ale chcesz ograniczyć kto może sie połączyć, to "hasła przez telefon" są dla ciebie. Aby właczyć "hasła przez telefon" musisz wyedytować plik /etc/login.defs i upewnić się, że DIALUPS_CHECK_ENAB jest ustawione na yes.

Są dwa pliki, które zawierają informacje o połączeniach przez telefon: /etc/dialups, który zawiera "tty" (jeden na linię bez "/dev/"). Jeśli dany tty jest tam zawarty to połączenie jest sprawdzane; oraz /etc/d_passwd z pełną ścieżką dostępu do powłoki oraz opcjonalnym hasłem.

Jeśli użytkownik zaloguje się na linię, która jest podana w /etc/diulups i jego powłoka jest podana w /etc/d_passwd, to będzie mógł się zalogować tylko po podaniu poprawnego hasła.

Innym użytecznym celem "haseł przez telefon" może być ustawienie linii, która pozwala tylko na połączenia konkretnego rodzaju (np. PPP lub/i UUCP). Jeśli użytkownik próbuje się połączyć inaczej (np. listą powłok), to musi znać hasło na tę linię.

Zanim będziesz mógł używać tych właściwości musisz stworzyć te pliki.

Polecenie dpasswd przypisuje hasła do konkretnych powłok zawartych w pliku /etc/d_passwd. Więcej informacji znajdziesz na stronie podręcznika systemowego.


Następna strona Poprzednia strona Spis treści