snv add setsebool
authorvda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277>
Thu, 18 Oct 2007 10:46:42 +0000 (10:46 +0000)
committervda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277>
Thu, 18 Oct 2007 10:46:42 +0000 (10:46 +0000)
git-svn-id: svn://busybox.net/trunk/busybox@20281 69ca8d6d-28ef-0310-b511-8ec308f3f277

selinux/setsebool.c [new file with mode: 0644]

diff --git a/selinux/setsebool.c b/selinux/setsebool.c
new file mode 100644 (file)
index 0000000..83e70e2
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * setsebool
+ * Simple setsebool
+ * NOTE: -P option requires libsemanage, so this feature is
+ * omitted in this version
+ * Yuichi Nakamura <ynakam@hitachisoft.jp>
+ */
+
+#include "libbb.h"
+
+int setsebool_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+int setsebool_main(int argc, char **argv)
+{
+       char *p;
+       int value;
+
+       if (argc != 3)
+               bb_show_usage();
+
+       p = argv[2];
+
+       if (LONE_CHAR(p, '1') || strcasecmp(p, "true") == 0 || strcasecmp(p, "on") == 0) {
+               value = 1;
+       } else if (LONE_CHAR(p, '0') || strcasecmp(p, "false") == 0 || strcasecmp(p, "off") == 0) {
+               value = 0;
+       } else {
+               bb_show_usage();
+       }
+
+       if (security_set_boolean(argv[1], value) < 0)
+               bb_error_msg_and_die("can't set boolean");
+
+       return 0;
+}