Возможный поврежденный файл passwd

Я восстановил сервер и сбросил пароль root на новый, потому что по какой-то причине оригинал не был распознан. Он по-прежнему отказывается принимать пароль в ssh для root. После дальнейших исследований кажется, что это может быть поврежденный файл etc / passwd.

Parallels заявляет, что выполняется эта команда:

cat /etc/passwd | grep ^root | hexdump -c 

конец файла должен заканчиваться, \ n, но my заканчивается с \ r \ n. Этот файл я проверил как пользователь с / bin / bash privs. Теперь проблема. Я не могу проверить файл passwd у root. Есть идеи?

Я понимаю, что есть 2 etc / passwd. 1 для каждого пользователя, выделенного в системе, а второй – в корневой области etc. благодаря

Вы отредактировали файл /etc/passwd с помощью редактора Windows или с редактором, настроенным для создания файлов Windows. Не делай этого. Windows использует двухсимвольную последовательность CR-LF для представления разрыва строки , тогда как Linux и другие Unix-системы используют только LF и видят CR как обычный символ, который, как оказалось, последний на своей линии. Вообще говоря, используйте редактор Linux для редактирования файлов в Linux или, если вы используете редактор Windows, обязательно сохраните файл в формате новой строки Linux.

Ваша проблема теперь не в том, что пароль недействителен. Вы успешно прошли аутентификацию. В конце процесса входа в систему последнее, что login или su или sshd делает, это запустить вашу оболочку, записанную в /etc/passwd . Случается, что оболочка является последним столбцом /etc/passwd , поэтому теперь оболочка root установлена ​​в /bin/bash␍ где является CR.

Вам нужно либо создать этот файл, либо отредактировать файл /etc/passwd . Вам потребуется root-доступ для любого из них. Поскольку вы действительно отключили учетную запись root, вам понадобится физический доступ.

Принимает ли пароль пароль из консоли? возможно, вы обновили свою систему, и ваш sshd_config мог быть заменен. По умолчанию доступ root через ssh отключен. Кстати, пароль не сохраняется в / etc / passwd, он хранится в / etc / shadow. Единственное, на что повлияла бы ваша оболочка входа, которая является последним полем / etc / passwd, почему бы вам не отредактировать этот файл и не удалить \ r? Ваш пользователь в списке sudoers? если так сделать sudo bash и отредактировать файл.

При входе в систему выполните следующие действия:

 su root 

Затем вы входите в систему как пользователь root. Когда это работает, вы можете редактировать файл passwd.