10f66f451Sopenharmony_ci/* getenforce.c - Get the current SELinux mode 20f66f451Sopenharmony_ci * 30f66f451Sopenharmony_ci * Copyright 2014 The Android Open Source Project 40f66f451Sopenharmony_ci 50f66f451Sopenharmony_ciUSE_GETENFORCE(NEWTOY(getenforce, ">0", TOYFLAG_USR|TOYFLAG_SBIN)) 60f66f451Sopenharmony_ci 70f66f451Sopenharmony_ciconfig GETENFORCE 80f66f451Sopenharmony_ci bool "getenforce" 90f66f451Sopenharmony_ci default y 100f66f451Sopenharmony_ci depends on TOYBOX_SELINUX 110f66f451Sopenharmony_ci help 120f66f451Sopenharmony_ci usage: getenforce 130f66f451Sopenharmony_ci 140f66f451Sopenharmony_ci Shows whether SELinux is disabled, enforcing, or permissive. 150f66f451Sopenharmony_ci*/ 160f66f451Sopenharmony_ci 170f66f451Sopenharmony_ci#define FOR_getenforce 180f66f451Sopenharmony_ci#include "toys.h" 190f66f451Sopenharmony_ci 200f66f451Sopenharmony_civoid getenforce_main(void) 210f66f451Sopenharmony_ci{ 220f66f451Sopenharmony_ci if (!is_selinux_enabled()) puts("Disabled"); 230f66f451Sopenharmony_ci else { 240f66f451Sopenharmony_ci int ret = security_getenforce(); 250f66f451Sopenharmony_ci 260f66f451Sopenharmony_ci if (ret == -1) perror_exit("Couldn't get enforcing status"); 270f66f451Sopenharmony_ci else puts(ret ? "Enforcing" : "Permissive"); 280f66f451Sopenharmony_ci } 290f66f451Sopenharmony_ci} 30