basically none of these build
This commit is contained in:
parent
d9c8a7c536
commit
be8b315d15
19 changed files with 1459 additions and 0 deletions
45
src/libauth/noworld.c
Normal file
45
src/libauth/noworld.c
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <bio.h>
|
||||
#include <auth.h>
|
||||
|
||||
/*
|
||||
* see if user is in the group noworld, i.e., has all file
|
||||
* priviledges masked with 770, and all directories with
|
||||
* 771, before checking access rights
|
||||
*/
|
||||
int
|
||||
noworld(char *user)
|
||||
{
|
||||
Biobuf *b;
|
||||
char *p;
|
||||
int n;
|
||||
|
||||
b = Bopen("/adm/users", OREAD);
|
||||
if(b == nil)
|
||||
return 0;
|
||||
while((p = Brdline(b, '\n')) != nil){
|
||||
p[Blinelen(b)-1] = 0;
|
||||
p = strchr(p, ':');
|
||||
if(p == nil)
|
||||
continue;
|
||||
if(strncmp(p, ":noworld:", 9) == 0){
|
||||
p += 9;
|
||||
break;
|
||||
}
|
||||
}
|
||||
n = strlen(user);
|
||||
while(p != nil && *p != 0){
|
||||
p = strstr(p, user);
|
||||
if(p == nil)
|
||||
break;
|
||||
if(*(p-1) == ':' || *(p-1) == ',')
|
||||
if(*(p+n) == ':' || *(p+n) == ',' || *(p+n) == 0){
|
||||
Bterm(b);
|
||||
return 1;
|
||||
}
|
||||
p++;
|
||||
}
|
||||
Bterm(b);
|
||||
return 0;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue