AUSAM/source/S/val.c
#include <local-system>
#include <passwd.h>
#include <ttygroup.h>
/*
* Validate or unvalidate a particular user to or from
* a certain tty group. Usage is
* val lname [+][-]ttygroups
*
* where lname is the users login name
* the optional + or - mean add or remove
* permissions for the following ttygroups
* default is add
* ttygroups are letters (abc etc) corresp to
* thoses in ttygroups.h
*
*/
char add 1;
main(c, v)
int c;
char **v;
{
struct pwent pe;
char *term;
if(c == 3)
{
v++;
pe.pw_strings[LNAME] = *v;
if(getpwuid(&pe, 0, 0) != -1)
{
switch(*(term = *++v))
{
case '-':
add = 0;
case '+':
term++;
}
while(*term)
if(add)
pe.pw_tmask =| tflag(*term++);
else
pe.pw_tmask =& ~tflag(*term++);
if(updtpwent(&pe) < 0)
printf("val: passwd update error\n");
}
else
printf("val: %s no such lname\n", *v);
}
else
{
printf("usage: val lname [+][-]ttys\n");
printf(" ttys - list of ttygroup letters (abc..)\n");
printf(" + add ttygroup\n - delete ttygroup\n");
}
}
tflag(term)
char term;
{
int i;
for(i = 0; i < NTTYGRPS; i++)
if(term == tty_group[i].tchar)
return(tty_group[i].tmask);
printf("val: %c no such ttygroup\n", term);
return(0);
}