20 April 1995

HUMAN--Happy User MANager 

Luca Salvadori

Description

(Happy User MANager) is a tool for the management of problems regarding usernames and associated people. Human uses dialog(1) to offer a simple and effective user
interface, based on menus, pushbuttons and text entry, so that username management can be done without any worry even by non-specialized people. Human manages standard passwd(5) files, and other passwd-like files to store detailed personal data of users, usually squeezed in gcos field of passwd(5). Human also manages subscription data
for usernames (e.g., type of subscription, start date, expiration date: this is useful for bbs or service providers  to manage user access on a controlled basis). An "exclusion" file (passwd.excl) is used to exclude some particular usernames (e.g., the system ones) from human activity.

Functions

Human performs the following functions:

NEW--Create new users

Data to create a new username is obtained from operator. Any necessary operation to allow username operation (home dir creation, skel file copy, etc.) is done. Personal data of username (real name, address, phone number, etc.) are stored in passwd.addr file.

KILL-- Delete usernames

Usernames and directories of selected usernames are deleted (after confirmation). Entries in passwd(5) and passwd.addr file are deleted.

LOCKUSER-- Lock users

User locking is useful to disable login without affecting password and files. Human allows username selection in the list of active ones and acts on password field in passwd(5) prepending to it the"#LCK#" string.

UNLOCKUSER-- Unlock users

This function is opposite to LOCKUSER, re-enabling locked users by deleting #LCK# string in password field.

SHOW-- Display usernames characteristics

This function displays all characteristics of selected usernames, both system- and personal. Data are taken from passwd(5) and passwd.addr files. If no entry for selected username is present in passwd.addr file, ralated fields are set to blank.

HELP--Display help on human

This function displays this man page in a scrollable window.

MODIFY--Modify usernames characteristics

This function allows operator to change system data (i.e. data related to operating system, stored in passwd(5) file) and personal data (address, phone, etc.) stored in passwd.addr file for selected usernames. If no entry exist in passwd.addr file, a default one is
created. Defaults are supplied for most requested values.

ACTIVATE-- Activate or change username subscription

This function allows to enter or change username subscription data, following subscription table stored in subs_type.dat file. Depending on selected subscription
type, expiration date is changed accordingly. If no previous subscription data are present, starting date is defined as system one. Username is then locked, and must be unlocked to allow operation.

DEACTIVATE-- Deactivate username subscription

This function reverses the effects of the previous one. A deactivated account has an expiration date as today and is locked. Human can be executed only by trusted users (i.e. root etc.) in order to enforce the necessary security level. Defaults can be modified editing the relevant section in code itself. Human is a bash script, so that it is portable on almost
any UNIX system. Nevertheless, dialog(1) has been ported on many systems (including SunOS, Solaris, HP-UX, ULTRIX) with success, but requires, if final executables are not
available, recompilation with GCC (GNU C-Compiler) or other ANSI-compliant C-Compiler. Actual human and dialog(1) versions have been ported and tested on SunOS, Solaris, HP-UX and Linux without any problem.

/etc/passwd			- Default passwd(5) file
~root/passwd.excl		- default usernames exclusion file
~root/passwd.addr		- Default usernames personal data file
~root/passwd.subs		- Default usernames subscription file
~root/subs_type.dat		- Default subscription types table

Files are created at first invocation with defaults.

See Also:

dialog(1), passwd(1), passwd(5), crypt(1M). 
Note: dialog(1) - (c) 1993-1994 Savio Lam <lam836@cs.cuhk.hk>


