|
This module makes handling password and group files easier. They
are referred to here as "entry files," which are flat files
consisting of colon (:) separated fields. The first field is the
key field and all others are data.
The load(fname), loadpw(fname), and loadgrp(fname) functions are used
to read these files. load() returns a mapping (OrdDict) of
Ent objects, which have the following members:
|   |
.seq() |
Returns the list of data values |
loadpw() loads a password file (/etc/passwd by default) and
returns an OrdDict of PWEnt objects, which have the following
members:
|   |
.passwd |
Encrypted Password |
| .uid |
Numeric User ID |
| .gid |
Numeric Group ID |
| .comment |
Comment (GECOS field) |
| .home |
Home Directory |
| .shell |
Command Shell |
| .seq() |
Returns the list of data values: |
| |
[ passwd, uid, gid, comment, home, shell ] |
loadgrp() loads a group file (/etc/group by default) and returns
an OrdDict of GrpEnt objects, which have the following members:
|   |
.passwd |
Encrypted Password
| | .gid |
Numeric Group ID
| | .users |
List of Member Users
| | .seq() |
Returns the list of data values: |
| |
[ passwd, gid, users ] |
| |
(users is converted to a comma-separated string) |
save() saves the given mapping of Ent-like objects to the
given file. The .seq() of each entry is called, the result joined
with colons, and then written to the file as a line. save() can
handle any string-keyed mapping of objects which have a proper
.seq() method.
genpw() generates a new encrypted password (with a random salt)
for use in creating new password entries.
ckpw() checks the given plaintext password against the given
cyphertext password; returns true on a match, false otherwise.
Installation:
passwd.py contains an internal Distutils-based installer; just run:
python passwd.py install
(as root/Administrator if needed) and you're done.
|