/* * Copyright (C) 2002-2004 Sistina Software, Inc. All rights reserved. * Copyright (C) 2004 Red Hat, Inc. All rights reserved. * * This file is part of LVM2. * * This copyrighted material is made available to anyone wishing to use, * modify, copy, or redistribute it subject to the terms and conditions * of the GNU General Public License v.2. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "lib.h" #include "selinux.h" #include int set_selinux_context(const char *path) { security_context_t scontext; log_very_verbose("Setting SELinux context for %s", path); if (is_selinux_enabled() <= 0) return 1; if (matchpathcon(path, 0, &scontext) < 0) { log_sys_error("matchpathcon", path); return 0; } if ((lsetfilecon(path, scontext) < 0) && (errno != ENOTSUP)) { log_sys_error("lsetfilecon", path); free(scontext); return 0; } free(scontext); return 1; }