blob: 37477652b66a80d77c3c8c44ddf40ad030aec04e
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" |
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 | } |
49 |