  J /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  *  *  *<  *                %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\=  *                %% \___________________________________%% \ >  *                %% |                                   %%  \?  *                %% |             NEXT_UIC              %%   \ @  *                %% |         next_uic.c  c2004         %%    \@  *                %% |            Lyle W. West           %%    |@  *                %% |                                   %%    |@  *                %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    |@  *                \                                        \   |@  *                 \                                        \  |@  *                  \                                        \ |@  *                   \________________________________________\|  *  *B  *      Copyright (C) 2004, 1998 Lyle W. West, Hein van den Heuvel  *      All Rights Reserved.N  *      Permission is granted to copy and use this program so long as [1] thisL  *      copyright notice is preserved, and [2] no financial gain is involvedL  *      in copying the program.  This program may not be sold as "shareware"K  *      or "public domain" software without the express, written permission   *      of the authors.   *G  *      This program provides the next available uic available within a E  *      uic group. The UID (user identification) is based on the next C  *      highest value above the current highest value, and does not F  *      consider gaps caused by former user accounts. The single inputD  *      parameter is any username within the desired group. All userH  *      accounts above the entered username are located, and the user isD  *      presented with the next uid value above the current highest.  *H  *      Originally created by Hein van den Heuvel in 1998 in response toC  *      a posted request on COMP-OS-VMS, it was posted by Hein as a L  *      concept, and was written to be built utilizing VaxC. It was recentlyG  *      resurrected and cleaned up, extensively modified and now can be   *      built using DecC V6.2   *H  *      The original 1998 posting and source are in this directory under;  *      the filename NEXT_UIC.SRC if there is any interest,   *7  *      User should define a foreign symbol as follows:   *<  *          $ next_uic == "$ device:[dir1.dir2]next_uic.exe"  *#  *          Usage: next_uic newuser *  *                 next_uic /group=default&  *                 next_uic /group=200  *G  *      Where newuser is the username of any user in the group in which E  *      the new UIC is to be created. Else user can omit the Username J  *      parameter and use the /GROUP qualifier. This qualifier will acceptI  *      a identifier name representing the target group or it will accept E  *      a numeric identifier value. The numeric identifier must be an %  *      octal group identifier value.   *H  *      NEXT_UIC will display the next unused UIC value for the new userI  *      based on the parameter or qualifier entered. Disabled or inactive M  *      UIC values are not evaluated, since DISUSERed accounts can have files G  *      in various locations which can and have created problems during   *      security audits.  *I  *      07-Sep-04: Added SYMBOLS qualifier. Thanks to Jeremy Begg for the @  *      suggestion and code samples. Use of SYMBOLS is optional.  *E  *      Next_Uic displays output as three octal digits for both group H  *      and member values. This will permit up to 511 users. If a largerG  *      number if users requires higher resolution, change the 'printf'   *      statements as follows:<  *          From: printf("\nNext Octal Uic: [%03o,%03o]\n\n"<  *            To: printf("\nNext Octal Uic: [%06o,%06o]\n\n"  *D  *      This application must be relinked if the current VMS version/  *      is upgraded to version 7.3-2 or higher.   *  *      NEXT_UIC (V1.3-5)   *  *       Parameters   *:  *        USERNAME - Any username within the group where aE  *                   user is to be added. The next avilable UIC value J  *                   will be displayed for that partiular group. Note that?  *                   missing and DISUSERed UICs are not reused. ?  *                   Optional, not needed if /GROUP is entered.   *  *       Qualifiers   *A  *        /GROUP=xxx - Symbolic or numeric group identifier value 9  *                   representing the group to add a uic. A  *                   Optional, not needed if USERNAME is entered.   *@  *        /LIST_GROUP=xxx - if present, NUIC will display a listG  *                   of all users withing that group. The entered value G  *                   can be either an identifier name or an octal group   *                   number.  *A  *        /SYMBOLS - if present, NUIC defines global DCL symbols: =  *                   NEXT_UIC_GRP - the group number in octal >  *                   NEXT_UIC_MEM - the member number in octal0  *                   NEXT_UIC_UIC - the full UIC  *B  *        /HELP - if present, NUIC displays list of parameters and2  *                   qualifiers available for NUIC  *B  *        /VERSION - if present NUIC displays version, build date,'  *                   and required privs   *  *  *       Usage Examples:  *   *          $ next_uic /list=200  *5  *            Username         Uic              Owner 8  *            DEFAULT          [200,200]        Template<  *            ABCDEF           [200,202]        Network TestF  *            BILF             [200,203]        Non-Group Test AccountG  *            HTTP_SERVER      [200,204]        OSU Http Server Account >  *            DUMMY            [200,205]        Dummy, no priv  *  *            Summary: 5 Users  *
  *          $   *          $ next_uic default  *'  *            Next Octal Uic: [200,206]   *
  *          $ %  *          $ next_uic /group=testgrp   *'  *            Next Octal Uic: [200,206]   *
  *          $   *K  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */   