Можно запустить команду, но она не будет работать, если Вы не будете корнем. Это легко: вообразите пользователя, который может изменить программное обеспечение на пользователя root. Это может добавить, что setuid укусил и, voilà, парень является корнем! Так, использование может добавить бит с chmod, но никакой шанс изменить владельца файлов.
Нет никакой реальной потребности отключить "дополнительный" 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 для Администраторов, определенно стоит считать.
В системах на основе 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
Чтобы отключить 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
также будет неудачным.
Ага, некроответ. Ваше здоровье.