diff options
author | Tom Gundersen <teg@jklm.no> | 2015-06-17 19:02:19 +0200 |
---|---|---|
committer | Tom Gundersen <teg@jklm.no> | 2015-06-17 19:02:19 +0200 |
commit | 99cfda2f7fa540866172358db2ff059b57c3b3ea (patch) | |
tree | 32df5f1b280bfe9e3478062f269bd6d5f83a7128 /src/login | |
parent | a54941f1b47507e1609f0d8eb224f5a5a5732c0e (diff) | |
parent | 9e281beb8ebff96366eff63bd54087681706c803 (diff) |
Merge pull request #259 from poettering/logind-label-fix
logind: apply selinux label to XDG_RUNTIME_DIR
Diffstat (limited to 'src/login')
-rw-r--r-- | src/login/logind-user.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/login/logind-user.c b/src/login/logind-user.c index 6720899def..738e69cced 100644 --- a/src/login/logind-user.c +++ b/src/login/logind-user.c @@ -36,9 +36,10 @@ #include "bus-error.h" #include "conf-parser.h" #include "clean-ipc.h" -#include "logind-user.h" #include "smack-util.h" #include "formats-util.h" +#include "label.h" +#include "logind-user.h" User* user_new(Manager *m, uid_t uid, gid_t gid, const char *name) { User *u; @@ -323,7 +324,7 @@ static int user_mkdir_runtime_path(User *u) { if (path_is_mount_point(p, 0) <= 0) { _cleanup_free_ char *t = NULL; - (void) mkdir(p, 0700); + (void) mkdir_label(p, 0700); if (mac_smack_use()) r = asprintf(&t, "mode=0700,smackfsroot=*,uid=" UID_FMT ",gid=" GID_FMT ",size=%zu", u->uid, u->gid, u->manager->runtime_dir_size); @@ -351,6 +352,10 @@ static int user_mkdir_runtime_path(User *u) { goto fail; } } + + r = label_fix(p, false, false); + if (r < 0) + log_warning_errno(r, "Failed to fix label of '%s', ignoring: %m", p); } u->runtime_path = p; |