chiark / gitweb /
add org.freedesktop.DBus.Properies.Set method
[elogind.git] / src / mount-setup.c
index b85ac6d3fe0db6d7356658c64dc52a2dcca5f355..5cbaee6be7eb8a0d06b00aee6ff3e6df28594433 100644 (file)
 #include "util.h"
 #include "label.h"
 
+#ifndef TTY_GID
+#define TTY_GID 5
+#endif
+
 typedef struct MountPoint {
         const char *what;
         const char *where;
@@ -49,7 +53,7 @@ static const MountPoint mount_table[] = {
         { "sysfs",    "/sys",                   "sysfs",    NULL,                MS_NOSUID|MS_NOEXEC|MS_NODEV, true },
         { "devtmpfs", "/dev",                   "devtmpfs", "mode=755",          MS_NOSUID,                    true },
         { "tmpfs",    "/dev/shm",               "tmpfs",    "mode=1777",         MS_NOSUID|MS_NODEV,           true },
-        { "devpts",   "/dev/pts",               "devpts",   NULL,                MS_NOSUID|MS_NOEXEC,          false },
+        { "devpts",   "/dev/pts",               "devpts",   "mode=620,gid=" STRINGIFY(TTY_GID), MS_NOSUID|MS_NOEXEC, false },
         { "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 },
 };
@@ -117,7 +121,7 @@ static int mount_one(const MountPoint *p) {
                 return p->fatal ? -errno : 0;
         }
 
-        label_fix(p->where);
+        label_fix(p->where, false);
 
         return 0;
 }
@@ -212,7 +216,7 @@ static int nftw_cb(
         if (ftwbuf->level == 0)
                 return 0;
 
-        label_fix(fpath);
+        label_fix(fpath, true);
         return 0;
 };