10f66f451Sopenharmony_ci/* runcon.c - Run command in specified security context 20f66f451Sopenharmony_ci * 30f66f451Sopenharmony_ci * Copyright 2015 The Android Open Source Project 40f66f451Sopenharmony_ci 50f66f451Sopenharmony_ciUSE_RUNCON(NEWTOY(runcon, "<2", TOYFLAG_USR|TOYFLAG_SBIN)) 60f66f451Sopenharmony_ci 70f66f451Sopenharmony_ciconfig RUNCON 80f66f451Sopenharmony_ci bool "runcon" 90f66f451Sopenharmony_ci depends on TOYBOX_SELINUX 100f66f451Sopenharmony_ci default y 110f66f451Sopenharmony_ci help 120f66f451Sopenharmony_ci usage: runcon CONTEXT COMMAND [ARGS...] 130f66f451Sopenharmony_ci 140f66f451Sopenharmony_ci Run a command in a specified security context. 150f66f451Sopenharmony_ci*/ 160f66f451Sopenharmony_ci 170f66f451Sopenharmony_ci#define FOR_runcon 180f66f451Sopenharmony_ci#include "toys.h" 190f66f451Sopenharmony_ci 200f66f451Sopenharmony_civoid runcon_main(void) 210f66f451Sopenharmony_ci{ 220f66f451Sopenharmony_ci char *context = *toys.optargs; 230f66f451Sopenharmony_ci 240f66f451Sopenharmony_ci if (setexeccon(context)) perror_exit("Could not set context to %s", context); 250f66f451Sopenharmony_ci 260f66f451Sopenharmony_ci toys.stacktop = 0; 270f66f451Sopenharmony_ci xexec(++toys.optargs); 280f66f451Sopenharmony_ci} 29