TABLE OF CONTENTS netinfo.device/--background-- netinfo.device/group netinfo.device/passwd netinfo.device/--background-- netinfo.device/--background-- PURPOSE The netinfo.device is intended to access various information from network database. It provides an uniform and well-defined interface to databases, so it is easy to adopt clients to different environments. There is a separate unit for each database. Currently the netinfo.device supports access to local password and group files. As a new feature since last release it supports file notification. The device file is located to "AmiTCP:devs/netinfo.device". It is recommended that the OpenDevice() call is given the macro NETINFONAME as device name. OVERVIEW Short overview of implemented IO commands is as follows: CMD_RESET - reset sequential access This command restarts the sequential database reading. Inputs: none Results: * io_Error contains possaible error code or 0 if command was successfull CMD_READ - read next entry Inputs: * io_Data contains buffer for database entry. The buffer will be filled wtih entry data upon successfull execution. * io_Length contains database len Results: * io_Actual contains length of the database entry * io_Error contains possaible error code or 0 if command was successfull CMD_WRITE - alter the database This command adds a new database entry or replace an old entry. If a matching entry with same name is found, it is replaced with the new entry. Inputs: * io_Data contains pointer for database entry structure Results: * io_Actual contains length of the database entry * io_Error contains possible error code or 0 if command was successfull CMD_UPDATE - copy the previous changes to permanent store This command updates the permanent copies of database. The netinfo.device does not ensure that entries updated with CMD_WRITE will be available by CMD_READ or written to permanent store before the CMD_UPDATE is executed. Inputs: none Results: * io_Error contains possible error code or 0 if command was successfull NI_BYNAME - search by name Inputs: * io_Data contains buffer for database entry. The buffer will be filled wtih entry data upon successfull execution. The name member of structure should be pointer to a C string containing the name of desired entry * io_Length contains database len Results: * io_Actual contains length of the database entry * io_Error contains possaible error code or 0 if command was successfull NI_BYUID - search by ID Inputs: * io_Data contains buffer for database entry. The buffer will be filled wtih entry data upon successfull execution. The ID member of structure should be set to desired value. * io_Length contains database len Results: * io_Actual contains length of the database entry * io_Error contains possaible error code or 0 if command was successfull NI_MEMBERS - find out memberships This command is implemented only for group unit. It collects the IDs of groups which have a given user as member. Inputs: * io_Data is address to LONG array which is filled with group IDs * io_Length is the length of the array in bytes * io_Offset is a pointer to C string containing the name of user whose memberships are desired Results: * io_Actual contains length of the group ID array in bytes * io_Error contains possaible error code or 0 if command was successfull. netinfo.device/group netinfo.device/group NAME group - format of the group permissions file DESCRIPTION The file consists of newline separated ASCII records, one per group, containing four bar `|' separated fields. These fields are as follows: group Name of the group. passwd Group's encrypted password. gid The group's decimal ID. member Group members. The group field is the group name used for granting file access to users who are members of the group. The gid field is the number associated with the group name. They should both be unique across the system (and often across a group of systems) since they control file access. The passwd field is an optional encrypted password. This field is rarely used and an asterisk is normally placed in it rather than leaving it blank. The member field contains the names of users granted the priviledges of group. The member names are separated by commas with out spaces or newlines. A user is automatically in a group if that group was specified in their AmiTCP:db/passwd entry and does not need to be added to that group in the AmiTCP:db/group file. FILES AmiTCP:db/group SEE ALSO passwd HISTORY A group file format appeared in Version 6 AT&T UNIX. netinfo.device/passwd netinfo.device/passwd NAME passwd - format of the password file DESCRIPTION The passwd files are files consisting of newline separated records, one per user, containing seven bar (`|') separated fields. These fields are as follows: name User's login name. password User's encrypted password. uid User's id. gid User's login group id. gecos General information about the user. home_dir User's home directory. shell User's login shell. The name field is the login used to access the computer account, and the uid field is the number associated with it. They should both be unique across the system (and often across a group of systems) since they control file access. While it is possible to have multiple entries with identical login names and/or identical user id's, it is usually a mistake to do so. Routines that manipulate these files will often return only one of the multiple entries, and that one by random selection. The login name must never begin with a hyphen (`-'); also, it is strongly suggested that neither upper-case characters or dots (`.') be part of the name, as this tends to confuse mailers. No field may contain a bar (`|') as this has been used to separate the fields in the user database. The password field is the encrypted form of the password. The actual format is not restricted by netinfo.device, but usergroup.library uses same format as Version 7 UNIX (POSIX) or 4.4BSD. The format used by MultiUser 1.5 or AS225r2ß is also possible, but its use is strongly discouraged. If the password field is empty, no password will be required to gain access to the machine. This is almost invariably a mistake. Because these files contain the encrypted user passwords, they should not be readable by anyone without appropriate privileges. The group field is the group that the user will be placed in upon login. The gecos field normally contains comma (`,') separated subfields as follows: name user's full name office user's office number wphone user's work phone number hphone user's home phone number This information is used by the finger program. The user's home directory is the full DOS path name where the user will be placed on login. The shell field is the command interpreter the user prefers. If there is nothing in the shell field, the CLI is assumed. FILES AmiTCP:db/passwd SEE ALSO group COPYRIGHT Copyright 1980, 1991 The Regents of the University of California. Copyright 1993, 1994 AmiTCP/IP Group, Network Solutions Development Inc. HISTORY A passwd file format appeared in Version 6 AT&T UNIX. The used format is basically the same as in the Multiuser Library 1.3 and AS225r2 use, except the password field.