From db6aedab9292678918f15807a0d835be35511667 Mon Sep 17 00:00:00 2001 From: Nikolai Kondrashov Date: Wed, 24 May 2017 14:58:01 +0300 Subject: [PATCH] units: Tell login to preserve environment (#6023) Make agetty started by *getty* units pass '-p' option to "login", so it doesn't clear the environment and passes whatever was setup by systemd to shells. This is needed especially for programs which are specified as user shells, but won't read locale settings from anywhere but environment. [zj: cherry-pick just the second patch from the series, see discussion on the pull request.] --- units/console-getty.service.m4.in | 5 ++++- units/container-getty@.service.m4.in | 5 ++++- units/getty@.service.m4 | 5 ++++- units/serial-getty@.service.m4 | 5 ++++- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/units/console-getty.service.m4.in b/units/console-getty.service.m4.in index 413d940..d9d0cba 100644 --- a/units/console-getty.service.m4.in +++ b/units/console-getty.service.m4.in @@ -16,7 +16,10 @@ After=rc-local.service Before=getty.target [Service] -ExecStart=-/sbin/agetty --noclear --keep-baud console 115200,38400,9600 $TERM +# The '-o' option value tells agetty to replace 'login' arguments with an +# option to preserve environment (-p), followed by '--' for safety, and then +# the entered username. +ExecStart=-/sbin/agetty -o '-p -- \\u' --noclear --keep-baud console 115200,38400,9600 $TERM Type=idle Restart=always RestartSec=0 diff --git a/units/container-getty@.service.m4.in b/units/container-getty@.service.m4.in index e126f3a..fd0be86 100644 --- a/units/container-getty@.service.m4.in +++ b/units/container-getty@.service.m4.in @@ -17,7 +17,10 @@ IgnoreOnIsolate=yes ConditionPathExists=/dev/pts/%I [Service] -ExecStart=-/sbin/agetty --noclear --keep-baud pts/%I 115200,38400,9600 $TERM +# The '-o' option value tells agetty to replace 'login' arguments with an +# option to preserve environment (-p), followed by '--' for safety, and then +# the entered username. +ExecStart=-/sbin/agetty -o '-p -- \\u' --noclear --keep-baud pts/%I 115200,38400,9600 $TERM Type=idle Restart=always RestartSec=0 diff --git a/units/getty@.service.m4 b/units/getty@.service.m4 index 5b82c13..2a84061 100644 --- a/units/getty@.service.m4 +++ b/units/getty@.service.m4 @@ -33,7 +33,10 @@ ConditionPathExists=/dev/tty0 [Service] # the VT is cleared by TTYVTDisallocate -ExecStart=-/sbin/agetty --noclear %I $TERM +# The '-o' option value tells agetty to replace 'login' arguments with an +# option to preserve environment (-p), followed by '--' for safety, and then +# the entered username. +ExecStart=-/sbin/agetty -o '-p -- \\u' --noclear %I $TERM Type=idle Restart=always RestartSec=0 diff --git a/units/serial-getty@.service.m4 b/units/serial-getty@.service.m4 index 609c5b6..b7caeaf 100644 --- a/units/serial-getty@.service.m4 +++ b/units/serial-getty@.service.m4 @@ -28,7 +28,10 @@ Conflicts=rescue.service Before=rescue.service [Service] -ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM +# The '-o' option value tells agetty to replace 'login' arguments with an +# option to preserve environment (-p), followed by '--' for safety, and then +# the entered username. +ExecStart=-/sbin/agetty -o '-p -- \\u' --keep-baud 115200,38400,9600 %I $TERM Type=idle Restart=always UtmpIdentifier=%I -- 2.7.4