Назад | Перейти на главную страницу

как разрешить root-вход через ttyS1 на CentOS?

Я хочу иметь возможность входить на свои серверы через IPMI / последовательную консоль ttyS1.

Поскольку IPMI уже запрашивает пароль, пароль root выводится на консоль через /etc/issue.

Через Ubuntu Server 16.04 вход в систему root работает безупречно. В CentOS / vzlinux я не могу заставить его работать.

Я сделал следующее:

echo ttyS1 >> /etc/securetty

cat >> /etc/security/access.conf << EOF
+ root : cron crond tty0 tty1 tty2 tty3 tty4 tty5 tty6 ttyS0 ttyS1
- root : ALL
EOF

Теперь проблема заключается в конфигурации pam. Getty вылетит с ошибками pam:

Я думаю, что это оскорбительные строки конфигурации pam:

В /etc/pam.d/*-ac файлы создаются автоматически и не должны перезаписываться.

Как мне исправить эту проблему «правильным» способом?

Как я могу внести изменения только в вход в систему через ttyS1?

Systemd по умолчанию создает только последовательный блок getty для системной последовательной консоли, если он определен. Обычно это делается с помощью console= в командной строке ядра.

Поскольку вы пытаетесь использовать последовательный tty, который не является определенной консолью, вы должны включить getty самостоятельно. Это тривиально просто, так как это созданный Ед. изм:

systemctl enable serial-getty@ttyS1.service
systemctl start serial-getty@ttyS1.service

Вам не нужно взламывать или копировать какие-либо служебные файлы.

Моя проблема оказалась проблемой systemd. По какой-то причине systemd не сгенерировал блок "dev-ttyS1.device" и поэтому остановил getty (Unit serial-getty@ttyS1.service is bound to inactive unit dev-ttyS1.device. Stopping, too)

Это устранило мои проблемы с getty:

srvfile="/etc/systemd/system/serial-getty@ttyS1.service"
echo -n "# This file has been created because of a bug in systemd\n\n" > $srvfile
cat /lib/systemd/system/serial-getty@.service >> $srvfile
sed -i 's/dev-%i\.device //g' $srvfile
sed -i 's/dev-%i\.device//g' $srvfile