НИКАКАЯ функция всегда эквивалентна заданному псевдониму, поскольку::
$ 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
.
Поэкспериментировав, я получил то, что работает:
Запустите 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.
Мы можем настроить /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
и пропустит другие механизмы аутентификации, если найдет его.
Добавьте последовательный порт в/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
было разрешено входить в систему ). Так что, если вас это беспокоит, используйте другой файл :).