diff options
author | Giuseppe Scrivano <gscrivan@redhat.com> | 2019-04-12 18:20:18 +0200 |
---|---|---|
committer | Giuseppe Scrivano <gscrivan@redhat.com> | 2019-04-12 18:20:28 +0200 |
commit | 531514e8231e7f42efb7e7992d62e516f9577363 (patch) | |
tree | 20b4a8987539112da864d58d87e241c7506ebd2e | |
parent | 6ddc67c694dc60641606955364fe23b1c38406ac (diff) | |
download | podman-531514e8231e7f42efb7e7992d62e516f9577363.tar.gz podman-531514e8231e7f42efb7e7992d62e516f9577363.tar.bz2 podman-531514e8231e7f42efb7e7992d62e516f9577363.zip |
rootless: set controlling terminal for podman in the userns
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
-rw-r--r-- | pkg/rootless/rootless_linux.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/pkg/rootless/rootless_linux.c b/pkg/rootless/rootless_linux.c index 9cb79ed4d..d6a2793a7 100644 --- a/pkg/rootless/rootless_linux.c +++ b/pkg/rootless/rootless_linux.c @@ -16,6 +16,8 @@ #include <sys/types.h> #include <sys/prctl.h> #include <dirent.h> +#include <termios.h> +#include <sys/ioctl.h> static const char *_max_user_namespaces = "/proc/sys/user/max_user_namespaces"; static const char *_unprivileged_user_namespaces = "/proc/sys/kernel/unprivileged_userns_clone"; @@ -178,6 +180,11 @@ reexec_userns_join (int userns, int mountns) _exit (EXIT_FAILURE); } + if (isatty (1) && ioctl (1, TIOCSCTTY, 0) == -1) { + fprintf (stderr, "cannot ioctl(TIOCSCTTY): %s\n", strerror (errno)); + _exit (EXIT_FAILURE); + } + if (setns (userns, 0) < 0) { fprintf (stderr, "cannot setns: %s\n", strerror (errno)); |