mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-10-30 06:25:25 +03:00
selinux: more context settings
Signed-off-by: Harald Hoyer <harald@redhat.com>
This commit is contained in:
parent
e6d70ed63a
commit
6056d9b340
@ -144,8 +144,12 @@ int udev_db_add_device(struct udevice *udev)
|
||||
*/
|
||||
if (list_empty(&udev->symlink_list) && list_empty(&udev->env_list) &&
|
||||
!udev->partitions && !udev->ignore_remove) {
|
||||
int ret;
|
||||
dbg("nothing interesting to store, create symlink");
|
||||
if (symlink(udev->name, filename) != 0) {
|
||||
selinux_setfscreatecon(filename, NULL, S_IFLNK);
|
||||
ret = symlink(udev->name, filename);
|
||||
selinux_resetfscreatecon();
|
||||
if (ret != 0) {
|
||||
err("unable to create db link '%s': %s", filename, strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
|
@ -745,7 +745,9 @@ int udev_rules_init(struct udev_rules *rules, int resolve_names)
|
||||
strlcat(filename, "/"RULES_DYN_DIR, sizeof(filename));
|
||||
if (stat(filename, &statbuf) != 0) {
|
||||
create_path(filename);
|
||||
selinux_setfscreatecon(filename, NULL, S_IFDIR|0755);
|
||||
mkdir(filename, 0755);
|
||||
selinux_resetfscreatecon();
|
||||
}
|
||||
add_matching_files(&dyn_list, filename, RULESFILE_SUFFIX);
|
||||
|
||||
|
@ -35,6 +35,7 @@ int create_path(const char *path)
|
||||
char p[PATH_SIZE];
|
||||
char *pos;
|
||||
struct stat stats;
|
||||
int ret;
|
||||
|
||||
strlcpy(p, path, sizeof(p));
|
||||
pos = strrchr(p, '/');
|
||||
@ -53,8 +54,12 @@ int create_path(const char *path)
|
||||
return -1;
|
||||
|
||||
dbg("mkdir '%s'", p);
|
||||
if (mkdir(p, 0755) == 0)
|
||||
selinux_setfscreatecon(p, NULL, S_IFDIR|0755);
|
||||
ret = mkdir(p, 0755);
|
||||
selinux_resetfscreatecon();
|
||||
if (ret == 0)
|
||||
return 0;
|
||||
|
||||
if (errno == EEXIST)
|
||||
if (stat(p, &stats) == 0 && (stats.st_mode & S_IFMT) == S_IFDIR)
|
||||
return 0;
|
||||
|
2
udevd.c
2
udevd.c
@ -168,7 +168,9 @@ static void export_event_state(struct udevd_uevent_msg *msg, enum event_state st
|
||||
delete_path(filename_failed);
|
||||
|
||||
create_path(filename);
|
||||
selinux_setfscreatecon(filename, NULL, S_IFLNK);
|
||||
symlink(msg->devpath, filename);
|
||||
selinux_resetfscreatecon();
|
||||
break;
|
||||
case EVENT_FINISHED:
|
||||
if (msg->devpath_old != NULL) {
|
||||
|
Loading…
Reference in New Issue
Block a user