unzip: use printable_string() for printing filenames
[oweals/busybox.git] / selinux / getenforce.c
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
25 int getenforce_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
26 int 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 }