diff options
author | Lennart Poettering <lennart@poettering.net> | 2015-06-17 16:29:03 +0200 |
---|---|---|
committer | Sven Eden <yamakuzure@gmx.net> | 2017-03-14 10:03:03 +0100 |
commit | 25387573767909c96090ad22cccafc72c16542d7 (patch) | |
tree | 804f12750e290218f9962060e2e3a4d7e2649f01 /src/login | |
parent | e2b99e6978e8331570fd9889c3bb3c9f305f495e (diff) |
logind: apply selinux label to XDG_RUNTIME_DIR
As discussed in #257: we should ensure the selinux label is correctly
applied to each user's 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 6720899de..738e69cce 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; |