1*9a747e4fSDavid du Colombier #include "common.h" 2*9a747e4fSDavid du Colombier #include <auth.h> 3*9a747e4fSDavid du Colombier #include <ndb.h> 4*9a747e4fSDavid du Colombier 5*9a747e4fSDavid du Colombier /* 6*9a747e4fSDavid du Colombier * become powerless user 7*9a747e4fSDavid du Colombier */ 8*9a747e4fSDavid du Colombier int become(char ** cmd,char * who)9*9a747e4fSDavid du Colombierbecome(char **cmd, char *who) 10*9a747e4fSDavid du Colombier { 11*9a747e4fSDavid du Colombier int fd; 12*9a747e4fSDavid du Colombier 13*9a747e4fSDavid du Colombier USED(cmd); 14*9a747e4fSDavid du Colombier if(strcmp(who, "none") == 0) { 15*9a747e4fSDavid du Colombier fd = open("#c/user", OWRITE); 16*9a747e4fSDavid du Colombier if(fd < 0 || write(fd, "none", strlen("none")) < 0) { 17*9a747e4fSDavid du Colombier werrstr("can't become none"); 18*9a747e4fSDavid du Colombier return -1; 19*9a747e4fSDavid du Colombier } 20*9a747e4fSDavid du Colombier close(fd); 21*9a747e4fSDavid du Colombier if(newns("none", 0)) { 22*9a747e4fSDavid du Colombier werrstr("can't set new namespace"); 23*9a747e4fSDavid du Colombier return -1; 24*9a747e4fSDavid du Colombier } 25*9a747e4fSDavid du Colombier } 26*9a747e4fSDavid du Colombier return 0; 27*9a747e4fSDavid du Colombier } 28*9a747e4fSDavid du Colombier 29