mirror of
https://github.com/systemd/systemd.git
synced 2024-12-22 17:35:35 +03:00
3d2157e707
This flag was added indb6aedab92
with the justification that locale environment variables should be preserved by the user session. However, the companion patch to drop the UnsetEnvironment= directive blocking these variables was never merged, so the intended change was never effected. While the patch was ineffective toward its stated goal, the "-p" option does have material negative consequences for the user session in systemd — environment variables to support the use of credentials and memory pressure directives, such as $CREDENTIALS_DIRECTORY and $MEMORY_PRESSURE_WATCH, which are now directly used by agetty and login, get leaked into the user session potentially breaking applications that rely on these values. E.g. systemd-ask-password fails from the tty when $CREDENTIALS_DIRECTORY has been leaked from agetty, because it expects to be able to access credentials in $CREDENTIALS_DIRECTORY. This effectively revertsdb6aedab92
. References:db6aedab92
(units: Tell login to preserve environment (#6023), 2017-05-24)
67 lines
2.1 KiB
SYSTEMD
67 lines
2.1 KiB
SYSTEMD
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
#
|
|
# This file is part of systemd.
|
|
#
|
|
# systemd is free software; you can redistribute it and/or modify it
|
|
# under the terms of the GNU Lesser General Public License as published by
|
|
# the Free Software Foundation; either version 2.1 of the License, or
|
|
# (at your option) any later version.
|
|
|
|
[Unit]
|
|
Description=Getty on %I
|
|
Documentation=man:agetty(8) man:systemd-getty-generator(8)
|
|
Documentation=https://0pointer.de/blog/projects/serial-console.html
|
|
After=systemd-user-sessions.service plymouth-quit-wait.service getty-pre.target
|
|
{% if HAVE_SYSV_COMPAT %}
|
|
After=rc-local.service
|
|
{% endif %}
|
|
|
|
# If additional gettys are spawned during boot then we should make
|
|
# sure that this is synchronized before getty.target, even though
|
|
# getty.target didn't actually pull it in.
|
|
Before=getty.target
|
|
IgnoreOnIsolate=yes
|
|
|
|
# IgnoreOnIsolate causes issues with sulogin, if someone isolates
|
|
# rescue.target or starts rescue.service from multi-user.target or
|
|
# graphical.target.
|
|
Conflicts=rescue.service
|
|
Before=rescue.service
|
|
|
|
# On systems without virtual consoles, don't start any getty. Note
|
|
# that serial gettys are covered by serial-getty@.service, not this
|
|
# unit.
|
|
ConditionPathExists=/dev/tty0
|
|
|
|
[Service]
|
|
# The '-o' option value tells agetty to replace 'login' arguments with '--' for
|
|
# safety, and then the entered username.
|
|
ExecStart=-/sbin/agetty -o '-- \\u' --noreset --noclear - ${TERM}
|
|
Type=idle
|
|
Restart=always
|
|
RestartSec=0
|
|
UtmpIdentifier=%I
|
|
StandardInput=tty
|
|
StandardOutput=tty
|
|
TTYPath=/dev/%I
|
|
TTYReset=yes
|
|
TTYVHangup=yes
|
|
TTYVTDisallocate=yes
|
|
{% if not ENABLE_LOGIND %}
|
|
KillMode=process
|
|
{% endif %}
|
|
IgnoreSIGPIPE=no
|
|
SendSIGHUP=yes
|
|
ImportCredential=tty.virtual.%I.agetty.*:agetty.
|
|
ImportCredential=tty.virtual.%I.login.*:login.
|
|
ImportCredential=agetty.*
|
|
ImportCredential=login.*
|
|
|
|
# Unset locale for the console getty since the console has problems
|
|
# displaying some internationalized messages.
|
|
UnsetEnvironment=LANG LANGUAGE LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT LC_IDENTIFICATION
|
|
|
|
[Install]
|
|
WantedBy=getty.target
|
|
DefaultInstance=tty1
|