summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac6
-rw-r--r--src/macro.h3
-rw-r--r--src/mount-setup.c6
3 files changed, 14 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index 4f77aa8f19..396a414ac7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -410,6 +410,12 @@ else
SYSTEM_SYSV_COMPAT="no"
fi
+AC_ARG_WITH([tty-gid],
+ [AS_HELP_STRING([--tty-gid=GID],
+ [Specify the numeric GID of the 'tty' group])],
+ [AC_DEFINE_UNQUOTED(TTY_GID, [$withval], [GID of the 'tty' group])],
+ [])
+
AM_CONDITIONAL(TARGET_FEDORA, test x"$with_distro" = xfedora)
AM_CONDITIONAL(TARGET_SUSE, test x"$with_distro" = xsuse)
AM_CONDITIONAL(TARGET_DEBIAN, test x"$with_distro" = xdebian)
diff --git a/src/macro.h b/src/macro.h
index 85a7fbccfd..996b7c2ed1 100644
--- a/src/macro.h
+++ b/src/macro.h
@@ -47,6 +47,9 @@
#define _weakref_(x) __attribute__((weakref(#x)))
#define _introspect_(x) __attribute__((section("introspect." x)))
+#define XSTRINGIFY(x) #x
+#define STRINGIFY(x) XSTRINGIFY(x)
+
/* Rounds up */
static inline size_t ALIGN(size_t l) {
return ((l + sizeof(void*) - 1) & ~(sizeof(void*) - 1));
diff --git a/src/mount-setup.c b/src/mount-setup.c
index b85ac6d3fe..64fb4765f6 100644
--- a/src/mount-setup.c
+++ b/src/mount-setup.c
@@ -35,6 +35,10 @@
#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 },
};