auth_chuid.c

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

C
39
字号
#include <u.h>#include <libc.h>#include <auth.h>/* *  become the authenticated user */intauth_chuid(AuthInfo *ai, char *ns){	int rv, fd;	if(ai == nil || ai->cap == nil){		werrstr("no capability");		return -1;	}	/* change uid */	fd = open("#¤/capuse", OWRITE);	if(fd < 0){		werrstr("opening #¤/capuse: %r");		return -1;	}	rv = write(fd, ai->cap, strlen(ai->cap));	close(fd);	if(rv < 0){		werrstr("writing %s to #¤/capuse: %r", ai->cap);		return -1;	}	/* get a link to factotum as new user */	fd = open("/srv/factotum", ORDWR);	if(fd >= 0)		mount(fd, -1, "/mnt", MREPL, "");	/* set up new namespace */	return newns(ai->cuid, ns);}

⌨️ 快捷键说明

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