*.SH script kasutaja parooli muutmiseks

Üldised linuxiga seotud küsimused, mis ei kuulu teiste foorumite alla

Moderaator: Moderaatorid

Vasta
mixman
Pingviini kasutaja
Pingviini kasutaja
Postitusi: 54
Liitunud: 20.12.2007, 22:27

*.SH script kasutaja parooli muutmiseks

Postitus Postitas mixman »

Tere, nii, räägiks kõigepealt eesmärgist.

Mõte on teha veebiserveris php script millega saaks muuta teises serveris kasutaja parooli.


Mõtlesin, et teen asja shell scriptiga, mis võtaks kaks parameetrit kasutajanimi ja uus parool, mida siis hiljem php script ssh2 funktsiooni kasutades kutsuks ja vajalikud parameetrid annaks.

Aga see selleks, proovisin siis alustuseks sh scripti teha google abiga, midagi sai kokku pandud, aga ei taha toimida see asi.

Kuna asi toimub läbi root kasutaja siis vana parooli sisestamiseks pole vajadust.

Kokku panin midagi sellist:

Kood: Vali kõik

newpw="$2"
passwd $1 <<EOF
"$2"
"$2"
EOF
Käivitades faili ja andes parameetrid test (kasutajanimi) ja uusparool (ehk siis soovitav parool) on output selline:

Kood: Vali kõik

root@server1 [~]# ./test.sh test uusparool
Changing password for user test.
New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
root@server1 [~]#
Outputi järgi nagu asi toimiks, aga proovides kasutaja test-iga saada sisse ssh-sse või ftp-sse on login incorrect. Kasutades parooliks "uusparool".


Kasutaja ise tegin nii "adduser test", ei teagi kas ta on defauldis ssh luba, aga ftp peaks ometi toimima ju ?

Ftp-ks on proftpd.



Lugupidades
Mikk
hannovene
Pingviini aktivist
Pingviini aktivist
Postitusi: 104
Liitunud: 04.09.2008, 11:15

Postitus Postitas hannovene »

Shelli skriptiga interaktiivse käsurea utiliidiga flirtida tundub mulle libe tee.

Äkki proovid "chpasswd" nimelist utiliiti, mis lubab läbi standardsisendi kasutajanime ja parooli ette anda.
mixman
Pingviini kasutaja
Pingviini kasutaja
Postitusi: 54
Liitunud: 20.12.2007, 22:27

Postitus Postitas mixman »

Miks libe tee?

Muidu leidsin sellise lahenduse, täitsa töötab:

Kood: Vali kõik

#!/bin/sh
# \
exec expect -f "$0" ${1+"$@"}
set password [lindex $argv 1]
spawn passwd [lindex $argv 0]
sleep 1
expect "assword:"
send "$password\r"
expect "assword:"
send "$password\r"
expect eof
Vasta