Sophie

Sophie

distrib > Mandriva > 8.1 > i586 > by-pkgid > 1d876fa8c1caf5809b8232d098efff65 > files > 32

howto-text-pl-8.1-1mdk.noarch.rpm

  Przes³anianie hase³ (Shadow Password)
  Autor: Michael H. Jackson, mhjack@tscnet.com
  v1.3, 3 Kwietnia 1996
  WWeerrssjjaa ppoollsskkaa:: BBaarrttoosszz MMaarruusszzeewwsskkii
  BB..MMaarruusszzeewwsskkii@@zzssmmeeiiee..ttoorruunn..ppll
  v1.02, 26 Lipca 1997

  Dokument ten opisuje jak zdobyæ, zainstalowaæ i skonfigurowaæ pakiet
  _S_h_a_d_o_w _P_a_s_s_w_o_r_d dla Linux-a. Omówione zosta³o tutaj tak¿e zdobywanie i
  (ponowna) instalacja oprogramowania oraz demonów sieciowych, które
  potrzebuj± dostêpu do hase³ u¿ytkownika. Oprogramowanie to nie jest
  w³a¶ciw± czê¶ci± pakietu _S_h_a_d_o_w _S_u_i_t_e, ale bêd± one musia³y zostaæ
  przekompilowane, aby móc korzystaæ z hase³. Jest tutaj tak¿e zawarty
  przyk³ad dla programistów, jak dodawaæ obs³ugê przes³anianych hase³ w
  swoich programach.  Pod koniec dokumentu zawarte zosta³y odpowiedzi na
  czêsto zadawane pytania.  Dokument ten zosta³ napisany w standardzie
  ISO-8859-2.  Orygina³ mo¿na znale¼æ pod adresem ftp.icm.edu.pl w kata­
  logu /pub/Linux/sunsite/docs/HOWTO.
  ______________________________________________________________________

  Table of Contents:

  1.      Wprowadzenie.

  1.1.    Zmiany w stosunku do poprzedniej wersji.

  1.2.    Nowe wersje tego dokumentu.

  1.3.    Komentarze.

  2.      Po co przes³aniaæ plik passwd ?

  2.1.    Czemu mo¿esz nie chcieæ przes³aniaæ swojego pliku z has³ami ?

  2.2.    Format pliku /etc/passwd.

  2.3.    Format pliku przes³aniaj±cego.

  2.4.    Przegl±d funkcji crypt(3).

  3.      Zdobywanie pakietu Shadow Suite.

  3.1.    Historia pakietu Shadow Suite dla Linux-a.

  3.2.    Gdzie znale¼æ pakiet Shadow Suite.

  3.3.    Co jest zawarte w pakiecie Shadow Suite.

  4.      Kompilacja programów.

  4.1.    Rozpakowywanie archiwów.

  4.2.    Konfiguracja w pliku config.h

  4.3.    Kopie zapasowe twoich oryginalnych programów.

  4.4.    Polecenie make

  5.      Instalacja

  5.1.    Zaopatrz siê w dyskietkê startow± w razie gdyby¶ co¶ popsu³.

  5.2.    Usuwanie zduplikowanych stron podrêcznika systemowego.

  5.3.    Polecenie make install

  5.4.    Polecenie pwconv

  5.5.    Zmiany nazw plików npasswd i nshadow

  6.      Inne programy, które mo¿e musisz uaktualniæ albo "za³ataæ".

  6.1.    Program adduser z dystrybucji Slackware.

  6.2.    Serwer wu_ftpd.

  6.3.    Standardowy ftpd.

  6.4.    pop3d (Post Office Protocol 3)

  6.5.    xlock

  6.6.    xdm

  6.7.    sudo

  6.8.    imapd (E-Mail

  6.9.    pppd (Serwer Protoko³u Point-to-Point)

  7.      Wprowadzanie pakietu Shadow Suite do u¿ycia.

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

  7.1.1.  useradd.

  7.1.2.  usermod.

  7.1.3.  userdel.

  7.2.    Polecenie passwd i "termin wa¿no¶ci" has³a.

  7.3.    Plik login.defs

  7.4.    Has³a dla grup.

  7.5.    Programy do sprawdzania poprawno¶ci.

  7.5.1.  pwck

  7.5.2.  grpck

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

  8.      Obs³uga przes³anianych hase³ w programach w C.

  8.1.    Pliki nag³ówkowe.

  8.2.    Biblioteka libshadow.a

  8.3.    Struktura Shadow.

  8.4.    Funkcje pakietu Shadow Suite.

  8.5.    Przyk³ad.

  9.      Czêsto zadawane pytania.

  10.     Prawa autorskie podziêkowania i ró¿ne.

  10.1.   Prawa autorskie

  10.2.   Podziêkowania i ró¿ne.

  10.3.   Od t³umacza.
  ______________________________________________________________________

  11..  WWpprroowwaaddzzeenniiee..

  Jest to dokument z serii HOWTO (czyli Jak To Zrobiæ). Opisuje on jak i
  dlaczego instalowaæ obs³ugê "shadow password" na swoim Linux-ie.
  Zawarte jest tak¿e kilka przyk³adów na u¿ywanie pewnych w³a¶ciwo¶ci
  pakietu _S_h_a_d_o_w _S_u_i_t_e.

  Podczas instalacji pakietu oraz u¿ywania jego narzêdzi musisz byæ
  zalogowany jako _"_r_o_o_t_". Podczas instalacji bêdziesz dokonywa³ pewnych
  zmian do oprogramowania systemowego i zalecane jest, aby¶ zrobi³ kopiê
  tego oprogramowania. Zalecam te¿, aby¶ przeczyta³ i zrozumia³
  wszystkie instrukcje zawarte tutaj zanim zaczniesz.

  11..11..  ZZmmiiaannyy ww ssttoossuunnkkuu ddoo ppoopprrzzeeddnniieejj wweerrssjjii..

  Dodane sekcje:
     Doda³em sekcjê na temat dlaczego móg³by¶ niechcieæ instalowaæ
     pakietu Shadow Suite.
     Doda³em sekcjê jak uaktualniæ xdm-a.
     Doda³em sekcjê jak zmusiæ do dzia³ania specjalne w³a¶ciwo¶ci pakietu
     Shadow Suite.
     Doda³em sekcjê zawieraj±c± czêsto zadawane pytania.

  Poprawki/Uaktualnienia:
     Poprawi³em odwo³ania html do sunsite-a.
     Poprawi³em sekcjê na temat wu-ftpd, aby odzwierciedla³a dodawanie
     -lshadow do pliku Makefile.
     Poprawi³em kilka literówek.
     Zmieni³em sekcjê na temat wu-ftpd, aby obs³ugiwa³ ELF.
     Uaktualni³em ca³y dokument, aby odzwierciedla³ problemy bezpieczeñstwa
     w ró¿nych programach.
     Doda³em rekomendacjê pakietu Linux Shadow Suite napisanego
     przez Marka Micha³kiewicza

  11..22..  NNoowwee wweerrssjjee tteeggoo ddookkuummeennttuu..

  Najnowsz± wersjê orygina³u tego dokumentu mo¿na ¶ci±gn±æ z
  ftp.icm.edu.pl z katalogu /pub/Linux/sunsite/docs/HOWTO.  Inne formaty
  znajduj± siê w katalogu other-formats. Albo poprzez sieæ WWW z
  sunsite.icm.edu.pl
  <http://sunsite.icm.edu.pl:/pub/Linux/Documentation>. Mo¿na te¿
  bezpo¶rednio od autora <mailto:mhjack@tscnet.com>. Autor bêdzie te¿
  wysy³a³ nowe wersje na grupê dyskusyjn± comp.os.linux.answers

  Dokument ten jest tak¿e rozprowadzany wraz z dystrybucj± pakietu
  Shadow-YYDDMM.

  Na temat nowych wersji t³umaczenia zobacz sekcjê ``Od t³umacza''.

  11..33..  KKoommeennttaarrzzee..

  Proszê wszelkie komentarze, uaktualnienia czy sugestie wysy³aæ do mnie
  <mailto:mhjack@tscnet.com>. Im szybciej otrzymam pocztê tym szybciej
  mogê poprawiæ ten dokument. Je¶li masz jakie¶ uwagi na jego temat, to
  wy¶lij je bezpo¶rednio do mnie, poniewa¿ bardzo rzadko odwiedzam grupy
  dyskusyjne.

  22..  PPoo ccoo pprrzzeess³³aanniiaaææ pplliikk ppaasssswwdd ??

  W chwili obecnej wiêkszo¶æ dystrybucji Linux-a nie instaluje domy¶lnie
  pakietu Shadow Suite. Dotyczy to Slackware 2.3, Slackware 3.0 i innych
  popularnych dystrybucji. Jednym z powodów tego jest to, ¿e je¶li
  zap³acono jak±¶ kwotê za Shadow Suite to prawa co do redystrybucji nie
  by³y do koñca jasne. Linux u¿ywa licencji GNU, która pozwala na
  umieszczanie go w dowolnych pakietach (jak np. dystrybucje CD-ROM) i
  pobieranie za nie op³aty.

  Obecny opiekun pakietu Shadow Suite, Marek Micha³kiewicz
  <mailto:marekm@ists.pwr.wroc.pl> otrzyma³ ¼ród³a orygina³u na licencji
  w stylu BSD, która pozwala na dystrybucjê.  Teraz, kiedy ju¿ sprawy
  praw kopiowania s± rozwi±zane, spodziewane jest, ¿e przysz³e
  dystrybucje bêd± zawieraæ domy¶lnie przes³anianie hase³. Jednak do
  tego czasu, bêdziesz musia³ je samemu instalowaæ.

  Je¶li instalowa³e¶ swoj± dystrybucjê z CD-ROM-u, to pomimo, ¿e
  dystrybucja nie zainstalowa³a Shadow Suite niektóre pliki, których
  potrzebujesz mog± siê znajdowaæ na CD-ROM-ie.

  _W_e_r_s_j_e _p_a_k_i_e_t_u _3_._3_._1_, _3_._3_._1_-_2 _i _s_h_a_d_o_w_-_m_k _m_a_j_± _p_r_o_b_l_e_m_y _d_o_t_y_c_z_±_c_e
  _b_e_z_p_i_e_c_z_e_ñ_s_t_w_a _z_e _s_w_o_i_m _p_r_o_g_r_a_m_e_m _l_o_g_i_n _i _k_i_l_k_o_m_a _i_n_n_y_m_i _p_r_o_g_r_a_m_a_m_i
  _t_y_p_u _s_u_i_d _r_o_o_t _i _n_i_e _p_o_w_i_n_n_y _b_y_æ _j_u_¿ _u_¿_y_w_a_n_e_.

  Wszystkie potrzebne pliki s± dostêpne poprzez anonimowane ftp oraz
  WWW.

  W Linux-ie bez zainstalowanego pakietu Shadow Suite informacje o
  u¿ytkowniku wraz z has³em trzymane s± w pliku /etc/passwd.  Has³o
  znajduje siê tam w formie zakodowanej (encrypted). Jednak je¶li
  spytasz jakiego¶ eksperta od kryptografii, to powie ci on/ona, ¿e
  has³o jest w postaci "encoded", a nie "encrypted" poniewa¿ u¿ywaj±c
  funkcji crypt(3), tekstowi jest przypisywany ³añcuch pusty a has³o
  jest kluczem. Dlatego, od tego momentu bêdê u¿ywa³ okre¶lenia
  "encoded".

  Algorytm u¿ywany do kodowania has³a jest technicznie okre¶lany jako
  algorytm dzia³aj±cy w jedn± stronê. Jest to algorytm, który jest ³atwy
  do zastosowania w jedn± stronê, ale bardzo trudny do z³amania. Wiêcej
  na ten temat znajdziesz w sekcji ``2.4'' albo na stronie podrêcznika
  systemowego dotycz±cej funkcji crypt(3).

  Kiedy u¿ytkownik wybiera has³o, albo jest mu ono przydzielone, jest
  ono kodowane losowo generowan± warto¶ci± zwan± salt (sól). Oznacza to,
  ¿e ka¿de has³o mo¿e zostaæ zakodowane na 4096 sposobów. Warto¶æ salt
  jest potem zapisywana razem z zakodowanym has³em.

  Kiedy u¿ytkownik siê wlogowuje i podaje has³o, najpierw pobierana jest
  warto¶æ salt z zakodowanego has³a. Nastêpnie pobrane has³o zostaje
  zakodowane pobran± warto¶ci±, i porównane z zapisanym zakodowanym
  has³em. Je¶li ³añcuchy te s± identyczne, to u¿ytkownik zostaje
  "wpuszczony" do systemu. Jest bardzo trudno (ale nie jest to
  niemo¿liwe) wzi±æ losowo zakodowane has³o i otrzymaæ has³o
  rozkodowane. Chocia¿, w ka¿dym systemie z wiêksz± liczb± u¿ytkowników,
  przynajmniej kilka hase³ bêdzie zwyk³ymi s³owami albo jak±¶ wariacj±
  zwyk³ych s³ów.

  W³amywacze wiêdz± o tym wszystkim i po prostu koduj± s³ownik ze
  s³owami i popularnymi has³ami wszytkimi mo¿liwymi warto¶ciami salt.
  Potem porównaj± wyniki z zawarto¶ci± twojego pliku /etc/passwd. Jak
  znajd± jaki¶ identyczny ³añcuch, to maj± has³o na nastêpne konto.
  Nazywane jest to atakiem s³ownikowym i jest to jeden z
  najpopularniejszych sposobów na pozyskiwanie dostêpu do systemu przez
  osoby nieuprawnione.

  Je¶li siê nad tym zastanowisz, to zobaczysz, ¿e 8-znakowe has³o mo¿e
  zostaæ zakodowane na 4096 * 13 sposobów. Tak wiêc s³ownik sk³adaj±cy
  siê powiedzmy z 400.000 popularnych s³ów, nazw, imion, hase³ i ich
  prostych wariacji zmie¶ci³by siê z ³atwo¶ci± na dysku o pojemno¶ci
  4GB. W³amywacz musi go tylko posortowaæ i sprawdziæ czy który¶ z
  ³añcuchów nie jest has³em. Dysk o pojemno¶ci 4GB mo¿na kupiæ za ok.
  1000 dolarów, tak wiêc mie¶ci siê to w mo¿liwo¶ciach wiêkszo¶ci
  w³amywaczy systemowych.

  Je¶li w³amywacz zdobêdzie twój plik /etc/passwd, to musi on zakodowaæ
  swój s³ownik kluczem, który znajduje siê w tym pliku. Metoda ta mo¿e
  byæ wykorzystana przez przeciêtnego nastolatka z kilkoma megabajtami
  na dysku i komputerem klasy 486.

  Nawet bez du¿ej ilo¶ci wolnego miejsca na dysku, narzêdzia takie jak
  crack(1) mog± zwykle z³amaæ przynajmniej kilka hase³ z systemu z
  dostatecznie du¿± ilo¶ci± u¿ytkowników (zak³adaj±c, ¿e u¿ytkownicy
  maj± mo¿liwo¶æ samemu wybieraæ sobie has³a).

  Plik /etc/passwd zawiera tak¿e takie informacje jak ID u¿ytkownika i
  ID grupy, które s± u¿ywane przez wiêkszo¶æ programów. Dlatego plik
  /etc/passwd mmuussii pozostaæ odczytywalny dla ka¿dego. Je¶li chcia³e¶
  w³a¶nie zmieniæ prawa dostêpu do pliku /etc/passwd tak, ¿eby nikt nie
  móg³ go czytaæ (oprócz "root-a"), to pierwszym symptomem jaki by¶
  zauwa¿y³, to to, ¿e przy wydaniu polecenia ls -l pojawi³yby siê numery
  zamiast nazw u¿ytkowników.

  Pakiet Shadow Suite rozwi±zuje ten problem poprzez umieszczenie hase³
  w innym pliku (z regu³y jest to /etc/shadow). Plik /etc/shadow ma tak
  ustawione prawa dostêpu, ¿e nie mo¿e go czytaæ nikt, oprócz "root-a".
  Niektóre programy jak np. xlock, nie musz± mieæ mo¿liwo¶ci zmiany
  hase³, ale tylko ich odczytu. Programy te mog± albo byæ uruchamiane z
  prawem "suid root", albo mo¿esz dodaæ grupê shadow, która mia³aby
  tylko prawo odczytu pliku /etc/shadow. Program ten mo¿e wtedy nale¿eæ
  do grupy "shadow" i byæ uruchamiany z prawem "sgid".

  Przenosz±c zakodowane has³a do innego pliku, efektywnie zabraniamy
  w³amywaczom dostêpu do nich, co uniemo¿liwia ataki s³ownikowe.

  Dodatkowo pakiet Shadow Suite posiada wiele innych zalet:

  ·  Plik konfiguracyjny, w którym mo¿na ustawic warto¶ci domy¶lne
     podczas logowania (/etc/login.defs)

  ·  Narzêdzia do dodawania, modyfikacji i usuwania kont i grup.

  ·  Ustalanie "daty wa¿no¶ci" konta i jego wygasanie (expiration).

  ·  Przes³anianie hase³ dla grup. (opcjonalnie)

  ·  Has³a o podwójnej d³ugo¶ci (16 znaków) [NIE ZALECANE]

  ·  Lepsza kontrola nad wybieraniem hase³ przez u¿ytkowników.

  ·  Has³a przez telefon.

  ·  Programy do dodatkowej autentykacji [NIE ZALECANE]

  Instalacja pakietu Shadow Suite przyczynia siê do zwiêkszenia
  bezpieczeñstwa sieci opartej na Linux-ie, ale pozostaje jeszcze wiele
  innych rzeczy do zrobienia, aby zwiêkszyæ bezpieczeñstwo takiej sieci.
  Z czasem pojawi siê seria HOWTO po¶wiêcona bezpieczeñstwu.

  Na stronie po¶wiêconej bezpieczeñstwu w Linux-ie
  <http://bach.cis.temple.edu/linux/linux-security/> zawarte s± ró¿ne
  informacje na ten temat jak równie¿ ostrze¿enia o znanych dziurach w
  systemie.

  22..11..  CCzzeemmuu mmoo¿¿eesszz nniiee cchhcciieeææ pprrzzeess³³aanniiaaææ sswwoojjeeggoo pplliikkuu zz hhaass³³aammii ??

  Jest kilka okoliczno¶ci i konfiguracji, w których instalacja pakietu
  Shadow Suite nniiee bbyy³³aabbyy dobrym pomys³em:

  ·  Maszyna nie zawiera kont u¿ytkowników.

  ·  Twoja maszyna jest w sieci LAN i u¿ywa NIS (Network Information
     Services), aby obs³ugiwaæ nazwy u¿ytkowników i has³a na innych
     maszynach w tej samej sieci. (W³a¶ciwie mog³oby to byæ zrobione,
     ale wykracza poza ramy tego dokumentu i nie zwiêkszy³oby
     bezpieczeñstwa w znacznym stopniu.)

  ·  Twoja maszyna jest u¿ywana przez serwery terminali, aby weryfikowaæ
     u¿ytkowników poprzez NFS (Network File System), NIS albo jak±¶ inn±
     metodê.

  ·  Na twojej maszynie znajduje siê inne oprogramowanie, które
     autentykuje u¿ytkowników, a nie ma wersji tego oprogramowania dla
     shadow i nie masz ¼róde³.

  22..22..  FFoorrmmaatt pplliikkuu //eettcc//ppaasssswwdd..

  Nieprzes³oniêty plik /etc/passwd ma nastêpuj±cy format:

  identyfikator:has³o:UID:GID:imie_nazw:katalog:pow³oka

  Gdzie:

     iiddeennttyyffiikkaattoorr
        Nazwa (login) u¿ytkownika

     hhaass³³oo
        Zakodowane has³o

     UUIIDD
        Numer u¿ytkownika

     GGIIDD
        Numer domy¶lnej grupy dla u¿ytkownika

     iimmiiee__nnaazzww
        Imiê i nazwisko u¿ytkownika - W³a¶ciwie pole to nazywa siê GECOS
        (General Electric Comprehensive Operating System) i mog± tam byæ
        zapisane inne dane ni¿ tylko imiê i nazwisko Polecenia Shadow i
        strony podrêcznika systemowego nazywaj± to pole polem
        komentarza.

     kkaattaalloogg
        Katalog domowy u¿ytkownika (pe³na ¶cie¿ka)

     ppooww³³ookkaa
        Pow³oka dla danego u¿ytkownika (pe³na ¶cie¿ka)

  Na przyk³ad:

  login:Nkjg97jh7yff8:503:100:Imiê Nazwisko:/home/login:/bin/bash

  Gdzie Nk jest wartoci± salt a jg97jh7yff8 jest zakodowanym has³em.
  Zakodowane has³o z kluczem mog³oby równie dobrze wygl±daæ tak:
  ghHFgj75fR8iP a te dwa ³añcuchy to dok³anie te same has³a. Jest 4096
  mo¿liwo¶ci zakodowania pojedynczego has³a. {Przyk³adowym has³em jest
  tutaj

  Jak ju¿ pakiet Shadow Suite jest zainstalowany, to plik /etc/passwd
  zawiera:

  login:x:503:100:Imiê Nazwisko:/home/login:/bin/bash

  Znaczek "x" w tym przypadku jest po prostu czym¶ co wype³nia miejsce
  has³a. Format pliku /etc/passwd siê nie zmieni³, zmieni³o siê tylko
  miejsce przechowywania zakodowanego has³a. Oznacza to, ¿e ka¿dy
  program, który tylko czyta plik /etc/passwd,a nie zapisuje w nim
  has³a, bêdzie nadal dzia³a³ poprawnie.

  Has³a znajduj± siê obecnie w pliku /etc/shadow. (jest to domy¶lna
  nazwa)

  22..33..  FFoorrmmaatt pplliikkuu pprrzzeess³³aanniiaajj±±cceeggoo..

  Plik /etc/shadow zawiera nastêpuj±ce informacje:

  login:has³o:ostatnio_1970:mo¿e:musi:ostrz:dni:dni_1970:zarez

  Gdzie:

     llooggiinn
        patrz /etc/passwd

     hhaass³³oo
        Zakodowane has³o

     oossttaattnniioo__11997700
        Ilo¶æ dni od 1 Stycznia 1970, kiedy has³o by³o ostatnio
        modyfikowane

     mmoo¿¿ee
        Ilo¶æ dni w przeci±gu, których has³o mo¿e byæ zmienione
     mmuussii
        Ilo¶æ dni, po której has³o musi zostaæ zmienione

     oossttrrzz
        Ilo¶æ dni przed wyga¶niêciem has³a od jakiej nale¿y zacz±æ
        informowaæ u¿ytkownika o wyga¶niêciu has³a.

     ddnnii
        Ilo¶æ dni, po której has³o wygasa i konto jest blokowane

     ddnnii__11997700
        Ilo¶æ dni od 1 Stycznia 1970, po której konto jest blokowane

     zzaarreezz
        Pole zarezerwowane

  Poprzedni przyk³ad móg³ wiêc wygl±daæ tak:

  login:Nkjg97jh7yff8:9479:0:10000::::

  22..44..  PPrrzzeeggll±±dd ffuunnkkccjjii ccrryypptt((33))..

  Ze strony podrêcznika systemowego "man":

  "crypt jest funkcj± koduj±c± has³o. Oparta jest na algorytmie DES
  (Data Encryption Standard) z dozwolonymi wariacjami (miêdzy innymi),
  aby zniechêciæ do sprzêtowych rozwi±zañ poszukiwania klucza.

  Kluczem jest podane przez u¿ytkownika has³o. [Zakodowany ³añcuch jest
  warto¶ciami NULL]

  Salt jest ³añcuchem 2-znakowym wybranym ze zbioru [a-zA-Z0-9]. £añuch
  ten jest u¿yty po to, aby zaburzyæ algorytm w jeden z 4096 sposobów.

  Bior±c 7 najmniej znacz±cych bitów ka¿dego znaku z klucza otrzymujemy
  56-bitowy klucz. Ten 56-bitowy klucz jest u¿ywany, do powtórnego
  kodowania sta³ego ³añcucha (zwykle s± to znaki NULL). Zwrócona warto¶æ
  wskazuje na zakodowane has³o - seriê 13 drukowalnych znaków ASCII (dwa
  pierwsze znaki reprezentuj± warto¶æ salt). Warto¶æ zwracana wskazuje
  na sta³e dane, których zawarto¶æ jest zmieniana przy ka¿dym wywo³aniu.

  UUwwaaggaa:: Liczba mo¿liwych warto¶ci klucza to 2^56 = 7,2E16 (oko³o 72
  biliardów). Wyczerpuj±ce poszukiwania tego klucza ss±± mmoo¿¿lliiwwee przy
  wykorzystaniu wielu równolegle wspó³pracuj±cych komputerów.
  Oprogramowanie, takie jak crack(1), jest dostêpne i szuka ono takich
  kluczy, które z regu³y u¿ywane s± przez ludzi. Dlatego w³a¶nie przy
  wybieraniu has³a powinno siê unikaæ przynajmniej zwyk³ych s³ów. Zaleca
  siê, u¿ywanie programu passwd(1), które podczas zmiany has³a sprawdza
  czy nowe has³o nie jest przesadnie proste.

  Algorytm DES ma w sobie pewne kruczki, które czyni± u¿ycie interfejsu
  crypt(3) bezu¿ytecznym w przypadku innym ni¿ autentykacja hase³. Je¶li
  masz zamiar u¿ywaæ interfejsu crypt(3) do kryptografii nie rób tego:
  zdob±d¼ dobr± ksi±¿kê na temat kodowania (encryption) i jedn± z
  szeroko dostêpnych bibliotek DES."

  Wiêkszo¶æ pakietów Shadow Suite zawiera kod zwiêkszaj±cy ilo¶æ znaków
  w ha¶le do 16. Eksperci od DES-a s± temu przeciwni, poniewa¿ w takim
  przypadku kodowanie najpierw odbywa siê dla lewej strony d³u¿szego
  has³a, a potem dla prawej strony. Z powodu tego jak dzia³a crypt, mo¿e
  to stworzyæ mniej bezpiecznie zakodowane has³o ni¿ wtedy, gdy u¿yte
  zosta³oby has³o krótsze. Dodatkowo, jest ma³o prawdopodobne, ¿eby
  u¿ytkownik by³ w stanie zapamiêtaæ has³o 16-znakowe.

  Trwaj± w tej chwili prace, które maj± na celu zast±pienie
  dotychczasowego algorytmu autentykacji czym¶ bardziej bezpiecznym oraz
  z obs³ug± d³u¿szych hase³ (szczególnie algorytmem MD5) oraz
  pozostawienie kompatybilno¶ci z metod± wykorzystuj±c± crypt.

  Je¶li szukasz dobrej ksi±¿ki na temat kodowania polecam:

          "Applied Cryptography: Protocols, Algorithms, and Source Code in C"
          by Bruce Schneier <schneier@chinet.com>
          ISBN: 0-471-59756-2

  33..  ZZddoobbyywwaanniiee ppaakkiieettuu SShhaaddooww SSuuiittee..

  33..11..  HHiissttoorriiaa ppaakkiieettuu SShhaaddooww SSuuiittee ddllaa LLiinnuuxx--aa..

  NNIIEE UU¯¯YYWWAAJJ PPAAKKIIEETTÓÓWW WWYYMMIIEENNIIOONNYYCCHH WW TTEEJJ SSEEKKCCJJII,, SS¡¡ WW NNIICCHH PPRROOBBLLEEMMYY ZZ
  BBEEZZPPIIEECCZZEEÑÑSSTTWWEEMM..

  Orygina³ pakietu Shadow Suite zosta³ napisany przez John F. Haugh II.

  Jest kilka wersji, które by³y u¿ywane na Linux-ie:

  ·  Orygina³ to shadow-3.3.1

  ·  shadow-3.3.1-2 to ³ata przeznaczona specjalnie na Linux-a zrobiona
     przez Florian La Roche <flla@stud.uni-sb.de>. Zawiera ona tak¿e
     dalsze ulepszenia.

  ·  Pakiet shadow-mk zosta³ skomponowany specjalnie dla Linux-a.

  Pakiet shadow-mk zawiera pakiet shadow-3.3.1 dystrybuowany przez John
  F. Haugh II wraz z ³at± shadow-3.3.1-2 patch, kilka poprawek
  zrobionych przez Mohan Kokal <magnus@texas.net>, które uczyni³y
  instalacjê o wiele ³atwiejsz±, ³atê zrobion± przez Joseph R.M.
  Zbiciak, która eliminuje dziury w programie /bin/login zwi±zane z
  opcjami -f, -h oraz kilka innych ³at.

  Pakiet shadow-mk by³ pakietem ppoopprrzzeeddnniioo rekomendowanym, ale powinien
  zostaæ zamieniony z powodu pprroobblleemmóóww z bezpieczeñstwem zwi±zanych z
  programem login.

  W pakietach 3.3.1, 3.3.1-2 oraz shadow-mk s± problemy zwi±zane z
  programem login. B³±d ten to niesprawdzanie d³ugo¶ci podawanego
  identyfikatora. Powoduje to przepe³nienie bufora, co z kolei powoduje
  za³amania (crashes) programu albo gorzej. Podobno to przepe³nienie
  bufora mo¿e byæ wykorzystane przez kogo¶, kto posiada konto w systemie
  w po³±czeniu z bibliotekami dzielonymi, aby uzyskaæ przywileje rroooott--aa.
  Nie bêdê opisywa³ jak dok³adnie dzia³a ten b³±d poniewa¿ jest du¿o
  systemów Linux-owych, które s± zara¿one, ale systemy z zainstalowanymi
  tymi pakietami Shadow Suite oraz wiêkszo¶æ systemów w wersji przed-ELF
  bbeezz pakietu Shadow Suite s± podatne na atak!

  Wiêcej informacji na ten temat znajdziesz na stronie po¶wiêconej
  bezpieczeñstwu w Linux-ie <http://bach.cis.temple.edu/linux/linux-
  security/>. (Shared Libraries and login Program Vulnerability)
  33..22..  GGddzziiee zznnaallee¼¼ææ ppaakkiieett SShhaaddooww SSuuiittee..

  Jedyny polecany pakiet Shadow Suite jest wci±¿ w wersji BETA, chocia¿
  najnowsze wersje s± bezpieczne w ¶rodowisku produkcji i nie zawieraj±
  podatnego na ataki programu login.

  W pakiecie u¿ywane jest nastêpuj±ce nazewnictwo:

  shadow-RRMMDD.tar.gz

  gdzie RRMMDD oznacza datê wprowadzenia pakietu w obieg.

  Wersja ta ostatecznie bêdzie wersj± 3.3.3, kiedy zakoñczone zostan±
  testy w wersji BETA, a obs³ugiwana jest przez Marka Micha³kiewicza
  <marekm@i17linuxb.ists.pwr.wroc.pl>.

  Dostêpna jest jako shadow-current.tar.gz
  <ftp://i17linuxb.ists.pwr.wroc.pl/pub/linux/shadow/>.

  Dostêpna jest tak¿e pod adresem ftp.icm.edu.pl
  <ftp://ftp.icm.edu.pl/pub/Linux/shadow/>.

  Powiniene¶ u¿yæ najnowszej dostêpnej wersji.

  NNIIEE powiniene¶ u¿ywaæ wersji ssttaarrsszzeejj ni¿ shadow-960129 poniewa¿
  wystêpuje tam opisany powy¿ej problem z programem login.

  Je¶li piszê o pakiecie Shadow Suite, to mam na my¶li ten w³a¶nie plik.
  Zak³ada siê te¿, ¿e tej w³a¶nie wersji u¿ywasz.

  Aby napisaæ ten dokument u¿y³em tej w³a¶nie wersji pakietu.

  Je¶li wcze¶niej u¿ywa³e¶ pakietu shadow-mk, powiniene¶ zaktualizowaæ
  go do tej wersji i ponownie skompilowaæ wszystko to, co pierwotnie
  przekompilowa³e¶,

  33..33..  CCoo jjeesstt zzaawwaarrttee ww ppaakkiieecciiee SShhaaddooww SSuuiittee..

  Pakiet ten zawiera zastêpcze wersje dla programów:
  su, login, passwd, newgrp, chfn, chsh, id

  Pakiet ten zawiera tak¿e nowe programy: chage, newusers, dpasswd,
  gpasswd, useradd, userdel, usermod, groupadd, groupdel, groupmod,
  groups, pwck, grpck, lastlog, pwconv, pwunconv.

  Dodatkowo znajduje siê tam tak¿e biblioteka libshadow.a przeznaczona
  do pisania i kompilowania programów, które potrzebuj± dostêpu do hase³
  u¿ytkowników.

  Zawarte s± tak¿e strony podrêcznika systemowego do wszystkich
  programów.

  Znajduje siê tam tak¿e plik konfiguracyjny dla programu login, który
  zostanie zainstalowany jako /etc/login.defs.

  44..  KKoommppiillaaccjjaa pprrooggrraammóóww..

  44..11..  RRoozzppaakkoowwyywwaanniiee aarrcchhiiwwóóww..

  Pierwszym krokiem po ¶ci±gniêciu programu jest rozpakowanie go. Pakiet
  jest w formie starowanej i skompresowany programem gzip, tak wiêc
  najpierw przenie¶ go do /usr/src, a potem napisz:

  tar -xzvf shadow-current.tar.gz

  Powstanie katalog /usr/src/shadow-RRMMDD, w którym znajd± siê ¼ród³a
  pakietu.

  44..22..  KKoonnffiigguurraaccjjaa ww pplliikkuu ccoonnffiigg..hh

  Pierwsz± rzecz± jak± musisz zrobiæ, to skopiowaæ odpowiednie pliki
  Makefile i config.h:

  cd /usr/src/shadow-RRMMDD
  cp Makefile.linux Makefile
  cp config.h.linux config.h

  Potem powiniene¶ przejrzeæ plik config.h. Zawiera on definicje dla
  niektórych opcji konfiguracyjnych. Je¶li u¿ywasz _z_a_l_e_c_a_n_e_g_o pakietu,
  to polecam wy³±czenie na pocz±tek przes³anianie hase³ grup.

  Domy¶lnie opcja ta jest w³±czona. Aby to wy³±czyæ, wyedytuj plik
  config.h i zmieñ #define SHADOWGRP na #undef SHADOWGRP. Na pocz±tek
  proponuje to wy³aczyæ, a pó¼niej jak bêdziesz chcia³ hase³ dla grup i
  administratorów grup, to mo¿esz przekompilowaæ pakiet. Je¶li zostawisz
  tê opcjê w³±czon± mmuussiisszz stworzyæ plik /etc/gshadow.

  W³±czanie opcji pozwalaj±cej na d³u¿sze has³a nniiee jest zalecane -
  patrz wy¿ej.

  Opcja AUTOSHADOW zosta³a zaprojektowana, aby umo¿liwiæ dzia³anie
  programom, które ignoruj± przes³anianie hase³. Teoretycznie brzmi to
  dobrze, ale niestety nie dzia³a poprawnie. Je¶li w³aczysz tê opcjê i
  program zostanie uruchomiony z przywilejami "root-a", mo¿e on wywo³aæ
  funkcjê getpwnam() jako "root", a pó¼niej zapisaæ zmienion± pozycjê
  spowrotem do pliku /etc/passwd (ii hhaass³³oo nniiee jjeesstt jjuu¿¿ pprrzzeess³³oonniiêêttee).

  Do takich programów zaliczaj± siê chfn i chsh. (Nie mo¿esz obej¶æ tego
  przez zamianê rzeczywistego uid z efektywnym uid przed wywo³aniem
  funkcji getpwnam() poniewa¿ root tak¿e mo¿e u¿ywaæ chfn i chsh.)

  To samo ostrze¿enie jest s³uszne je¶li kompilujesz bibliotekê libc,
  która posiada opcjê SHADOW_COMPAT, która robi to samo. NNiiee ppoowwiinnnnaa ona
  byæ u¿ywana! Je¶li zakodowane has³a zaczn± siê pojawiaæ spowrotem w
  pliku /etc/passwd, to to w³a¶nie jest przyczyn±.

  Je¶li u¿ywasz wcze¶niejszej wersji biblioteki ni¿ 4.6.27, bêdziesz
  musia³ zrobiæ trochê wiêcej zmian w pliku config.h i Makefile.

  W pliku config.h zmieñ:

  #define HAVE_BASENAME

  na:

  #undef HAVE_BASENAME

  A nastêpnie w pliku Makefile zmieñ:

  SOBJS = smain.o env.o entry.o susetup.o shell.o \
          sub.o mail.o motd.o sulog.o age.o tz.o hushed.o

  SSRCS = smain.c env.c entry.c setup.c shell.c \
          pwent.c sub.c mail.c motd.c sulog.c shadow.c age.c pwpack.c rad64.c \
          tz.c hushed.c

  na:

  SOBJS = smain.o env.o entry.o susetup.o shell.o \
          sub.o mail.o motd.o sulog.o age.o tz.o hushed.o basename.o

  SSRCS = smain.c env.c entry.c setup.c shell.c \
          pwent.c sub.c mail.c motd.c sulog.c shadow.c age.c pwpack.c rad64.c \
          tz.c hushed.c basename.c

  Zmiany te powoduj± zawarcie kodu z basename.c, który zawiera siê w
  libc 4.6.27 i pó¼niejszych.

  44..33..  KKooppiiee zzaappaassoowwee ttwwooiicchh oorryyggiinnaallnnyycchh pprrooggrraammóóww..

  Dobrym pomys³em bêdzie zrobienie kopii zapasowych programów, które
  zostan± zamienione przez Shadow Suite. W dystrybucji Slackware 3.0 s±
  to:

  ·  /bin/su

  ·  /bin/login

  ·  /usr/bin/passwd

  ·  /usr/bin/newgrp

  ·  /usr/bin/chfn

  ·  /usr/bin/chsh

  ·  /usr/bin/id

  Pakiet w wersji BETA ma mo¿liwo¶æ wykonania tego poprzez program make,
  ale jest to w komentarzu w pliku Makefile, poniewa¿ ró¿ne dystrybucje
  umieszczaj± te programy w ró¿nych miejscach. Mo¿na to zrobiæ pisz±c:
  make save, ale najpierw trzeba skasowaæ znaki # z pliku Makefile od
  linii: save:

  Powiniene¶ tak¿e zrobiæ kopiê zapasow± pliku /etc/passwd, ale b±d¼
  ostro¿ny, ¿eby¶ nie zmaza³ programu passwd w katalogu /etc.

  44..44..  PPoolleecceenniiee mmaakkee

  _A_b_y _z_a_i_n_s_t_a_l_o_w_a_æ _p_a_k_i_e_t _m_u_s_i_s_z _b_y_æ _z_a_l_o_g_o_w_a_n_y _j_a_k_o _"_r_o_o_t_".

  Uruchom make, aby skompilowaæ programy wykonywalne:

  make all

  Mo¿esz zobaczyæ ostrze¿enie: rcsid defined but not used. Wszystko jest
  w porz±dku, poniewa¿ autor u¿ywa wersji kontrolnej pakietu.

  55..  IInnssttaallaaccjjaa

  55..11..  ZZaaooppaattrrzz ssiiêê ww ddyysskkiieettkkêê ssttaarrttooww±± ww rraazziiee ggddyybbyy¶¶ ccoo¶¶ ppooppssuu³³..

  Je¶li co¶ powa¿nie pójdzie nie tak, by³oby dobrze, gdyby¶ mia³
  dyskietkê startow±. Je¶li masz dyskietki boot/root z czasów
  instalacji, to w porz±dku, w innym przypadku przeczytaj Bootdisk-HOWTO
  <http://ftp.icm.edu.pl/pub/Linux/Documentation/HOWTO/Bootdisk-
  HOWTO.html>, które opisuje jak zrobiæ dyskietkê startow±.

  55..22..  UUssuuwwaanniiee zzdduupplliikkoowwaannyycchh ssttrroonn ppooddrrêêcczznniikkaa ssyysstteemmoowweeggoo..

  Powiniene¶ tak¿e przenie¶æ strony podrêcznika systemowego, które
  zostan± zast±pione. Nawet je¶li jeste¶ na tyle odwa¿ny, ¿e instalujesz
  Shadow Suite bez kopii zapasowej, to i tak bêdziesz chcia³ przenie¶æ
  stare strony podrêcznika systemowego. Nowe strony normalnie nie
  usunê³yby starych, poniewa¿ te drugie s± przypuszczalnie
  skompresowane.

  Mo¿esz u¿yæ takiej kombinacji poleceñ: man -aW polecenie i locate
  polecenie, aby zlokalizowaæ strony, które maj± byæ usuniête czy
  przeniesione. Raczej ³atwiej zrobiæ to przed poleceniem make install.

  Je¶li u¿ywasz dystrybucji Slackware 3.0, to oto strony, które
  powiniene¶ usun±æ/przesun±æ:

  ·  /usr/man/man1/chfn.1.gz

  ·  /usr/man/man1/chsh.1.gz

  ·  /usr/man/man1/id.1.gz

  ·  /usr/man/man1/login.1.gz

  ·  /usr/man/man1/passwd.1.gz

  ·  /usr/man/man1/su.1.gz

  ·  /usr/man/man5/passwd.5.gz

  W katalogu /var/man/cat[1-9] mog± znajdowaæ siê strony o tych samych
  nazwach, które tak¿e powinny zostaæ usuniête/przeniesione.

  55..33..  PPoolleecceenniiee mmaakkee iinnssttaallll

  Jeste¶ gotów, aby napisaæ (zrób to jako "root"):

  make install

  Zainstaluje to nowe programy i programy zastêpcze oraz ustawi
  odpowiednie prawa dostêpu do plików. Zostan± tak¿e zainstalowane
  strony podrêcznika systemowego.

  S± tu tak¿e instalowane pliki nag³ówkowe w odpowiednich miejscach w
  /usr/include/shadow.

  Je¶li u¿ywasz wersji BETA tego pakietu, to musisz rêcznie skopiowaæ
  plik login.defs do katalogu /etc i upewniæ siê, ¿e ttyyllkkoo ""rroooott"" mo¿e
  go modyfikowaæ.

  cp login.defs /etc
  chmod 600 /etc/login.defs

  Plik ten jest plikiem konfiguracyjnym dla programu login.  Powiniene¶
  go przejrzeæ i odpowiednio zmodyfikowaæ jego zawarto¶æ zgodnie z
  twoimi wymaganiami. To tutaj decydujesz, z których terminalli (tty)
  mo¿e zalogowaæ siê "root" oraz ustawiasz inne opcje bezpieczeñstwa
  (np. domy¶lne wygasanie hase³).

  55..44..  PPoolleecceenniiee ppwwccoonnvv

  Nastêpnym krokiem jest polecenie pwconv. Musi ono tak¿e byæ wykonane
  jako "root" i najlepiej w katalogu /etc:

  cd /etc
  /usr/sbin/pwconv

  Program pwconv tworzy z pliku /etc/passwd dwa pliki: /etc/npasswd i
  /etc/nshadow.

  Dostêpny jest tak¿e program pwunconv je¶li musisz zrobiæ normalny plik
  /etc/passwd z plików /etc/passwd i /etc/shadow.

  55..55..  ZZmmiiaannyy nnaazzww pplliikkóóww nnppaasssswwdd ii nnsshhaaddooww

  Teraz, kiedy ju¿ wykona³e¶ polecenie pwconv, stworzy³e¶ dwa pliki -
  /etc/npasswd i /etc/nshadow. Ich nazwy musz± zostaæ zmienione
  odpowiednio na /etc/passwd i /etc/shadow.  Chcemy tak¿e zrobiæ kopiê
  oryginalnego pliku /etc/passwd i upewniæ siê, ¿e tylko "root" mo¿e go
  czytaæ. Kopiê zapasow± umie¶cimy w katalogu domowym "root-a":

  cd /etc
  cp passwd ~/passwd
  chmod 600 ~/passwd
  mv npasswd passwd
  mv nshadow shadow

  Powiniene¶ siê tak¿e upewniæ, czy w³a¶ciciel plików i prawa dostêpu s±
  poprawne. Je¶li masz zamiar u¿ywaæ _X_W_i_n_d_o_w_s, to programy xlock i xdm
  musz± mieæ mo¿liwo¶æ odczytu pliku shadow, ale nie zapisu.

  S± dwa sposoby na zrobienie tego. Mo¿esz ustawiæ bit "SUID" dla
  programu xlock (chmod u+s xlock); xdm ma z regu³y ten bit ustawiony.
  Albo mo¿esz przydzieliæ plik /etc/shadow do grupy shadow, ale zanim to
  zrobisz, sprawd¼ czy masz grupê shadow w pliku /etc/group. W³a¶ciwie
  ¿aden z u¿ytkowników systemu nie powinien byæ w tej grupie.

  cd /etc
  chown root.root passwd
  chown root.shadow shadow
  chmod 0644 passwd
  chmod 0640 shadow

  Twój system ma teraz przes³oniête has³a. Powiniene¶ teraz przej¶æ na
  inny wirtualny terminal i sprawdziæ czy mo¿esz siê zalogowaæ

  ZZrróóbb ttoo tteerraazz -- nnaapprraawwddêê !!

  Je¶li nie mo¿esz, to co¶ jest nie tak ! Aby powróciæ do stanu sprzed
  instalacji _S_h_a_d_o_w _S_u_i_t_e zrób to:

  cd /etc
  cp ~/passwd passwd
  chmod 644 passwd

  Przywracasz w ten sposób stare pliki, które wcze¶niej zachowa³e¶, na
  ich w³a¶ciwe miejsce.

  66..  IInnnnee pprrooggrraammyy,, kkttóórree mmoo¿¿ee mmuussiisszz uuaakkttuuaallnniiææ aallbboo ""zzaa³³aattaaææ""..

  Pomimo, i¿ pakiet _S_h_a_d_o_w _S_u_i_t_e posiada zastêpcze programy dla
  wiêkszo¶ci programów, które potrzebuj± dostepu do hase³, to prawie w
  ka¿dym systemie s± jeszcze dodatkowe programy, które potrzebuj±
  dostêpu do hase³.

  Je¶li masz dystrybucjê _D_e_b_i_a_n (a nawet je¶li nie masz), mo¿esz znale¼æ
  ¼ród³a programów, które musz± byæ przerobione pod tym adresem
  <ftp://ftp.icm.edu.pl/pub/Linux/debian/stable/source>.

  Reszta tej sekcji opisuje jak uaktualniæ programy: adduser, wu_ftpd,
  ftpd, pop3d, xlock, xdm i sudo tak, aby obs³ugiwa³y przes³oniête
  has³a.

  Aby dowiedzieæ siê jak zrobiæ obs³ugê przes³oniêtych hase³ w
  jakimkolwiek innym programie zobacz sekcjê ``Obs³uga przes³anianych
  hase³ w programach w C''. (Programy te i tak musz± byæ uruchomione z
  bitem "SUID" dla "root-a" albo grupy shadow, aby rzeczywi¶cie mieæ
  dostêp do hase³.)

  66..11..  PPrrooggrraamm aadddduusseerr zz ddyyssttrryybbuuccjjii SSllaacckkwwaarree..

  Dystrybucja Slackware (i pewnie inne) zawiera interaktywny program
  s³u¿±cy do dodawania nowych u¿ytkowników - /sbin/adduser.  Wersjê tego
  programu obs³uguj±c± przes³oniête has³a mo¿na pobraæ np. z
  ftp.icm.edu.pl z katalogu  /pub/Linux/sunsite/system/admin/accounts/.

  Ja zalecam u¿ywanie programów, które s± dostarczane wraz z pakietem
  _S_h_a_d_o_w _S_u_i_t_e (useradd, usermod, i userdel) zamiast adduser z
  dystrybucji Slackware. Co prawda nauczenie siê jak siê nimi pos³ugiwaæ
  zabiera trochê czasu, ale op³aca siê to poniewa¿ masz o wiele wiêksz±
  kontrolê i maj± one poprawne blokowanie plików (file locking)
  /etc/passwd i /etc/shadow - adduser tego nie robi.

  Wiêcej informacji w nastêpnej sekcji - ``Wprowadzanie pakietu Shadow
  Suite do u¿ycia.''.

  Ale je¶li ju¿ musisz go mieæ, oto co musisz zrobiæ:

  tar -xzvf adduser.shadow-1.4.tar.gz
  cd adduser
  make clean
  make adduser
  chmod 700 adduser
  cp adduser /sbin

  66..22..  SSeerrwweerr wwuu__ffttppdd..

  Wraz z wiêkszo¶ci± dystrybucji Linux-a przychodzi serwer wu_ftpd.
  Je¶li twoja dystrybucja nie instaluje domy¶lnie pakietu _S_h_a_d_o_w _S_u_i_t_e,
  to twój serwer wu_ftpd nie bêdzie skompilowany z obs³ug±
  przes³oniêtych hase³. wu_ftpd jest odpalany z inetd/tcpd jako proces
  _"_r_o_o_t_-_a_". Je¶li twój demon wu_ftpd jest star± wersj±, to bêdziesz
  chcia³ j± uaktualniæ tak czy inaczej poniewa¿ stare wersje maj± pewien
  b³±d, który kompromituje konto _"_r_o_o_t_". (Wiêcej informacji znajdziesz
  na Stronie Domowej Bezpieczeñstwa na Linuxie
  <http://bach.cis.temple.edu/linux/linux-security/Linux-Security-
  FAQ/Linux-wu.ftpd-2.4-Update.html>).

  Na szczê¶cie musisz tylko zdobyæ ¿ród³a tego programu i skompilowaæ go
  z w³±czon± obs³ug± "Shadow password".

  Je¶li nie masz systemu ELF, to serwer wu_ftpd mo¿esz znale¼æ na
  SUNSite Polska
  <ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/system/network/file-
  transfer/> - nazywa siê wu_ftpd-2.4-fixed.tar.gz

  Jak ju¿ ¶ci±gniesz te ¼ród³a, to wtedy napisz:

  cd /usr/src
  tar -xzvf wu-ftpd-2.4-fixed.tar.gz
  cd wu-ftpd-2.4-fixed
  cp ./src/config/config.lnx.shadow ./src/config/config.lnx

  Potem zmieñ w pliku ./src/makefiles/Makefile.lnx liniê:

  LIBES = -lbsd -support

  na:

  LIBES = -lbsd -support -lshadow

  Teraz mo¿esz uruchomiæ skrypt kompiluj±cy i zainstalowaæ pakiet:

  cd /usr/src/wu-ftpd-2.4-fixed
  /usr/src/wu-ftp-2.4.fixed/build lnx
  cp /usr/sbin/wu.ftpd /usr/sbin/wu.ftpd.old
  cp ./bin/ftpd /usr/sbin/wu.ftpd

  Polecenia te powoduj± u¿ycie pliku konfiguracyjnego z obs³ug± hase³
  przes³anianych dla Linux-a, skompilowanie i instalacjê serwera.

  U siebie na Slackware 2.3 musia³em dodatkowo przed kompilacj± zrobiæ
  co¶ takiego:

  cd /usr/include/netinet
  ln -s in_systm.h in_system.h
  cd -

  Zg³aszane by³y problemy z kompilacj± na systemie binarnym ELF, ale
  wersja BETA nastêpnej wersji dzia³a dobrze. Mo¿na j± znale¼æ pod
  adresem ftp.icm.edu.pl
  <ftp://ftp.icm.edu.pl/pub/Linux/sunsite/distributions/slackware/source/n/tcpip>
  pod nazw± wu-ftp-2.4.2-beta-10.tar.gz.

  Jak ju¿ ¶ci±gniesz serwer umie¶æ go w /usr/src i napisz:

  cd /usr/src
  tar -xzvf wu-ftpd-2.4.2-beta-9.tar.gz
  cd wu-ftpd-beta-9
  cd ./src/config

  Potem zmieñ w pliku config.lnx:

  #undef SHADOW.PASSWORD

  na:

  #define SHADOW.PASSWORD

  Potem:

  cd ../Makefiles

  i zmieñ w pliku Makefile.lnx

  LIBES = -lsupport -lbsd # -lshadow

  na:

  LIBES = -lsupport -lbsd  -lshadow

  Nastêpnie skompiluj i zainstaluj:

  cd ..
  build lnx
  cp /usr/sbin/wu.ftpd /usr/sbin/wu.ftpd.old
  cp ./bin/ftpd /usr/sbin/wu.ftpd

  Zauwa¿, ¿e powiniene¶ sprawdziæ w /etc/inetd.conf katalog, w którym
  twój serwer rzeczywi¶cie siê znajduje. Powiadomiono mnie, ¿e niektóre
  dystrybucje umieszczaj± demony serwerów w innych miejscach, a wtedy
  wu_ftpd mo¿e siê znajdowaæ gdzie indziej.

  66..33..  SSttaannddaarrddoowwyy ffttppdd..

  Je¶li masz u siebie standardowy serwer ftpd, zaleca³bym zmianê na
  wu_ftpd. Poza znan± dziur± omówion± wcze¶niej, wu_ftpd jest uznany za
  bardziej bezpieczny.

  Je¶li nalegasz na standardowy, albo potrzebujesz obs³ugi _N_I_S, to na
  SUNSite Polska
  <ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/system/network/file-
  transfer/> znajdziesz ftpd-shadow-nis.tgz.

  66..44..  ppoopp33dd ((PPoosstt OOffffiiccee PPrroottooccooll 33))

  Je¶li potrzebujesz obs³ugi _P_o_s_t _O_f_f_i_c_e _P_r_o_t_o_c_o_l _3, bêdziesz musia³
  skompilowaæ ponownie program pop3d. Normalnie jest on uruchamiany
  przez inetd/tcpd jako "root".

  Na SUNSite Polska
  <ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/system/mail/pop/> dostêpne s±
  dwie wersje:

  ·  pop3d-1.00.4.linux.shadow.tar.gz

  ·  pop3d+shadow+elf.tar.gz

  Obie s± raczej proste do zainstalowania.

  66..55..  xxlloocckk

  Je¶li zainstalujesz pakiet Shadow Suite i uruchomisz _X_W_i_n_d_o_w_s, a
  nastêpnie zablokujesz (lock) ekran nie uaktualniaj±c programu xlock,
  bêdziesz musia³ u¿yæ CTRL+ALT+Fx, aby prze³±czyæ siê na wirtualn±
  konsolê tekstow± (je¶li masz jak±¶), zalogowaæ siê i zlikwidowaæ
  proces xlock (albo u¿yæ CTRL+ALT+BACKSPACE ¿eby zamkn±æ XWindows). Na
  szczê¶cie uaktualnienie programu xlock jest do¶æ proste.

  Je¶li masz XFree86 wersja 3.x.x, przypuszczalnie u¿ywasz xlockmore
  (który jest wspania³ym "screensaver-em" w po³aczeniu z "lock").
  Nastêpuj±cy pakiet obs³uguje przes³oniête has³a - xlockmore-3.5.tgz a
  dostêpny jest z SUNSite Polska
  <ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/X11/xutils/screensavers/>.
  Je¶li masz starsz± wersjê zalecam uaktualnienie do tej.

  Oto "z grubsza" to, co musisz zrobiæ:

  ·  ¦ci±gnij xlockmore i umie¶æ w /usr/src

  ·  rozpakuj: tar -xzvf xlockmore-3.7.tgz

  ·  zmieñ w pliku /usr/X11R6/lib/X11/config/linux.cf liniê

     #define HasShadowPasswd NO

  na:

  #define HasShadowPasswd YES

  ·  skompiluj pliki wykonywalne:

     cd /usr/src/xlockmore
     xmkmf
     make depend
     make

  ·  potem przenie¶ wszystko w odpowiednie miejsce i uaktulanij prawa
     dostêpu i w³a¶cicieli plików

     cp xlock /usr/X11R6/bin/
     cp XLock /var/X11R6/lib/app-defaults/
     chown root.shadow /usr/X11R6/bin/xlock
     chmod 2755 /usr/X11R6/bin/xlock
     chown root.shadow /etc/shadow
     chmod 640 /etc/shadow

  Twój xlock bêdzie teraz dzia³a³ poprawnie.

  66..66..  xxddmm

  xdm jest programem, który prezentuje ekran "loguj±cy" dla XWindows.
  Niektóre systemy startuj± ten program kiedy system ma siê uruchomiæ w
  odpowiednim "runlevel-u" (zobacz /etc/inittab).

  Je¶li zainstalowa³e¶ przes³aniane has³a, musisz uaktulaniæ ten
  program. Na szczê¶cie jest to do¶æ proste:

  xdm.tar.gz mo¿na ¶ci±gn±æ z SUNSite Polska
  <ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/X11/xutils/>.

  ¦ci±gnij ten plik i umie¶æ go w /usr/src, potem go rozpakuj: tar -xzvf
  xdm.tar.gz.

  Zmieñ w pliku /usr/X11R6/lib/X11/config/linux.cf liniê

  #define HasShadowPasswd NO

  na:

  #define HasShadowPasswd YES

  Skompiluj pliki wykonywalne:

  cd /usr/src/xdm
  xmkmf
  make depend
  make

  Potem umie¶æ wszystko na swoim miejscu cp xdm /usr/X11R6/bin/.

  xdm jest uruchamiany jako "root" tak wiêc nie musisz zmieniaæ jego
  praw dostêpu.

  66..77..  ssuuddoo

  Program sudo pozwala administratorowi na udostêpnianie zwyk³ym
  u¿ytkownikom programów, które wymagaj± uprawnieñ "root-a". Jest to
  po¿yteczne poniewa¿ mo¿na ograniczaæ dostêp do konta "root" i
  jednocze¶nie pozwalaæ u¿ytkownikom np. montowaæ urz±dzenia.

  sudo musi przeczytaæ has³o poniewa¿ weryfikuje u¿ytkownika kiedy jest
  uruchamiane. sudo jest uruchamiane z bitem SUID "root" tak wiêc nie ma
  problemu z dostêpem do pliku /etc/shadow.

  Program ten z obs³ug± hase³ przes³anianych dostêpny jest na SUNSite
  Polska <ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/system/admin> pod
  nazw± sudo-1.2-shadow.tgz.

  UUwwaaggaa:: Podczas instalacji tego programu usuniêty zostanie plik
  /etc/sudoerrs i zast±piony domy¶lnym przychodz±cym razem z pakietem.
  Tak wiêc zrób sobie kopiê zapasow± je¶li robi³e¶ tam jakie¶ zmiany.
  Albo mo¿esz usun±æ linijkê kasuj±c± ten plik z pliku Makefile.

  Obs³uga przes³anianych hase³ jest ju¿ ustawiona w pakiecie, tak wiêc
  wszystko co trzeba zrobiæ, to przekompilowaæ go. Po umieszczeniu go w
  /usr/src napisz:

  cd /usr/src
  tar -xzvf sudo-1.2-shadow.tgz
  cd sudo-1.2-shadow
  make all
  make install

  66..88..  iimmaappdd ((EE--MMaaiill ppaakkiieett ppiinnee))..

  imapd jest serwerem poczty elektronicznej podobnym do pop3d.  imapd
  przychodzi wraz z pakietem _P_i_n_e _E_-_M_a_i_l. Dokumentacja dostarczana wraz
  z tym pkaietem twierdzi, ¿e domy¶lnym dla systemów Linux jest
  w³±czenie obs³ugi przes³anianych hase³. Ja jednak przekona³em siê, ¿e
  nie jest to prawda. Id±c dalej, kombinacja skrypt tworz±cy - Makefile
  bardzo utrudnia dodanie biblioteki libshadow.a podczas kompilacji,
  wiêc nie by³em w stanie dodaæ obs³ugi hase³ przes³anianych do imapd.

  Je¶li komu¶ siê to uda³o, to proszê o opis a ja umieszczê go w tym
  punkcie.

  66..99..  ppppppdd ((SSeerrwweerr PPrroottookkoo³³uu PPooiinntt--ttoo--PPooiinntt))

  Serwer pppd mo¿e zostaæ tak ustawiony, aby u¿ywa³ ró¿nych typów
  autentykacji:
  _P_a_s_s_w_o_r_d _A_u_t_h_e_n_t_i_c_a_t_i_o_n _P_r_o_t_o_c_o_l (PAP) i _C_r_y_p_t_o_g_r_a_p_h_i_c _H_a_n_d_s_h_a_k_e
  _A_u_t_h_e_n_t_i_c_a_t_i_o_n _P_r_o_t_o_c_o_l (CHAP). Serwer pppd zwykle czyta ³añuchy hase³
  z /etc/ppp/chap-secrets i/albo z /etc/ppp/pap-secrets. Je¶li u¿ywasz
  tego domy¶lnego zachowania serwera pppd, to przeinstalowywanie go nie
  jest konieczne.

  pppd pozwala tak¿e na u¿ycie parametrów _l_o_g_i_n_-_u (albo z wiersza
  poleceñ, albo z pliku konfiguracyjnego, albo z pliku z opcjami). Je¶li
  jest podana jaka¶ opcja _l_o_g_i_n_-_u, to pppd u¿yje pliku /etc/passwd, ¿eby
  zweryfikowaæ identyfikator i has³o dla PAP. To oczywi¶cie nie zadzia³a
  odk±d nasz plik z has³ami jest przes³aniany. Je¶li u¿ywasz
  pppd-1.2.1d, to bêdziesz musia³ dodaæ kod do obs³ugi hase³
  przes³anianych.

  Podany w dalszej czê¶ci przyk³ad dodaje obs³ugê dla tej w³a¶nie
  wersji.

  Wersja pppd-2.2.0 ma ju¿ w sobie obs³ugê przes³anianych hase³.

  77..  WWpprroowwaaddzzaanniiee ppaakkiieettuu SShhaaddooww SSuuiittee ddoo uu¿¿yycciiaa..

  Sekcja ta opisuje kilka rzeczy które bêdziesz chcia³ wiedzieæ jak ju¿
  zainstalowa³e¶ pakiet _S_h_a_d_o_w _S_u_i_t_e. Dalsze informacje zawarte s± na
  stronach podrêcznika systemowego na temat ka¿dego polecenia.

  77..11..  DDooddaawwaanniiee,, MMooddyyffiikkaaccjjaa ii uussuuwwaanniiee uu¿¿yyttkkoowwnniikkóóww..

  Pakiet _S_h_a_d_o_w _S_u_i_t_e 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).

  77..11..11..  uusseerraadddd..

  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:

  ·  Niech domy¶ln± grup± bêdzie 100

  ·  Niech has³a wygasaj± po 60 dniach

  ·  Niech konta nie bêd± blokowane po wyga¶niêciu has³a

  ·  Niech domy¶ln± pow³ok± bêdzie /bin/bash

  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 _S_h_a_d_o_w
  _S_u_i_t_e 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.

  77..11..22..  uusseerrmmoodd..

  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.

  77..11..33..  uusseerrddeell..

  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.

  77..22..  PPoolleecceenniiee ppaasssswwdd ii ""tteerrmmiinn wwaa¿¿nnoo¶¶ccii"" hhaass³³aa..

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

  ·  Blokowania i odblokowywania kont (-l i -u)

  ·  Ustawiania maksymalnej ilo¶ci dni przez jak± has³o jest wa¿ne (-x)

  ·  Ustawiania minimalnej ilo¶ci dni miêdzy zmianami has³a (-n)

  ·  Ustawiania ilo¶ci dni, po których wysy³ane jest ostrze¿enie o
     wyga¶niêciu has³a (-w)

  ·  Ustawiania ilo¶ci dni, po której has³o wygasa przed zablokowaniem
     konta (-i)

  ·  Pozwalania na przegl±danie informacji o koncie w czytelniejszym
     formacie (-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.

  77..33..  PPlliikk llooggiinn..ddeeffss

  Plik /etc/login jest plikiem konfiguracyjnym dla programu login oraz
  dla ca³ego pakietu _S_h_a_d_o_w _S_u_i_t_e.

  /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:

  ·  Zawiera opcje, które mog± byæ w³±czane i wy³±czane do okre¶lania
     ilo¶ci zalogowañ.

  ·  Zawiera wskazania na inne pliki konfiguracyjne.

  ·  Zawiera domy¶lne warto¶ci dla takich ustawieñ jak "termin wa¿no¶ci"
     has³a.

  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¶.

  77..44..  HHaass³³aa ddllaa ggrruupp..

  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 _S_h_a_d_o_w
  _S_u_i_t_e: groups, groupadd, groupmod i groupdel.

  Format pliku /etc/group jest taki:

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

  Gdzie:

     nnaazzwwaa__ggrruuppyy
        - chyba nie wymaga wyja¶niania :)

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

     GGIIDD
        - numer grupy

     cczz³³oonneekk
        - lista cz³onków grupy.

  Format pliku /etc/gshadow jest taki:

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

  Gdzie:

     nnaazzwwaa__ggrruuppyy
        - chyba nie wymaga wyja¶niania :)

     hhaass³³oo
        - zakodowane has³o grupy

     aaddmmiinn
        - lista administratorów grupy

     cczz³³oonneekk
        - 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.

  77..55..  PPrrooggrraammyy ddoo sspprraawwddzzaanniiaa ppoopprraawwnnoo¶¶ccii..

  77..55..11..  ppwwcckk

  Program pwck sprawdza poprawno¶æ plików /etc/passwd i /etc/shadow.
  Sprawdzi ka¿dego u¿ytkownika czy ma:

  ·  poprawn± ilo¶æ pól,

  ·  unikalny identyfikator,

  ·  dobry UID i GID

  ·  dobr± grupê domy¶ln±

  ·  poprawny katalog domowy

  ·  poprawn± pow³okê

  Ostrze¿e nas tak¿e je¶li znajdzie konta bez hase³.

  Uruchomienie tego programu po zainstalowaniu pakietu _S_h_a_d_o_w _S_u_i_t_e 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±.

  77..55..22..  ggrrppcckk

  Program ten sprawdza poprawno¶æ plików /etc/group i /etc/gshadow.
  Sprawdza:

  ·  ilo¶æ pól,

  ·  unikaln± nazwê grupy

  ·  poprawno¶æ listy administratorów i cz³onków.

  Ma tak¿e opcjê -r do automatycznych raportów.

  77..66..  HHaass³³aa pprrzzeezz tteelleeffoonn.. ((DDiiaall--uupp))

  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.

  88..  OObbss³³uuggaa pprrzzeess³³aanniiaannyycchh hhaassee³³ ww pprrooggrraammaacchh ww CC..

  Dodawanie obs³ugi hase³ przes³anianych do programów jest ca³kiem
  proste. Jedynym problemem jest to, ¿e program musi zostaæ uruchomiony
  z prawami "root-a", aby mieæ dostêp do pliku /etc/shadow.

  Tutaj pojawia siê jeden wielki problem: podczas pisania takich
  programów nale¿y siê trzymaæ jak naj¶ci¶lej zasad bezpieczeñstwa. Na
  przyk³ad je¶li program posiada wyj¶cie do pow³oki, to nniiee mmoo¿¿ee siê to
  zdarzyæ na prawach "root-a".

  Je¶li program musi mieæ dostêp do /etc/shadow i nie potrzebuje wiêcej
  praw "root-a", to lepiej uruchomiæ go z prawami grupy "shadow".
  Program xlock jest przyk³adem takiego programu.

  W przyk³adzie podanym ni¿ej, pppd-1.2.1d jest ju¿ uruchomiony z
  prawami "root-a", tak wiêc dodanie obs³ugi hase³ przes³anianych nie
  powinno zagroziæ bezpieczeñstwu.

  88..11..  PPlliikkii nnaagg³³óówwkkoowwee..

  Pliki te powinny znajdowaæ siê w /usr/include/shadow.  Powinien tam
  byæ tak¿e plik /usr/include/shadow.h, ale bêdzie to symboliczne
  do³aczenie do /usr/include/shadow/shadow.h.

  Aby dodaæ obs³ugê hase³ przes³anianych do programu, musisz do³±czyæ
  pliki nag³ówkowe:

  #include <shadow/shadow.h>
  #include <shadow/pwauth.h>

  Dobrym pomys³em by³oby u¿ycie dyrektyw kompilatora, aby skompilowaæ
  warunkowo kod z obs³ug± hase³ przes³anianych. (tak jak w przyk³adzie
  poni¿ej.)

  88..22..  BBiibblliiootteekkaa lliibbsshhaaddooww..aa

  Biblioteka ta zosta³a zainstalowana w /usr/lib jak instalowa³e¶ pakiet
  _S_h_a_d_o_w _S_u_i_t_e.

  Kiedy kompilujesz obs³ugê przes³aniancyh hase³ w programie trzeba
  poinformowaæ "linker-a", aby do³±czy³ bibliotekê libshadow.a.

  Robi siê to tak:

  gcc program.c -o program -lshadow

  Chocia¿ jak zobaczymy w poni¿szym przyk³adzie, wiêkszo¶æ du¿ych
  programów u¿ywa plików Makefile i ma zwykle zmienn± LIBS=..., któr±
  siê modyfikuje.

  88..33..  SSttrruukkttuurraa SShhaaddooww..

  Biblioteka libshadow.a u¿ywa struktury spwd dla informacji, które
  otrzyma z pliku /etc/shadow. Oto definicja tej struktury wziêta z
  /usr/include/shadow/shadow.h:

  ______________________________________________________________________
  struct spwd
  {
    char *sp_namp;                /* identyfikator */
    char *sp_pwdp;                /* zakodowane has³o */
    sptime sp_lstchg;             /* data ostatniej zmiany */
    sptime sp_min;                /* minimalna ilo¶æ dni miêdzy zmianami */
    sptime sp_max;                /* maksymalna ilo¶æ dni miêdzy zmianami */
    sptime sp_warn;               /* ilo¶æ dni przed wyga¶niêciem has³a
                                     kiedy bêdzie wysy³ane ostrze¿enie */
    sptime sp_inact;              /* ilo¶æ dni, po jakiej wygasa has³o
                                     dopóki konto nie bêdzie zablokowane */
    sptime sp_expire;             /* ilo¶æ dni od 01.01.1970 dopóki
                                     konto nie wyga¶nie */
    unsigned long sp_flag;        /* zarezerwowane na przysz³o¶æ */
  };
  ______________________________________________________________________

  Do pola sp_pwdp mo¿na dodatkowo wstawiæ nawzê programu:

  identyfikator:Npge08pfz4wuk;@/sbin/extra:9479:0:10000::::

  Oznacza to, ¿e oprócz podania has³a bêdzie wykonany program
  /sbin/extra, który wykona dalsz± autentykacjê. Wywo³any program
  otrzyma identyfikator i prze³±cznik, który okre¶li dlaczego zosta³
  wywo³any. Wiêcej informacji znajdziesz w /usr/include/shadow/pwauth.h
  i pwauth.c.

  Oznacza to, ¿e powinni¶my u¿yæ funkcji pwauth do przeprowadzenia
  poprawnej autentykacji, poniewa¿ zajmie siê ona tak¿e drug±
  autentykacj±. Jest to u¿yte w przyk³adzie poni¿ej.

  Autor pakietu _S_h_a_d_o_w _S_u_i_t_e twierdzi, ¿e odk±d wiêkszo¶æ programów tego
  nie stosuje, mo¿e to zostaæ usuniête lub zmienione w przysz³ych
  wersjach pakietu.

  88..44..  FFuunnkkccjjee ppaakkiieettuu SShhaaddooww SSuuiittee..

  Plik shadow.h zawiera deklaracje funkcji zawartych w bibliotece
  libshadow.a:

  ______________________________________________________________________
  extern void setspent __P ((void));
  extern void endspent __P ((void));
  extern struct spwd *sgetspent __P ((__const char *__string));
  extern struct spwd *fgetspent __P ((FILE *__fp));
  extern struct spwd *getspent __P ((void));
  extern struct spwd *getspnam __P ((__const char *__name));
  extern int putspent __P ((__const struct spwd *__sp, FILE *__fp));
  ______________________________________________________________________

  Funkcja, któr± u¿yjemy w przyk³adzie to getspnam, która odczyta
  strukturê spwd dla podanego identyfikatora.

  88..55..  PPrrzzyykk³³aadd..

  Jest to przyk³ad na dodanie obs³ugi hase³ przes³anianych do programu,
  który tego potrzebuje, ale nie ma domy¶lnie w³±czonego.

  Przyk³ad ten u¿ywa serwera _P_o_i_n_t_-_t_o_-_P_o_i_n_t _P_r_o_t_o_c_o_l (pppd-1.2.1d),
  który ma tryb do autentykacji _P_A_P u¿ywaj±c identyfikatora i has³a z
  pliku /etc/passwd zamiast z plików _P_A_P czy _C_H_A_P. Nie musisz dodawaæ
  tego kodu do pppd-2.2.0, poniewa¿ on ju¿ tam jest.

  Ta w³a¶ciwo¶æ pppd przypuszczalnie nie jest czêsto u¿ywana, ale je¶li
  zainstalowa³e¶ _S_h_a_d_o_w _S_u_i_t_e, to serwer ten nie bêdzie dzia³a³ poniewa¿
  has³a nie s± ju¿ zapisywane w /etc/passwd.

  Kod do autentykacji u¿ytkowników przez pppd-1.2.1d umieszczony jest w
  pliku /usr/src/pppd-1.2.1d/pppd/auth.c.

  Poni¿szy kod musi zostaæ dodany na pocz±tku pliku gdzie znajduj± siê
  wszystkie inne dyrektywy #include. Otoczyli¶my je dyrektywami
  warunkowymi (czyli skompiluj± siê tylko je¶li kompilujemy z w³aczon±
  obs³ug± hase³ przes³anianych).

  ______________________________________________________________________
  #ifdef HAS_SHADOW
  #include <shadow.h>
  #include <shadow/pwauth.h>
  #endif
  ______________________________________________________________________

  Nastêpnym krokiem jest modyfikacja w³a¶ciwiego kodu. Ci±gle
  modyfikujemy plik auth.c.

  Funkcja auth.c przed modyfikacj±:

  ______________________________________________________________________
  /*
   * login - Check the user name and password against the system
   * password database, and login the user if OK.
   *
   * returns:
   *      UPAP_AUTHNAK: Login failed.
   *      UPAP_AUTHACK: Login succeeded.
   * In either case, msg points to an appropriate message.
   */
  static int
  login(user, passwd, msg, msglen)
      char *user;
      char *passwd;
      char **msg;
      int *msglen;
  {
      struct passwd *pw;
      char *epasswd;
      char *tty;

      if ((pw = getpwnam(user)) == NULL) {
          return (UPAP_AUTHNAK);
      }
       /*
       * XXX If no passwd, let them login without one.
       */
      if (pw->pw_passwd == '\0') {
          return (UPAP_AUTHACK);
      }

      epasswd = crypt(passwd, pw->pw_passwd);
      if (strcmp(epasswd, pw->pw_passwd)) {
          return (UPAP_AUTHNAK);
      }

      syslog(LOG_INFO, "user %s logged in", user);

      /*
       * Write a wtmp entry for this user.
       */
      tty = strrchr(devname, '/');
      if (tty == NULL)
          tty = devname;
      else
          tty++;
      logwtmp(tty, user, "");             /* Add wtmp login entry */
      logged_in = TRUE;

      return (UPAP_AUTHACK);
  }
  ______________________________________________________________________

  Has³o u¿ytkownika jest umieszczane w pw->pw_passwd, tak ¿e wszystko co
  musimy zrobiæ, to dodaæ funkcjê getspnam. Umie¶ci to has³o w
  spwd->sp_pwdp.

  Dodamy funkcjê pwauth, aby przeprowadziæ w³a¶ciw± autentykacjê.
  Przeprowadzi to tak¿e drug± autentykacjê je¶li plik shadow jest
  odpowiednio ustawiony.

  Funkcja auth.c po modyfikacji do obs³ugi hase³ przes³anianych:

  ______________________________________________________________________
  /*
   * login - Check the user name and password against the system
   * password database, and login the user if OK.
   *
   * This function has been modified to support the Linux Shadow Password
   * Suite if USE_SHADOW is defined.
   *
   * returns:
   *      UPAP_AUTHNAK: Login failed.
   *      UPAP_AUTHACK: Login succeeded.
   * In either case, msg points to an appropriate message.
   */
  static int
  login(user, passwd, msg, msglen)
      char *user;
      char *passwd;
      char **msg;
      int *msglen;
  {
      struct passwd *pw;
      char *epasswd;
      char *tty;

  #ifdef USE_SHADOW
      struct spwd *spwd;
      struct spwd *getspnam();
  #endif

      if ((pw = getpwnam(user)) == NULL) {
          return (UPAP_AUTHNAK);
      }

  #ifdef USE_SHADOW
          spwd = getspnam(user);
          if (spwd)
                  pw->pw_passwd = spwd->sp-pwdp;
  #endif

       /*
       * XXX If no passwd, let NOT them login without one.
       */
      if (pw->pw_passwd == '\0') {
          return (UPAP_AUTHNAK);
      }
  #ifdef HAS_SHADOW
      if ((pw->pw_passwd && pw->pw_passwd[0] == '@'
           && pw_auth (pw->pw_passwd+1, pw->pw_name, PW_LOGIN, NULL))
          || !valid (passwd, pw)) {
          return (UPAP_AUTHNAK);
      }
  #else
      epasswd = crypt(passwd, pw->pw_passwd);
      if (strcmp(epasswd, pw->pw_passwd)) {
          return (UPAP_AUTHNAK);
      }
  #endif

      syslog(LOG_INFO, "user %s logged in", user);

      /*
       * Write a wtmp entry for this user.
       */
      tty = strrchr(devname, '/');
      if (tty == NULL)
          tty = devname;
      else
          tty++;
      logwtmp(tty, user, "");             /* Add wtmp login entry */
      logged_in = TRUE;

      return (UPAP_AUTHACK);
  }
  ______________________________________________________________________

  Po dok³adnym prze¶ledzaniu tego kodu oka¿e siê, ¿e zrobili¶my jeszcze
  jedn± zmianê. Oryginalna wersja pozwala³a na dostêp (zwraca³a
  UPAP_AUTHACK) je¶li nniiee bbyy³³oo has³a w pliku /etc/passwd. Nie jest to
  dobrze, poniewa¿ popularnym u¿yciem tej w³a¶ciwo¶ci programu login
  jest u¿ywanie jednego konta, na dostêp do programu PPP, a potem
  sprawdzenie identyfikatora i has³a dostarczonych przez PAP z tymi w
  plikach /etc/passwd i /etc/shadow.

  Tak wiêc je¶li ustwiliby¶my oryginaln± wersjê, aby uruchamia³a pow³okê
  dla u¿ytkownika np. ppp, to ka¿dy móg³by uzyskaæ po³±czenie ppp przez
  podanie identyfikatora ppp i pustego has³a.

  Poprawili¶my to przez zwrócenie UPAP_AUTHNAK zamiast UPAP_AUTHACK
  je¶li pole z has³em jest puste.

  Interesuj±ce jest to, ¿e pppd-2.2.0 ma ten sam problem.

  Nastêpnie musimy zmodyfikowaæ plik Makefile tak, ¿eby pojawi³y siê
  dwie rzeczy:
  USE_SHADOW musi byæ zdefiniowane i libshadow.a musi byæ dodana w
  procesie "linkowania".

  Wyedytuj plik Makefile i dodaj:

  LIBS = -lshadow

  Potem znajd¼ liniê:

  COMPILE_FLAGS = -I.. -D_linux_=1 -DGIDSET_TYPE=gid_t

  i zmieñ j± na:

  COMPILE_FLAGS = -I.. -D_linux_=1 -DGIDSET_TYPE=gid_t -DUSE_SHADOW

  Teraz kompilacja i instalacja.

  99..  CCzzêêssttoo zzaaddaawwaannee ppyyttaanniiaa..

  _P_: Kiedy¶ kontrolowa³em terminale z jakich móg³ siê logowaæ "root"
  przez plik /etc/securettys, teraz nie wygl±da na to ¿eby dzia³a³o. Co
  jest grane ?

  _O_: Teraz kiedy pakiet _S_h_a_d_o_w _S_u_i_t_e jest zainstalowany plik
  /etc/securettys nie ma ¿adnego znaczenia. Terminale, z których mo¿e
  siê zalogowaæ "root" s± teraz podawane w pliku konfiguracyjnym
  /etc/login.defs. Pozycja w tym pliku mo¿e wskazywaæ na jaki¶ inny
  plik.

  _P_: Zainstalowa³em pakiet _S_h_a_d_o_w _S_u_i_t_e i nie mogê siê zalogowaæ, co
  przegapi³em ?

  _O_; Przypuszczalnie zainstalowa³e¶ pakiet i zapomnia³e¶ uruchomiæ
  program pwconv albo zapomnia³e¶ skopiowaæ /etc/npasswd na /etc/passwd
  oraz /etc/nshadow na /etc/shadow. Mo¿esz musisz tak¿e skopiowaæ
  login.defs do /etc.

  _P_: W sekcji o "xlock-u" by³o napisane, ¿eby zmieniæ grupê pliku
  /etc/shadow na shadow, ale ja nie mam takiej grupy - co mam zrobiæ ?

  _O_: Mo¿esz j± dodaæ. Po prostu wyedytuj plik /etc/group i dodaj liniê
  definiuj±c± grupê shadow. Musisz siê upewniæ, ¿e numer grupy nie jest
  u¿ywany przez ¿adn± inn± i musisz j± dodaæ przed pozycj± nogroup. Albo
  po prostu ustaw bit SUID dla programu xlock.

  _P_: Jest jaka¶ lista dyskusyjna dla Linux Shadow Password Suite ?

  _O_: Tak, ale jest ona dla rozwijaj±cych ten pakiet i dla testuj±cych
  wersje BETA. Mo¿esz siê zapisaæ na tê listê wysy³aj±c list na adres
  _s_h_a_d_o_w_-_l_i_s_t_-_r_e_q_u_e_s_t_@_n_e_p_t_u_n_e_._c_i_n_._n_e_t o tytule _s_u_b_s_c_r_i_b_e. Na li¶cie tej
  dyskutuje siê w³a¶ciwie o konkretnej serii shadow-YYMMSS. Powiniene¶
  siê na ni± zapisaæ je¶li chcesz byæ w³±czony do dalszego rozwoju albo
  je¶li zainstalowa³e¶ sobie ten pakiet i chcesz wiedzieæ o nowszych
  wersjach.

  _P_: Zainstalowa³em _S_h_a_d_o_w _S_u_i_t_e, ale kiedy u¿ywam polecenia userdel
  dostajê: "userdel: cannot open shadow group file" - co zrobi³em ¼le ?

  _O_: Skompilowa³e¶ pakiet z w³±czon± opcj± SHADOWGRP, ale nie masz pliku
  /etc/gshadow.  Musisz albo wyedytowaæ plik config.h i skompilowaæ
  ponownie pakiet albo stworzyæ plik /etc/gshadow. Zobacz sekcjê
  dotycz±c± przes³anianych grup.

  _P_: Zainstalowa³em _S_h_a_d_o_w _S_u_i_t_e, ale zakodowane has³a pojawiaj± siê w
  pliku /etc/passwd, co jest ?

  _O_: Albo w³aczy³e¶ opcjê AUTOSHADOW w pliku config.h, albo twoja
  biblioteka libc by³a skompilowana z opcj± SAHDOW_COMPAT. Musisz
  dowiedzieæ siê, które z tych dwóch jest prawdziwe i skompilowaæ
  ponownie.

  1100..  PPrraawwaa aauuttoorrsskkiiee ppooddzziiêêkkoowwaanniiaa ii rróó¿¿nnee..

  1100..11..  PPrraawwaa aauuttoorrsskkiiee

  Linux Shadow Password HOWTO jest chronione prawami autorskimi Michaela
  H. Jacksona.

  Dozwolone jest dystrybuowanie kopii tego dokumentu zak³adaj±c, ¿e
  wzmianka o prawach autorskich i to pozwolenie jest zawarte we
  wszystkich kopiach.

  Dozwolone jest dytrybuowanie i kopiowanie modyfikowanych wersji tego
  dokumentu pod warunkami kopiowania z powy¿szego akapitu, zak³adaj±c,
  ¿e zawarta jest jasna informacja, ¿e jest to wersja modyfikowana tego
  dokumentu.

  Dozwolone jest kopiowanie i dystrybucja t³umaczeñ tego dokumentu na
  inne jêzyki pod warunkami dla wersji modyfikowanych wymienionymi
  wy¿ej.

  Dozwolone jest konwertowanie tego dokumentu na inne media pod
  warunkami podanymi powy¿ej dla wersji modyfikowanych zak³adaj±c, ¿e
  informacja o ¼ródle nowego dokumentu jest zawarta przez oczywisty
  odno¶nik do dokumentu ¼ród³owego w nowej wersji tego dokumentu. Je¶li
  wystêpuj± jakie¶ w±tpliow¶ci co do s³owa "oczywiste", w³a¶ciciel praw
  autorskich rezerwuje sobie prawo decyzji.

  1100..22..  PPooddzziiêêkkoowwaanniiaa ii rróó¿¿nnee..

  Przyk³ady kodów dla auth.c zosta³y wziête z pppd-1.2.1d i ppp-2.1.0e,
  Copyright (c) 1993 and The Australian National University oraz
  Copyright (c) 1989 Carnegie Mellon University.

  Podziêkowania dla Marka Micha³kiewicza
  <marekm@i17linuxb.ists.pwr.wroc.pl> za napisanie i opiekê nad pakietem
  _S_h_a_d_o_w _S_u_i_t_e dla Linux-a oraz za przejrzenie i komentarze do tego
  dokumentu.

  Podziêkowania dla Rona Tidda <rtidd@tscnet.com> za jego pomocne
  przejrzenie i testowanie.

  Podziêkowania dla wszystkich, którzy przys³ali do mnie komentarze, aby
  pomóc w ulepszeniu tego dokumentu.

  Je¶li masz jakie¶ uwagi lub sugestie to napisz do mnie proszê,
  z powa¿aniem

  Michael H. Jackson <mhjack@tscnet.com>

  1100..33..  OOdd tt³³uummaacczzaa..

  T³umaczenie to jest chronione prawami autorskimi © Bartosza
  Maruszewskiego.  Dozwolone jest rozprowadzanie i dystrybucja na
  prawach takich samych jak dokument oryginalny.

  Je¶li znalaz³e¶ jakie¶ ra¿±ce b³êdy ortograficzne, gramatyczne,
  sk³adniowe, techniczne to pisz do mnie:

  B.Maruszewski@zsmeie.torun.pl

  Oficjaln± stron± t³umaczeñ HOWTO jest http://www.jtz.org.pl/

  Aktualne wersje przet³umaczonych dokumentów znajduj± siê na tej¿e
  stronie. Dostêpne s± tak¿e poprzez anonimowe ftp pod adresem
  ftp.ippt.gov.pl w katalogu /pub/Linux/JTZ/.

  Przet³umaczone przeze mnie dokumenty znajduj± siê tak¿e na mojej
  stronie WWW. <http://www.zsmeie.torun.pl/~bart/tlumaczenie.html> S±
  tam te¿ odwo³ania do Polskiej Strony T³umaczeniowej.

  Kontakt z nasz± grup±, grup± t³umaczy mo¿esz uzyskaæ poprzez listê
  dyskusyjn± jtz@ippt.gov.pl. Je¶li chcesz sie na ni± zapisaæ, to wy¶lij
  list o tre¶ci subscribe jtz Imiê Nazwisko na adres
  listproc@ippt.gov.pl

  Zmiany w tym dokumencie wprowadzone przez t³umacza to:

  ·  - "chmod 700 /etc/login/defs" na "chmod 600 /etc/login.defs" plik
     ten nie musi byæ wykonywalny,

  ·  - "cp passwd ~passwd" na "cp passwd ~/passwd" - ewidentna literówka
     autora

  ·  - "chmod 600 ~passwd" na "chmod 600 ~/passwd" - to samo

  ·  - przy zmianie grupy pliku /etc/shadow dodane "cd /etc"

  ·  - oraz polskie serwery WWW i ftp.