adduser-ng: (C) 2006-2008 Davor Ocelic, docelic@spinlocksolutions.com SPINLOCK, http://www.spinlocksolutions.com/ A redesign of the traditional Debian 'adduser' suite, with modular design and built-in modules for: - traditional Unix file-based accounts - OpenLDAP http://www.OpenLDAP.org/ - MIT Kerberos 5 http://web.mit.edu/kerberos/ - OpenAFS http://www.OpenAFS.org/ - Coda http://coda.cs.cmu.edu/ As a side benefit, adduser-ng includes better codebase, unified error reporting, proper exit codes, and complete undo facility for fail-in-the-middle cases. This is free software; released under the GNU GPL (version 2 higher). There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1) Installation Keep everything in a single directory and run from there. Alternatively, copy the executable scripts and man pages to appropriate filesystem locations, and make sure that the Debian/Adduser directory is copied in Perl search path (or modify `use lib ".";` line in the scripts). Package maintainers - you know what to do with the files; remember also to disable disable `use lib "."` in the scripts. 2) Description The various available commands (adduser, addgroup, deluser, del...) are small frontends that take care of correctly reading in program-specific options and invoking the backend that loads and runs all appropriate modules. If needed, any program can be used to perform any function, by manually setting the operation mode using --action. However, calling properly- named programs which support the correct argument lists and letting the built-in code figure things on its own from executable file names is preferred, of course. 2) Basic usage Basic usage is mostly (if not completely) compatible with the traditional 'adduser'. Notice that the adduser-ng.conf is similar to the old config file, but has been expanded with a bunch of options; some more useful to the end users than others. There have been new directives added to support modules; the following module-specific configuration is the simplest way to operate only on the system's /etc/{passwd,shadow,group} files and therefore provide compatibility with the old adduser: BACKEND_USER = group, account BACKEND_GROUP = group All options are listed and explained in the sample adduser-ng.conf -- refer to it for all configuration elements. 3) Option matrix As various modules (and actions that adduser suite supports) quickly create a lot of different combinations, refer to the table below for the state of code for your particular set up. Note that the modules are intended to and do run independently from each other, so module interdependencies need not be represented. ==== OPERATION =========== MODULE ============= | |Grp/files | Account/files | -----------------------|----------| --------------- | Add user+group | OK | OK(2) | | Add sysuser+sysgroup | OK | OK(2) | | Add user | -NA | OK(2) | | Add sysuser | -NA | OK(2) | | Add group | OK(1) | -NA | | Add sysgroup | OK(1) | -NA | | Add user to group | OK | OK | | Del user+group | -NA | OK(4) | | Del sysuser+sysgroup | -NA | OK(4) | | Del user | -NA | | | Del sysuser | -NA | | | Del group | OK | -NA | | Del sysgroup | OK | -NA | | Del user from group | OK | | `-------------------------------------------------' ==== OPERATION ============ MODULE ====================== | | Kerberos | LDAP | AFS | Coda | ------------------------------------------------------------- | Add user+group | -NA | | | | | Add sysuser+sysgroup | -NA | | | | | Add user | OK | | | | | Add sysuser | OK | | | | | Add group | -NA | | | | | Add sysgroup | -NA | | | | | Add user to group | -NA | | | | | Del user+group | -NA | | | | | Del sysuser+sysgroup | -NA | | | | | Del user | | | | | | Del sysuser | | | | | | Del group | -NA | | | | | Del sysgroup | -NA | | | | | Del user from group | -NA | | | | `-----------------------------------------------------------' -NA - Not Applicable OK - Works as expected Empty - Unknown / Non-existent (1) - Setting group password does not work (2) - Options related to extra groups don't work (3) - Does its part of the work well (4) - Deletes group if empty, otherwise leaves it ERROR CODES - 20: At least one argument must be provided. - 21: At most two arguments can be provided. - 22: At most one argument can be provided. - 23: The Unix group `%s' was not created.