#include <u.h>
#include <libc.h>
-#include <bio.h>
#include <auth.h>
char *dest = "system";
void post(char*, int);
void mountfs(char*, int);
int doauth = 1;
+int asnone = 0;
void
usage(void)
{
- fprint(2, "usage: %s [-abcCm] [net!]host [srvname [mtpt]]\n", argv0);
- fprint(2, " or %s -e [-abcCm] command [srvname [mtpt]]\n", argv0);
+ fprint(2, "usage: %s [-abcCmnNq] [net!]host [srvname [mtpt]]\n", argv0);
+ fprint(2, " or %s -e [-abcCmnNq] command [srvname [mtpt]]\n", argv0);
exits("usage");
}
rfork(RFNOTEG);
dup(p[0], 0);
dup(p[0], 1);
+ close(p[0]);
close(p[1]);
execl("/bin/rc", "rc", "-c", cmd, nil);
fprint(2, "exec failed: %r\n");
domount = 1;
reallymount = 1;
break;
+ case 'N':
+ asnone = 1;
+ /* no break */
case 'n':
doauth = 0;
break;
if(domount == 0 || reallymount == 0)
exits(0);
+ if(asnone){
+ try = open("#c/user", OWRITE);
+ if(try < 0 || write(try, "none", 4) != 4){
+ fprint(2, "srv %s: can't become none: %r\n", dest);
+ exits("becomenone");
+ }
+ try = 0;
+ }
+
if((!doauth && mount(fd, -1, mtpt, mountflag, "") < 0)
|| (doauth && amount(fd, mtpt, mountflag, "") < 0)){
err[0] = 0;