[Python] passwd frontend

Pagina: 1
Acties:

  • Ti_Uhl
  • Registratie: Mei 2003
  • Laatst online: 19-09-2012
Ik ben momenteel bezig aan een GTK Tool om je paswoord te veranderen. Ik ben dit aan het maken met python en GTK.

een screenshot kan je hier vinden.

Maar nu zit ik even vast met de frontend voor passwd. passwd word gestart. vraagt achter je huidig paswoord, dat zou gegeven moeten worden, je nieuw paswoord en nog maals je nieuw wachtwoord. Het probleem is echter dat passwd blijkbaar geen input van mijn programma wilt aannemen. Met het commando chfn werkt het wel perfect ( om user info ) aan te passen.

Mijn code ziet er als volgt uit momenteel :
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
print oldPass
print newPass
r,w = popen2.popen2("passwd")
#check = r.readline()
#print check
w.write(OldPass + "\n")
check = r.readLine()
print check
w.write(newPass + "\n")
check = r.readLine()
print check
w.write(newPass + "\n")
check = r.readLine()
print check
r.close()
w.close()


Het programma blijft gewoon hangen op de vraag voor het oude paswoord.
Na wat op google te zoeken had ik de pwd module van python gevonden maar deze ondersteunt geen shadow files ( Zou niet werken ook aangezien een user /etc/shadow niet kan openen). Dus de enige mogelijkheid is passwd gebruiken, wat ik blijkbaar niet echt aan de praat krijg.

Is er iemand die weet hoe ik dit kan oplossen ?

Verwijderd

Misschien moet je "passwd --stdin" proberen. Ik kan me namelijk voorstellen dat passwd stdin standaard "omzeilt" om ervoor te zorgen dat je password niet zichtbaar is als je het typt. Zie ook http://unixhelp.ed.ac.uk/CGI/man-cgi?passwd

[ Voor 10% gewijzigd door Verwijderd op 11-06-2005 15:15 . Reden: kleine toevoeging ]


  • Ti_Uhl
  • Registratie: Mei 2003
  • Laatst online: 19-09-2012
Verwijderd schreef op zaterdag 11 juni 2005 @ 15:14:
Misschien moet je "passwd --stdin" proberen. Ik kan me namelijk voorstellen dat passwd stdin standaard "omzeilt" om ervoor te zorgen dat je password niet zichtbaar is als je het typt. Zie ook http://unixhelp.ed.ac.uk/CGI/man-cgi?passwd
Ligt het nu aan mij of heeft mijn passwd geen --stdin optie ?
Als ik het probeer zegt die dat die optie niet bestaat en man passwd vermeld er ook niets over ?

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 06-05 18:23

Robtimus

me Robtimus no like you

code:
1
2
3
4
5
6
7
8
PASSWD(1)                       User utilities                      PASSWD(1)

NAME
       passwd - update a user's authentication tokens(s)

SYNOPSIS
       passwd  [-k]  [-l]  [-u [-f]] [-d] [-n mindays] [-x maxdays] [-w warn-
       days] [-i inactivedays] [-S] [--stdin] [username]
RedHat 9 geupdate naar FC3, passwd 0.68-10 (een PC op mijn oude uni).

Echter:
code:
1
2
3
4
5
6
7
8
PASSWD(1)                       User utilities                      PASSWD(1)

NAME
       passwd - update a userâs authentication tokens(s)

SYNOPSIS
       passwd  [-k]  [-l]  [-u [-f]] [-d] [-n mindays] [-x maxdays] [-w warn-
       days] [-i inactivedays] [-S] [username]
FC2 op SourceForge.net, passwd 0.68-8.1

Ligt dus ook aan de versie van passwd

Edit, op SF:
code:
1
2
$ passwd --stdin
Only root can do that.
Idem op die eerste bak.

[ Voor 7% gewijzigd door Robtimus op 11-06-2005 19:10 ]

More than meets the eye
There is no I in TEAM... but there is ME
system specs