Разрешить вход без пароля root на последовательной консоли.

НИКАКАЯ функция всегда эквивалентна заданному псевдониму, поскольку::

$ alias foo=bar
+ alias foo=bar
$ myfun () { bar "$@"; }

Теперь воспользуемся fooи myfunдля определения функции:

$ foo () { blah "$@"; }
$ myfun () { blah "$@"; }

Что происходит с fooи myfun?

$ type -a foo bar myfun
+ type -a foo bar myfun
foo is aliased to `bar'
bar is a function
bar ()
{
    blah "$@"
}
myfun is a function
myfun ()
{
    blah "$@"
}

Понятно, что функция, которая была предполагаемым эквивалентом псевдонима, была переопределена, но сам псевдоним не пострадал.

В большинстве других случаев myfunбыло бы эквивалентно foo.

2
16.11.2019, 23:35
1 ответ

Поэкспериментировав, я получил то, что работает:

  1. Запустите systemctl edit serial-getty@ttyS0.serviceи добавьте следующее:

    [Service]
    ExecStart=
    ExecStart=-/sbin/agetty -o '-p -- \\u' --keep-baud 115200,38400,9600 --noclear --autologin root ttyS0 $TERM
    

    Это заставит agettyавтоматически -войти в систему с пользователем root, но только с этим изменением система по-прежнему будет запрашивать у вас пароль root.

  2. Мы можем настроить /etc/pam.d/loginдля аутентификации rootлогинов на консоли без пароля. Добавьте следующее в начало/etc/pam.d/login:

    auth sufficient pam_listfile.so item=tty sense=allow file=/etc/securetty onerr=fail apply=root
    

    Это приведет к тому, что стек PAM проверит tty входа в систему в /etc/securettyи пропустит другие механизмы аутентификации, если найдет его.

  3. Добавьте последовательный порт в/etc/securetty:

    # echo ttyS0 > /etc/securetty
    

После внесения этих изменений вы увидите следующее в последовательной консоли при загрузке:

CentOS Linux 8 (Core)
Kernel 4.18.0-80.11.2.el8_0.x86_64 on an x86_64

localhost login: root (automatic login)

Last login: Sun Nov 17 00:29:36 on ttyS0
[root@localhost ~]#

...и если вы выйдете из системы, вы снова окажетесь в командной строке.

Обратите внимание, что здесь я использовал имя файла /etc/securetty, которое в былые дни фактически делало что-то еще (оно контролировало терминалы, на которых rootбыло разрешено входить в систему ). Так что, если вас это беспокоит, используйте другой файл :).

10
27.01.2020, 22:02

Теги

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