chiark / gitweb /
cgroup: honour sticky bit when trimming cgroup trees
[elogind.git] / src / user-sessions.c
index e045b88c10d9c67fbee7aee38cfb3f97a54a4399..df46b76c872842597597e1661da4b7e29ec1a329 100644 (file)
@@ -39,6 +39,8 @@ int main(int argc, char*argv[]) {
         log_parse_environment();
         log_open();
 
+        umask(0022);
+
         if (streq(argv[1], "start")) {
                 int q = 0, r = 0;
 
@@ -67,7 +69,7 @@ int main(int argc, char*argv[]) {
                 int r, q;
                 char *cgroup_user_tree = NULL;
 
-                if ((r = write_one_line_file("/run/nologin", "System is going down.")) < 0)
+                if ((r = write_one_line_file_atomic("/run/nologin", "System is going down.")) < 0)
                         log_error("Failed to create /run/nologin: %s", strerror(-r));
 
                 if ((q = cg_get_user_path(&cgroup_user_tree)) < 0) {