setsebool.c 792 B

123456789101112131415161718192021222324252627282930313233343536
  1. /*
  2. * setsebool
  3. * Simple setsebool
  4. * NOTE: -P option requires libsemanage, so this feature is
  5. * omitted in this version
  6. * Yuichi Nakamura <ynakam@hitachisoft.jp>
  7. *
  8. * Licensed under GPLv2, see file LICENSE in this tarball for details.
  9. */
  10. #include "libbb.h"
  11. int setsebool_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
  12. int setsebool_main(int argc, char **argv)
  13. {
  14. char *p;
  15. int value;
  16. if (argc != 3)
  17. bb_show_usage();
  18. p = argv[2];
  19. if (LONE_CHAR(p, '1') || strcasecmp(p, "true") == 0 || strcasecmp(p, "on") == 0) {
  20. value = 1;
  21. } else if (LONE_CHAR(p, '0') || strcasecmp(p, "false") == 0 || strcasecmp(p, "off") == 0) {
  22. value = 0;
  23. } else {
  24. bb_show_usage();
  25. }
  26. if (security_set_boolean(argv[1], value) < 0)
  27. bb_error_msg_and_die("can't set boolean");
  28. return 0;
  29. }