noworld.c

来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 46 行

C
46
字号
#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 */intnoworld(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;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?