newns.c 486 B

1234567891011121314151617181920212223242526272829303132
  1. #include <u.h>
  2. #include <libc.h>
  3. #include <auth.h>
  4. void
  5. usage(void)
  6. {
  7. fprint(2, "usage: newns [-n namespace] [cmd [args...]]\n");
  8. exits("usage");
  9. }
  10. void
  11. main(int argc, char **argv)
  12. {
  13. char *nsfile;
  14. char *defargv[] = { "/bin/rc", "-i", nil };
  15. nsfile = "/lib/namespace";
  16. ARGBEGIN{
  17. case 'n':
  18. nsfile = ARGF();
  19. break;
  20. default:
  21. usage();
  22. break;
  23. }ARGEND
  24. if(argc == 0)
  25. argv = defargv;
  26. newns(getuser(), nsfile);
  27. exec(argv[0], argv);
  28. sysfatal("exec: %s: %r", argv[0]);
  29. }