udev: add SECLABEL{selinux}= support
This commit is contained in:
parent
35bffce819
commit
463b5dbb0d
|
@ -384,3 +384,15 @@ skipped:
|
|||
#endif
|
||||
return bind(fd, addr, addrlen) < 0 ? -errno : 0;
|
||||
}
|
||||
|
||||
int label_apply(const char *path, const char *label) {
|
||||
int r = 0;
|
||||
|
||||
#ifdef HAVE_SELINUX
|
||||
if (!use_selinux())
|
||||
return 0;
|
||||
|
||||
r = setfilecon(path, (char *)label);
|
||||
#endif
|
||||
return r;
|
||||
}
|
||||
|
|
|
@ -46,6 +46,8 @@ void label_retest_selinux(void);
|
|||
|
||||
int label_bind(int fd, const struct sockaddr *addr, socklen_t addrlen);
|
||||
|
||||
int label_apply(const char *path, const char *label);
|
||||
|
||||
int label_write_one_line_file_atomic(const char *fn, const char *line);
|
||||
int label_write_env_file(const char *fname, char **l);
|
||||
int label_fopen_temporary(const char *path, FILE **_f, char **_temp_path);
|
||||
|
|
|
@ -305,8 +305,10 @@ static int node_permissions_apply(struct udev_device *dev, bool apply,
|
|||
|
||||
if (streq(name, "selinux")) {
|
||||
selinux = true;
|
||||
/* FIXME: hook up libselinux */
|
||||
log_error("SECLABEL: failed to set selinux label '%s'", label);
|
||||
if (label_apply(devnode, label) < 0)
|
||||
log_error("SECLABEL: failed to set SELinux label '%s'", label);
|
||||
else
|
||||
log_debug("SECLABEL: set SELinux label '%s'", label);
|
||||
|
||||
#ifdef HAVE_SMACK
|
||||
} else if (streq(name, "smack")) {
|
||||
|
|
Loading…
Reference in a new issue