diff options
-rw-r--r-- | configure.ac | 6 | ||||
-rw-r--r-- | src/macro.h | 3 | ||||
-rw-r--r-- | src/mount-setup.c | 6 |
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 }, }; |