int sestatus_main(int argc, char **argv)
{
	unsigned opts;
	const char *pol_path;
	int rc;

	opt_complementary = "?0";	/* no arguments are required. */
	opts = getopt32(argv, "vb");

	/* SELinux status: line */
	rc = is_selinux_enabled();
	if (rc < 0)
		goto error;
	printf(COL_FMT "%s\n", "SELinux status:",
	       rc == 1 ? "enabled" : "disabled");

	/* SELinuxfs mount: line */
	if (!selinux_mnt)
		goto error;
	printf(COL_FMT "%s\n", "SELinuxfs mount:",
	       selinux_mnt);

	/* Current mode: line */
	rc = security_getenforce();
	if (rc < 0)
		goto error;
	printf(COL_FMT "%s\n", "Current mode:",
	       rc == 0 ? "permissive" : "enforcing");

	/* Mode from config file: line */
	if (selinux_getenforcemode(&rc) != 0)
		goto error;
	printf(COL_FMT "%s\n", "Mode from config file:",
	       rc < 0 ? "disabled" : (rc == 0 ? "permissive" : "enforcing"));

	/* Policy version: line */
	rc = security_policyvers();
	if (rc < 0)
		goto error;
	printf(COL_FMT "%u\n", "Policy version:", rc);

	/* Policy from config file: line */
	pol_path = selinux_policy_root();
	if (!pol_path)
		goto error;
	printf(COL_FMT "%s\n", "Policy from config file:",
	       bb_basename(pol_path));

	if (opts & OPT_BOOLEAN)
		display_boolean();
	if (opts & OPT_VERBOSE)
		display_verbose();

	return 0;

  error:
	bb_perror_msg_and_die("libselinux returns unknown state");
}
Exemple #2
0
 void context::display_assignment(std::ostream & out) const {
     if (!m_assigned_literals.empty()) {
         out << "current assignment:\n";
         for (literal lit : m_assigned_literals) {
             display_literal(out, lit);
             out << ": ";
             display_verbose(out, m_manager, 1, &lit, m_bool_var2expr.c_ptr());
             out << "\n";
         }
     }
 }
 void context::display_assignment(std::ostream & out) const {
     if (!m_assigned_literals.empty()) {
         out << "current assignment:\n";
         literal_vector::const_iterator it  = m_assigned_literals.begin();
         literal_vector::const_iterator end = m_assigned_literals.end();
         for (; it != end; ++it) {
             display_literal(out, *it);
             out << ": ";
             display_verbose(out, m_manager, 1, &*it, m_bool_var2expr.c_ptr());
             out << "\n";
         }
     }
 }
 void context::display_literals_verbose(std::ostream & out, unsigned num_lits, literal const * lits) const {
     display_verbose(out, m_manager, num_lits, lits, m_bool_var2expr.c_ptr(), "\n");
 }