Sziasztok!
Irogatok egy perl scriptet, de bashba is johet a megoldas, maximum kulso parancskent futtatom. A lenyeg, a script egy bizonyos ponton egy bizonyos usernek megvaltoztatn a a jelszavat (nyilvan ez is megvan, hogy mire). Erre nem talaltam megoldast, a passwdnek nem lehet parancssorbol, parameterben megadni hogy mi legyen az uj jelszo.
Koszonom a segitsegeteket! Udv!
- 2780 megtekintés
Hozzászólások
echo jelszo | passwd --stdin usernev
--
Coding for fun. ;)
- A hozzászóláshoz be kell jelentkezni
" --stdin
This option is used to indicate that passwd should read the new password from standard input, which can be a pipe.
"
RTFM...
--
Coding for fun. ;)
- A hozzászóláshoz be kell jelentkezni
thx, akkor ugynezki pixelhiba volt... ;D
Koszi a helpet!
- A hozzászóláshoz be kell jelentkezni
Nincs mit... Mennyire biztonságos, amit csinálsz? :D Érdekelne több részlet is a projektből.
--
Coding for fun. ;)
- A hozzászóláshoz be kell jelentkezni
guest user letrehozas, cron regellente atirja a passwdt amit egy faljbol lopkod kifele attol fugg milyen nap van, es tollem meg el lehet kunyizni az adott napi jelszot es ha jofej vagyok meg is adom. :)
Hat arrol lenne szo.
Amugy meg nem megy amit irtal... a passwd man-jaban nincs ilyen ,es valaszt is kapok ra mert jo fej...
passwd: unrecognised option `--stdin'
Usage: passwd [options] [LOGIN]
Options:
-a, --all report password status on all accounts
-d, --delete delete the password for the named account
-e, --expire force expire the password for the named account
-h, --help display this help message and exit
-k, --keep-tokens change password only if expired
-i, --inactive INACTIVE set password inactive after expiration
to INACTIVE
-l, --lock lock the named account
-n, --mindays MIN_DAYS set minimum number of days before password
change to MIN_DAYS
-q, --quiet quiet mode
-r, --repository REPOSITORY change password in REPOSITORY repository
-S, --status report password status on the named account
-u, --unlock unlock the named account
-w, --warndays WARN_DAYS set expiration warning days to WARN_DAYS
-x, --maxdays MAX_DAYS set maximim number of days before password
change to MAX_DAYS
Debian 4.0n megy most, Ubuntu 7.04en fog futni, ott is ezt valaszolja csak magyarul.
Mas tipp esetleg? :)
Koszi, Udv!
- A hozzászóláshoz be kell jelentkezni
MD5-ös jelszavak esetén:
echo "user:jelszo" | chpasswd --md5
A chpasswd pl. a Debian Sarge/Etch passwd csomagjával érkezik.
--
JSI
- A hozzászóláshoz be kell jelentkezni
tegyuk fel shadow, crypt, vagy md5
nehany shell parancs:
USER=valaki
DATE=$(($(date +%s)/86400))
PASS="$(dd if=/dev/urandom bs=256 count=1 2>/dev/null |\
uuencode -m - | tail -n2 | tr -dc '0-9a-zA-Z' | head -c 8)"
SALT="$(dd if=/dev/urandom bs=256 count=1 2>/dev/null |\
uuencode -m - | tail -n2 | tr -dc '0-9a-zA-Z' | head -c 2)"
CRYPT="$(openssl passwd -crypt -salt $SALT $PASS)"
MD5="$(openssl passwd -1 $PASS)"
shadow file:
awk -F: -v u=$USER -v p=$MD5 -v d=$DATE \
'{if($1==u){printf "%s:%s:%d:",$1,p,d;for(i=4;i<NF;i++){printf "%s:",$i};print""}else{print}}' \
</etc/shadow
- A hozzászóláshoz be kell jelentkezni
És ugyanezt userként hogy lehetne egyszerűen? Persze újra lehet forgatni a passwd progit kiegészítve, de valami más út érdekelne - ha van ilyen.
- A hozzászóláshoz be kell jelentkezni
man expect
Erre talaltak ki.
- A hozzászóláshoz be kell jelentkezni
Pontosan az ilyen esetekre irtam ezt a programot: ftp://ftp.kite.hu/muszi/sources/encrypt-passwd-1.1.tar.bz2
Ennek megadod parameterkent a jelszot, es kiirja neked a kodolt jelszot (DES vagy MD5), amit aztan betehetsz a jelszofile-ba.
- A hozzászóláshoz be kell jelentkezni
Elég sok (UNIX) rendszerben erre van a (jól eldugott) makekey nevű parancs, ami ugyanezt csinálja, és rka korábbi hozzászólásában szerepel a helyette használható openssl parancs. (Erre fölösleges sajátot írni, használni kell a standard-ot.)
- A hozzászóláshoz be kell jelentkezni
nekem is ugy tunik, hogy ez a "openssl passwd -1 hehe" megoldas a meno, csak meg bele kell ganyolni a shadow faljba... :\
Udv!
- A hozzászóláshoz be kell jelentkezni
Annyira jol el van dugva, hogy sem a Sarge-ban, sem az Etch-ben nem is talalom... :-)
Annak idejen nem volt sok idom keresgelni, egyszerubb volt osszeutni a programot (nagyjabol fel ora alatt megvolt).
- A hozzászóláshoz be kell jelentkezni
etch es sarge unix klonok. az mas ;)
- A hozzászóláshoz be kell jelentkezni
makepasswd parancs?
A szokás hatalma, nem hét!!!
- A hozzászóláshoz be kell jelentkezni
hmm. ez tetszik!
ami át van húzva, azt teljesen fölösleges elolvasni. az olyan, mintha ott sem lenne
- A hozzászóláshoz be kell jelentkezni
mindenkinek koszi a tippeket... :)
Meglatjuk mi lesz, de azert gaz, hogy nem lehet jelszot megadni a passwdnek...
- A hozzászóláshoz be kell jelentkezni
test@rkanote:/tmp$ mkfifo fif
test@rkanote:/tmp$ passwd </tmp/fif & ( echo regijelszo ; sleep 2 ; echo ujjelszo ; sleep 2 ; echo ujjelszo ) > /tmp/fif
[1] 7956
Changing password for test
(current) UNIX password: Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
[1]+ Done passwd </tmp/fif
- A hozzászóláshoz be kell jelentkezni
Nekem nagyon tetszik ez a megoldas! :)
Kolega expect scriptnyelvet ajanlja, minthogy szerinte szebb megoldas, amiben van is valami, csakhat akkor telepiteni kell. Es egy pdf peldatarban meg is mutatta erre a problemara a megodlast. :)
- A hozzászóláshoz be kell jelentkezni
En is azt ajanlanam - mindjart az openssl utan.
Bar - megitelesem szerint - nem shell, vagy perl
ami a feladat kiirasban szerepelt.
- A hozzászóláshoz be kell jelentkezni
Ezt a megoldást szeretném használni SCO Openserver 6.0 -án, de valahogy nem akar működni :(
mkfifo fif
eddig oké
passwd < /tmp/fif & ( echo 1 ; echo regijelszo ; sleep 2 ; echo ujjelszo ; sleep 2 ; echo ujjelszo ) > /tmp/fif
Az 1 -es azért kell, mert a passwd felajánl két választást:
Enter choice (default is 1):
1) pick a password 2) pronounceable password will be generated for you.
Szóval az 1 -es opciót kellene választani.
Sajnos a fenti parancs futtatása után megáll az ,,Enter choice'' résznél és rövid idő után ezt dobja:
[1]+ Stopped passwd < /tmp/fif
A jelszó nem változik meg. Találkozott már valaki hasonlóval?
- A hozzászóláshoz be kell jelentkezni
Nyilván, ez egy eléggé alap igény. De
- SCO-ban van makekey
- ráadásul ha jól tudom van pl. vipw
Ezzel a kettővel pedig gyönyörűen összerakható shell mechanizmusokkal:
PASSWORD=`..../makekey ...`
env EDITOR=/bin/ed vipw << E-O-F
/user/s/:[^:]*:/:$PASSWORD:/
w
q
E-O-F
oszt csókolom.
(Ja, nyilván azért nem megy, mert nem STDIN-ről olvas a passwd.)
- A hozzászóláshoz be kell jelentkezni
Sajnos nincs makekey, sem vipw.
(make, makeconv, make_encmap, make_method és makerandom : ezek vannak, amik make -el kezdődnek)
Nekem egyébként az is jó lenne, ha valami ,,well-known'' jelszóra (pl. jelszo) be tudnám állítani fixen annak, aki kéri, majd ,,passwd -f'' -el kikényszeríteni a váltást. Mindezt scriptelve.
A ,,passwd -d'' azért nem jó, mert ha a /etc/default/login fájlban a REQPASS értéke YES, akkor nem engedi a policy miatt törölni a jelszót a rendszer, hiába próbálom akár a ,,passwd -d -f'' megadásával is. Ha meg a REQPASS értéke NO, akkor meg jelszó nélkül maradhat vígan a felhasználó. :-/
- A hozzászóláshoz be kell jelentkezni
a) van azon makekey. Csak éppen nem a PATH-on. Szóval man makekey, és ha jól emlékszem /usr/lib/makekey (vagy valami hasonló). Utolsó esélyként find, vagy a korábban rka által emlegetett OpenSSL-hez tartozó módon tudsz kódolt PW-t előállítani, a folytatás pedig megy ahogy leírtam. Amúgy az ismert jelszót beállítani simán lehet:
passwd X
majd előszeded a /etc/passwd -ből (SCO-n ha jól emlékszem tcb van azaz /tcb/files/auth/r/root - ez nyilván a root user fájlja, X esetén X/X) a kódolt jelszót, és fenti PASSWD változóba beteszed.
- A hozzászóláshoz be kell jelentkezni
Igazad van, van makekey. :)
De akkor most a gyengébbek kedvéért, hogy én is megértsem: makekey -jel generálok valamit, pl. ,,makekey jelszo'' (szintaktika biztos más, majd ráguglizok, a man szűkszavú), majd ezt beírom mondjuk a /tcb/files/auth/r/root fájlba valahová ide: ,,:u_pwd=blabla:\''. Ugye?
Ha igen, akkor már csak egy kérdésem van: a makekey -el generált ,,jelszo'' kimenete miért nem egyezik meg azzal, ami akkor kerül a fenti fájlba, ha passwd paranccsal írom be? :)
Bocs, ha félreértettem valamit!
- A hozzászóláshoz be kell jelentkezni
Igen, ez a megoldás - ezzel állíthatod át a root user jelszavát. Más felhasználóé pedig userneve_elso_betuje/userneve nevu fajlban van ott a /tcb alatt. És azért nem egyezik meg a két leszó sztring, mert a jelszókódolás azzal kezdődik, hogy (ha jól emlékszem) 4096 elemből a rendszer választ egyet véletlenszerűen (ezt hívják "salt"-nak), és ezt is pluszban felhasználja akkor, amikor az általad begépelt sztingből csinálja a "kódolt" jelszót. (Könnyen ellenőrizhető úgy, hogy két usernek ugyanarra állítod át a jelszavát a passwd paranccsal, a kódolt sztring mégis különbözni fog.)
- A hozzászóláshoz be kell jelentkezni
echo -n 'XYpassword' | makekey
XY a fent említett salt (tehát két véletlenszerű karakter teljesen jó), a password a beállítani kívánt jelszó, aminek pontosan 8 karakter hosszúnak kell lennie, ha rövidebb, akkor fel kell tölteni 0 byte-okkal (ezt meg a parancssorból elérhető printf segítségével lehet megcsinálni az echo helyett).
- A hozzászóláshoz be kell jelentkezni
Wow, ez az! :)
Köszi szépen!!
- A hozzászóláshoz be kell jelentkezni
Már csak egy kérdésem lenne: hogyan közöljem az oprendszerrel, hogy milyen salt -ot használtam a kulcs generáláshoz? Mert ha generálok egy ilyet, hogy echo -n 'XYpassword' | makekey és a kapott értéket beírom a /etc/shadow illetve a /tbc/blabla alatt található megfelelő fájl megfelelő részébe, akkor bejelentkezéskor a ,,password'' -ot használva jelszóként nem fogadja el. Ebből gondolom, hogy valahol még meg kellene mondani a rendszernek, hogy milyen salt -tal lett generálva a kulcs.
- A hozzászóláshoz be kell jelentkezni
Ha nem fogadja el, akkor valahol valamit elrontottal. Ugyanis a salt maga benne van a generalt "kodolt" jelszoban, konkretan az elso ket karaktere pontosan az.
Ja, meg valami. Mindenekelott nezd meg, hogy a hasznalt rendszerben levo echo parancs ismeri-e a "-n" opciot, mert van ahol ezt maskent kell irni (es tippelem, h pl. Solaris, SCO az pont ilyen "mashol" rendszer).
- A hozzászóláshoz be kell jelentkezni
Hú, rájöttem, hogy mi a hiba: fordítva van OSR6 -on a salt. Tehát: 'passwordXY' és az XY a salt, a végén kell állnia.
Így már működik, köszi a segítséget! :)
ui: echo -n működik itt is jól
- A hozzászóláshoz be kell jelentkezni
Köszi!
Már csak rá kell jönnöm a makekey paraméterezésére, mert a /etc/shadow -ban és a /tbc -ben lévő fájlokban a jelszó stringek hossza minden esetben 13 karakter, amit a makekey generál (paraméterezés nélkül), az csak 12..
- A hozzászóláshoz be kell jelentkezni
Lasd eggyel feljebb. Valami el van rontva., annak is 13 hosszunak kell lennie.
- A hozzászóláshoz be kell jelentkezni
libnss-ldap, pam-ldap
es onnan kezdve ldapmodify attributum modositas a jelszocsere.
;-P
- A hozzászóláshoz be kell jelentkezni
man chpasswd (AIX, Linux)
- A hozzászóláshoz be kell jelentkezni