busybox/selinux/setenforce.c
<<
>>
Prefs
   1/*
   2 * setenforce
   3 *
   4 * Based on libselinux 1.33.1
   5 * Port to BusyBox  Hiroshi Shinji <shiroshi@my.email.ne.jp>
   6 *
   7 */
   8
   9#include "libbb.h"
  10
  11/* These strings are arranged so that odd ones
  12 * result in security_setenforce(1) being done,
  13 * the rest will do security_setenforce(0) */
  14static const char *const setenforce_cmd[] = {
  15        "0",
  16        "1",
  17        "permissive",
  18        "enforcing",
  19        NULL,
  20};
  21
  22int setenforce_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
  23int setenforce_main(int argc, char **argv)
  24{
  25        int i, rc;
  26
  27        if (argc != 2)
  28                bb_show_usage();
  29
  30        selinux_or_die();
  31
  32        for (i = 0; setenforce_cmd[i]; i++) {
  33                if (strcasecmp(argv[1], setenforce_cmd[i]) != 0)
  34                        continue;
  35                rc = security_setenforce(i & 1);
  36                if (rc < 0)
  37                        bb_perror_msg_and_die("setenforce() failed");
  38                return 0;
  39        }
  40
  41        bb_show_usage();
  42}
  43