bootauth.c
来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 74 行
C
74 行
#include <u.h>#include <libc.h>#include <auth.h>#include <fcall.h>#include "../boot/boot.h"char *authaddr;static void glenda(void);voidauthentication(int cpuflag){ char *argv[16], **av; int ac; if(access("/boot/factotum", AEXEC) < 0){ glenda(); return; } /* start agent */ ac = 0; av = argv; av[ac++] = "factotum"; if(getenv("debugfactotum")) av[ac++] = "-p";//av[ac++] = "-d"; //debug traces//av[ac++] = "-D"; //9p messages if(cpuflag) av[ac++] = "-S"; else av[ac++] = "-u"; av[ac++] = "-sfactotum"; if(authaddr != nil){ av[ac++] = "-a"; av[ac++] = authaddr; } av[ac] = 0; switch(fork()){ case -1: fatal("starting factotum: %r"); case 0: exec("/boot/factotum", av); fatal("execing /boot/factotum"); default: break; } /* wait for agent to really be there */ while(access("/mnt/factotum", 0) < 0) sleep(250); if(cpuflag) return;}static voidglenda(void){ int fd; char *s; s = getenv("user"); if(s == nil) s = "glenda"; fd = open("#c/hostowner", OWRITE); if(fd >= 0){ if(write(fd, s, strlen(s)) != strlen(s)) fprint(2, "setting #c/hostowner to %s: %r\n", s); close(fd); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?