busybox/selinux/getenforce.c
<<
>>
Prefs
   1/*
   2 * getenforce
   3 *
   4 * Based on libselinux 1.33.1
   5 * Port to BusyBox  Hiroshi Shinji <shiroshi@my.email.ne.jp>
   6 *
   7 * Licensed under GPLv2, see file LICENSE in this source tree.
   8 */
   9//config:config GETENFORCE
  10//config:       bool "getenforce (1.7 kb)"
  11//config:       default n
  12//config:       depends on SELINUX
  13//config:       help
  14//config:       Enable support to get the current mode of SELinux.
  15
  16//applet:IF_GETENFORCE(APPLET(getenforce, BB_DIR_USR_SBIN, BB_SUID_DROP))
  17
  18//kbuild:lib-$(CONFIG_GETENFORCE) += getenforce.o
  19
  20//usage:#define getenforce_trivial_usage NOUSAGE_STR
  21//usage:#define getenforce_full_usage ""
  22
  23#include "libbb.h"
  24
  25int getenforce_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
  26int getenforce_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
  27{
  28        int rc;
  29
  30        rc = is_selinux_enabled();
  31        if (rc < 0)
  32                bb_error_msg_and_die("is_selinux_enabled() failed");
  33
  34        if (rc == 1) {
  35                rc = security_getenforce();
  36                if (rc < 0)
  37                        bb_error_msg_and_die("getenforce() failed");
  38
  39                if (rc)
  40                        puts("Enforcing");
  41                else
  42                        puts("Permissive");
  43        } else {
  44                puts("Disabled");
  45        }
  46
  47        return 0;
  48}
  49