# 2.11BSD#431 - /usr/src/new/notes/src/nfaccess.c

##### Functions

    main              X
    usage             X

##### Variables

    Newmodes          X

##### Macros

    MAINLINE          X
    MAXADD            X

       1: #define     MAINLINE
       2: #include    "parms.h"
       3: #include    "structs.h"
       4:
       5: #ifdef  RCSIDENT
       6: static char rcsid[] = "$Header: nfaccess.c,v 1.7 85/01/18 15:40:27 notes Rel $";
       7: #endif	RCSIDENT
       8:
       9: /*
      10:  *	This program works sort of chmod by adding/deleting
      11:  *	permissions to the specified access lists.
      12:  *
      13:  *	Any normal user can run this program. It only allows changes
      14:  *	to notesfiles the user is a director in.
      15:  *
      16:  *	Ray Essick		February 1984
      17:  */
      18:
      19:
      20:
      21: #define     MAXADD      1           /* simultaneous adds */
      22: struct perm_f   Newmodes[MAXADD];           /* inserted modes */
      23: static int  nmodes = 0;                 /* active slots */
      24:
      25: #include    <pwd.h>
      26: #include    <grp.h>
      27: extern struct passwd   *getpwnam ();
      28: extern struct group *getgrnam ();
      29:
      30:
      31: main (argc, argv)
      32: int     argc;
      33: char  **argv;
      34: {
      35:     struct io_f io;
      36:     int     argn;
      37:     struct nflist_f *nfptr;
      38:
      39:     startup (argc, argv);               /* common init code */
      40:
      41:     if (parsemode (argv[1], &Newmodes[nmodes++], 1))    /* grab a mode */
      42:     {
      43:     usage (argv[0]);                /* incorrect */
      44:     }
      45:
      46:     for (argn = 2; argn < argc; argn++)
      47:     {
      48:     expand (argv[argn]);                /* load it */
      49:     }
      50:
      51:     while ((nfptr = nextgroup ()) != (struct nflist_f *) NULL)
      52:     {
      53:     if (init (&io, nfptr -> nf_name) < 0)       /* open */
      54:     {
      55:         printf ("%s:	couldn't open\n", nfptr -> nf_name);
      56:         continue;
      57:     }
      58:     if (!allow (&io, DRCTOK))           /* a director? */
      59:     {
      60:         printf ("%s:	Not a director\n", nfptr -> nf_name);
      61:         closenf (&io);
      62:         continue;
      63:     }
      64:
      65:     addmodes (&io, nmodes, &Newmodes, 1);       /* add permissions */
      66:     closenf (&io);
      67:     }
      68:     exit (0);                       /* all done */
      69: }
      70:
      71: usage (name)                        /* how to invoke */
      72: char   *name;
      73: {
      74:     fprintf (stderr,
      75:         "Usage: %s <permission> <notesfile> [<notesfile>...]\n",
      76:         name);
      77:     exit (1);
      78: }

#### Defined functions

main defined in line 31; never used
usage defined in line 71; used 1 times

- in line 43

#### Defined variables

Newmodes defined in line 22; used 2 times

- in line 41, 65

nmodes defined in line 23; used 2 times

- in line 41, 65

rcsid defined in line 6; never used

#### Defined macros

MAINLINE defined in line 1; never used
MAXADD defined in line 21; used 1 times

- in line 22

Last modified: 1985-01-19 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 667 |