chiark / gitweb /
util: make touched files non-writable by default
[elogind.git] / src / mount-setup.c
index 5cbaee6be7eb8a0d06b00aee6ff3e6df28594433..d740d4f3570bedd34a7deea0dc636bdb2e54e3c0 100644 (file)
@@ -54,6 +54,7 @@ static const MountPoint mount_table[] = {
         { "devtmpfs", "/dev",                   "devtmpfs", "mode=755",          MS_NOSUID,                    true },
         { "tmpfs",    "/dev/shm",               "tmpfs",    "mode=1777",         MS_NOSUID|MS_NODEV,           true },
         { "devpts",   "/dev/pts",               "devpts",   "mode=620,gid=" STRINGIFY(TTY_GID), MS_NOSUID|MS_NOEXEC, false },
+        { "tmpfs",    "/dev/.run",              "tmpfs",    "mode=755",          MS_NOSUID|MS_NOEXEC|MS_NODEV, true },
         { "tmpfs",    "/sys/fs/cgroup",         "tmpfs",    "mode=755",          MS_NOSUID|MS_NOEXEC|MS_NODEV, true },
         { "cgroup",   "/sys/fs/cgroup/systemd", "cgroup",   "none,name=systemd", MS_NOSUID|MS_NOEXEC|MS_NODEV, true },
 };
@@ -227,8 +228,7 @@ int mount_setup(void) {
                 "/proc/self/fd\0"    "/dev/fd\0"
                 "/proc/self/fd/0\0"  "/dev/stdin\0"
                 "/proc/self/fd/1\0"  "/dev/stdout\0"
-                "/proc/self/fd/2\0"  "/dev/stderr\0"
-                "\0";
+                "/proc/self/fd/2\0"  "/dev/stderr\0";
 
         int r;
         unsigned i;
@@ -242,7 +242,7 @@ int mount_setup(void) {
          * appropriate labels, after mounting. The other virtual API
          * file systems do not need. */
 
-        if (unlink("/dev/.systemd/relabel-devtmpfs") >= 0)
+        if (unlink("/dev/.systemd-relabel-devtmpfs") >= 0)
                 nftw("/dev", nftw_cb, 64, FTW_MOUNT|FTW_PHYS);
 
         /* Create a few default symlinks, which are normally created
@@ -252,5 +252,9 @@ int mount_setup(void) {
         NULSTR_FOREACH_PAIR(j, k, symlinks)
                 symlink_and_label(j, k);
 
+        /* Create a few directories we always want around */
+        mkdir("/dev/.run/systemd", 0755);
+        mkdir("/dev/.run/systemd/ask-password", 0755);
+
         return mount_cgroup_controllers();
 }