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.
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).
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:
/bin/bashAby 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.
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 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.
Polecenie passwd używane jest do zmiany hasła. Oprócz tego
używane jest przez "root-a" do:
-l i -u)-x)-n)-w)-i)-S)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.
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ś.
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.
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ą.
Program ten sprawdza poprawność plików /etc/group i
/etc/gshadow. Sprawdza:
Ma także opcję -r do automatycznych raportów.
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.