user passwd

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Úterý Leden 1 19:29:11 CET 2002


On Mon, 31 Dec 2001, RiGe wrote:

> jak zmenit heslo usera pomoci skriptu? Jde mi teda o "passwd", chce to asi
> cryptovane heslo, avsak nevim, jak ho mam ziskat...

To je trosku schizoidni otazka.

Bud chcete zmenit heslo pomoci programu passwd. To samozrejme lze, jenom
mu musite patricnou cestou dat vsechny vstupy (stare heslo, nove heslo),
pricemz vetsinou je chytak v tom, ze passwd trva na tom, aby komunikace
probihala pres terminal, coz v praxi znamena, ze musite vytvorit
pseudoterminal. Zadne sifrovane/hasovane heslo ale nepotrebujete.

Nebo muzete primo menit obsah /etc/passwd a/nebo /etc/shadow (coz bych
tedy moc nedoporucoval) resp. neprimo treba pomoci programu usermod(8)
s parametrem -p, a pak potrebujete znat sifrovany/hasovany tvar hesla.
Na Linuxovych systemech se v zasade pouzivaji dve transformace: klasicka
DESova, ktera je vlastne vysledkem knihovni funkce crypt(3) (pricemz
druhy parametr mohou byt pri zmene hesla libovolne 2 znaky z povolene
mnoziny, nejlepe nahodne vybrane) a MD5, ktera se pozna tak, ze hasovany
tvar zacina $1$, a ktera bohuzel nema ani odpovidajici standardni knihovni
funkci, ani jednoduchy popis (sice je zalozena na algoritmu MD5, ale ten 
se sam pouziva jeste velice komplikovanym zpusobem).

Na PAMifikovanem systemu lze take vyrobit pomocny program, ktery zmenu
provede pres PAM. Slozite to moc neni (viz napr. passwd ze SimplePAMApps),
muzete si jeho rozhrani smerem ven prizpusobit podle potreb a zaroven
nemusite resit ruzne nizkourovnove problemy. Ovsem takovy program musi
bezet s rootovskymi pravy, takze si muzete vyrobit peknou bezpecnostni
diru, kdyz to zkazite (nicmene tato vytka se tyka i pripadu, kdy chcete
soubory menit rucne nebo pomoci usermodu).

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."



Další informace o konferenci Linux