permit - RCS directory-level permissions


       permit [options] [directory-specifications]


       Permit maintains a special-purpose RCS archive in each RCS directory in
       a tree of files.  The special archive records the access list for users
       who  are  allowed  to  use  the checkin and checkout utilities to place
       locks on archives in the corresponding  directories,  as  well  as  the
       initial revision number for new files.


       Permit  scans each directory-tree given as an argument.  If no argument
       is given, permit processes the tree beginning with ".".

       Each  time  an  RCS  directory  is  found,  permit  determines  if  the
       directory-access file exists.

       If  no  directory-access  file is found, permit scans through all other
       archives in the directory to infer the baseline version, and from  that
       the  initial revision number for new files which may be created in that
       directory.  Then, permit creates a directory access file.  By  default,
       the RCS directory owner is on each access list - otherwise manipulating
       it is complicated.

       Normally, permit issues rcs commands to add the directory owner to  the
       access list of each archive.  The "-p" (purge) option is used to delete
       all usernames from the access lists.


           adds the list of specified users to each RCS archive access list.

           specifies the baseline version for the directory.  This must be  an
           integer  greater  than one.  Permit verifies that no version in the
           directory is higher than this value.   Thereafter,  this  sets  the
           initial  version  for new files which are archived using checkin in
           the directory.

           expunges the list of specified users to  each  RCS  archive  access

       -l  show symbolic links

           overrides  permit's  default  revision-log  message "BASELINE date"
           which is entered in the RCS,v file.

       -n  no-op mode causes permit to run, showing what it would try to do.

       -p  purges all usernames from each RCS archive access list.

       -q  makes the listing less verbose (i.e., suppresses display of the rcs
           and ci commands, and of the directory tree).

       -s  same as "-q".

           generates  a report showing which archives have the specified users
           in their access lists.

       -v  makes the display more verbose; the names of files which cannot  be
           opened are reported.


       An example of the use of permit is shown below.  The user has asked for
       a report  showing  what  actions  permit  would  make  on  the  current
       directory tree.  The directory-access archives are not found, so permit
       scans through each RCS archive to obtain the baseline revision number:

            bsd4.2(64) permit -n
            ** path = .
               1:    ./
               2:    |-- RCS/
               3:    |---|-- 2.1 > COPYRIGHT,v (dickey,impact)
               4:    |---|-- 2.2 > Makefile,v (dickey,impact)
               5:    |---|-- 2.2 > README,v (dickey,impact)
               6:    |---|-- 2.1 > descrip.mms,v (dickey,impact)
            ci -mPERMIT FILE -r2.1 ./RCS ./RCS,v
            rcs -aimpact ./RCS,v
               7:    |-- certificate/
               8:    |---|-- RCS/
               9:    |---|---|-- 2.1 > Makefile,v (dickey,impact)
              10:    |---|---|-- 2.1 > config_sheet.txt,v (dickey,impact)
              11:    |---|---|-- 2.1 > descrip.mms,v (dickey,impact)
              12:    |---|---|-- 2.1 > release_notes.txt,v (dickey,impact)


       Permit  is  a  C-language  program  which  runs  in  a  portable  POSIX

       Environment variables include:

              specifies  the  directory  in  which  permit  will find the ",v"
              files.  If not specified, permit assumes "RCS".


       Permit is a single binary file, "permit".  Within each  RCS  directory,
       permit maintains an archive "RCS,v", which records the directory-access
       list, as well as the beginning revision  number  for  new  files.   The
       directory-acces   s   archive   file  is  named  so  that  the  set-uid
       applications checkin and checkout are unable to modify it.




       baseline, rcs (1), ci (1).


       Thomas E. Dickey <>