ни одна учетная запись пользователя не может войти через ssh

Вполне вероятно, что Linux позаимствовал этот сценарий из ранее существовавшего Unix.

Самая ранняя версия этого скрипта, которую мне удалось разыскать, называется /dev/MAKE для BSD 4 и, как мне кажется, датируется примерно 1980 годом. образом, потому что он делает файлы устройства. Верхний регистр имени, возможно, должен отличать его от самих файлов устройства, но это предположение.

До этого файлы устройств, по-видимому, создавались с помощью реального Makefile. как на снимке Bell Labs Research V7 (1979), а до этого я не уверен, что иерархия /dev вообще существовала.

В BSD 4.1 (1982) этот скрипт по-прежнему назывался /dev/MAKE , но в BSD 4.1c_2 (1983) , по-видимому, существовал / dev/MAKEDEV.local скрипт с некоторым описанием. Неясно, существовал ли когда-либо вместе с ним скрипт /dev/MAKEDEV.

В выпуске BSD 4.4 Lite2 (1995 год согласно репозиторию, но временная метка SCCS в самом файле говорит 8.1 (Berkeley) 09.06.93) мы видим скрипт с его окончательным названием /dev/MAKEDEV вместе с парой системных скриптов MAKEDEV. К этому времени скрипт с таким же именем уже существует на стороне Linux (, как упоминал Стивен Китт).

1
30.12.2016, 18:49
1 ответ

Судя по обсуждению в чате , двоичные файлы оболочки присутствуют на диске, но не могут быть выполнены. Для вас это выглядит очень плохой новостью, поскольку это признак отсутствия библиотеки, возможно, libc. ssh будет бесполезен, поскольку каким бы то ни было образом выполнение команды требует функциональной оболочки .

Если у вас возникла проблема с libc, локальный вход в систему (то есть физический доступ) также завершится ошибкой, но вы можете исправить ситуацию с помощью оболочки, встроенной в ваш образ initrd (вероятно, busybox ) или с живым Linux на USB-накопителе.

Раньше вы все еще могли попытаться исправить свой сервер удаленно, скопировав недостающую библиотеку с помощью sftp . Это может сработать, если вам повезет, но вам также может потребоваться выполнить ldconfig , и это можно сделать только локально.

Наконец, когда все будет в порядке, вы можете установить пакет bash-static , чтобы ваша оболочка больше не зависела от внешней библиотеки.

[update] Идея, которая может позволить вам подключиться к вашему серверу с помощью ssh : через sftp вы можете скопировать оболочку из пакета bash-static ( / bin / bash-static ) в / bin на удаленном сервере. Затем вы можете изменить удаленный / etc / passwd , чтобы изменить оболочку root на / bin / bash-static , а затем подключиться к ssh .Вы также можете сделать то же самое с / bin / busybox из пакета busybox-static и использовать некоторые базовые инструменты ( mv , cp ] и т. д.), чтобы исправить положение.

0
28.01.2020, 01:04

Теги

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