1*cf5a6c84SAndroid Build Coastguard Worker /* getenforce.c - Get the current SELinux mode 2*cf5a6c84SAndroid Build Coastguard Worker * 3*cf5a6c84SAndroid Build Coastguard Worker * Copyright 2014 The Android Open Source Project 4*cf5a6c84SAndroid Build Coastguard Worker 5*cf5a6c84SAndroid Build Coastguard Worker USE_GETENFORCE(NEWTOY(getenforce, ">0", TOYFLAG_USR|TOYFLAG_SBIN)) 6*cf5a6c84SAndroid Build Coastguard Worker 7*cf5a6c84SAndroid Build Coastguard Worker config GETENFORCE 8*cf5a6c84SAndroid Build Coastguard Worker bool "getenforce" 9*cf5a6c84SAndroid Build Coastguard Worker default y 10*cf5a6c84SAndroid Build Coastguard Worker depends on TOYBOX_SELINUX 11*cf5a6c84SAndroid Build Coastguard Worker help 12*cf5a6c84SAndroid Build Coastguard Worker usage: getenforce 13*cf5a6c84SAndroid Build Coastguard Worker 14*cf5a6c84SAndroid Build Coastguard Worker Shows whether SELinux is disabled, enforcing, or permissive. 15*cf5a6c84SAndroid Build Coastguard Worker */ 16*cf5a6c84SAndroid Build Coastguard Worker 17*cf5a6c84SAndroid Build Coastguard Worker #define FOR_getenforce 18*cf5a6c84SAndroid Build Coastguard Worker #include "toys.h" 19*cf5a6c84SAndroid Build Coastguard Worker getenforce_main(void)20*cf5a6c84SAndroid Build Coastguard Workervoid getenforce_main(void) 21*cf5a6c84SAndroid Build Coastguard Worker { 22*cf5a6c84SAndroid Build Coastguard Worker if (!is_selinux_enabled()) puts("Disabled"); 23*cf5a6c84SAndroid Build Coastguard Worker else { 24*cf5a6c84SAndroid Build Coastguard Worker int ret = security_getenforce(); 25*cf5a6c84SAndroid Build Coastguard Worker 26*cf5a6c84SAndroid Build Coastguard Worker if (ret == -1) perror_exit("Couldn't get enforcing status"); 27*cf5a6c84SAndroid Build Coastguard Worker else puts(ret ? "Enforcing" : "Permissive"); 28*cf5a6c84SAndroid Build Coastguard Worker } 29*cf5a6c84SAndroid Build Coastguard Worker } 30