Easy: * Make krb5 module return a suitable error when it's only passed crypted passwords ("this password is already hashed -- it is of no use to me"). * Workalikes for various apps on other OSs: http://docs.sun.com/ab2/coll.40.6/REFMAN1/@Ab2PageView/169291 http://docs.sun.com/ab2/coll.40.6/REFMAN1/@Ab2PageView/64438 http://docs.sun.com/ab2/coll.40.6/REFMAN1/@Ab2PageView/64530 http://www.uwsg.iu.edu/usail/man/solaris/logins.1.html Medium: * Add the -o option to luseradd/lusermod/lgroupadd/lgroupmod (bad idea?) * Create variants of the apps that are hard-coded to use files only, for use in batch environments like post-package-install, or maybe add a --local flag, which will be interpreted as "shadow files"/"files".... * Add a shadowGroup schema file if RFC 2307bis doesn't include one, or ask Luke about adding one, and document what we expect an LDAP directory to have in order for the ldap module to not get confused (for now, that's the RFC 2307 schema + inetOrgPerson + TLS). * Make the LDAP module check the server schema for allowed object classes and attributes for new user additions and so on; right now it's kind of a crap shoot to see if the server will reject an operation due to a schema error. Hard: * Figure out how to reconcile lckpwdf() and fcntl() locking when the files being locked may not even be the system's main files. * Write a RADIUS back-end. * Write an NIS or NIS+ back-end using yppasswd.x in glibc, or maybe using the routines declared in /usr/include/rpcsvc/libnis.h * Write a libdbi or ODBC back-end. * Write a hesiod back-end. * Implement an lgpasswd command for local group administration by the group's administrators.