Как получить меньше ttys с Systemd?

Можно запустить команду, но она не будет работать, если Вы не будете корнем. Это легко: вообразите пользователя, который может изменить программное обеспечение на пользователя root. Это может добавить, что setuid укусил и, voilà, парень является корнем! Так, использование может добавить бит с chmod, но никакой шанс изменить владельца файлов.

29
30.07.2017, 15:07
3 ответа

Нет никакой реальной потребности отключить "дополнительный" TTYs как под systemd gettys сгенерированы по требованию: посмотрите man systemd-getty-generator для деталей. Обратите внимание, что по умолчанию это автоматическое порождение сделано для VTs до VT6 только (для имитации традиционных систем Linux).

Поскольку Lennart говорит в блоге post1:

Для создания вещей, более эффективные приглашения ко входу в систему теперь запускаются по требованию только. Поскольку Вы переключаетесь на VTs, getty сервис инстанцируют на getty@tty2.service, getty@tty5.service и так далее. Так как мы не должны безусловно больше запускать процессы getty, это позволяет нам сохранять немного ресурсы и делает запуск немного быстрее.

Если Вы действительно хотите настроить определенное количество gettys, Вы можете, просто изменить logind.conf с соответствующей записью, в этом примере 3:

NAutoVTs=3


1. На самом деле весь ряд сообщений — в настоящее время нумерация 18 — systemd для Администраторов, определенно стоит считать.

35
27.01.2020, 19:38
  • 1
    Спасибо за ответ, Jason. Приложение моей компании поставляется на физическом сервере и на более старых дистрибутивах, мы изменили бы inittab для блокировки другого ttys. –  jcbwlkr 24.10.2013, 02:14

В системах на основе Debian есть файл, который вызывает запуск 5 дополнительных getty при запуске, если вы только что создали сервер (без службы dbus):

/lib/systemd/system/getty.target.wants/getty-static.service

В нем говорится:

[Service]
Type=oneshot
ExecStart=/bin/systemctl --no-block start getty@tty2.service getty@tty3.service getty@tty4.service getty@tty5.service getty@tty6.service
RemainAfterExit=true

Простое удаление этого файла остановит появление дополнительных getty. Не стесняйтесь сокращать список, если вы хотите просто создать одного дополнительного getty (для 2 консолей virt). Обратите внимание, что вы автоматически получаете его на tty1, поэтому у вас всегда есть хотя бы одна виртуальная консоль.

См. Также: systemd-logind.service не запускается, если отсутствует dbus

11
27.01.2020, 19:38

Чтобы отключить gettys на определенных TTY 4-6, оставив работающими 1-3 и 7-9, выполните:

for i in {4..6}; do
  systemctl mask getty@tty${i}.service
done

mask создает симлинк /etc/systemd/system/{name} -> /dev/null, который эффективно отключает сервис. Попытка запустить его через systemctl start приведет к ошибке Failed to start NAME.service: Блок NAME.service замаскирован.

Если у вас есть A.service Wants=masked.service, то start A будет успешным, но также выдаст ошибку запуска зависимости в журнале.

Если у вас есть B.service Requires=masked.service, то start B также будет неудачным.

Ага, некроответ. Ваше здоровье.

8
27.01.2020, 19:38

Теги

Похожие вопросы