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

Сервер Ubuntu: вручную изменена оболочка / etc / passwd для моего пользователя, теперь невозможно войти в систему

Я попытался изменить оболочку с bash на tcsh, напрямую отредактировав файл / etc / passwd. Да, тупой ход. Думаю, я усвоил урок. Теперь я не могу подключиться к удаленному серверу по SSH.

Как это исправить?

PS. Я все еще могу подключиться к серверу MySQL через туннель SSH. Любой способ использовать это?

В весьма вероятном случае, если это VPS, проверьте у своего провайдера какой-либо терминал с однопользовательским режимом. Большинство из них предоставляют возможность такого рода аварийного восстановления.

Есть ли на коробке другие пользователи, которые могут входить в систему через SSH? (должен быть в sudoers, если у вас не установлен пароль root) кроме этого вам понадобится физический доступ к ящику для загрузки в однопользовательском режиме и сброса пароля или восстановления из резервной копии ...

vipw не проверяет, указан ли вы действительный путь к оболочке или существует ли оболочка. Что он делает, так это блокирует файл, который редактируется, в попытке предотвратить повреждение, если кто-то другой попытается отредактировать файл в то же время.

Возможно, tcsh не установлен или его путь отличается от пути bash; Например, / usr / local / bin. Если бы OP имел / bin / bash в качестве оболочки и просто изменил bash на tcsh, а / bin / tcsh нет ... На моем ноутбуке с Fedora 13 у меня вообще нет tcsh.

Кроме того, SSH может не заботиться о / etc / shells. Традиционно этот файл проверяется ftp, но не ssh. На моем компьютере с Fedora 13, если я удалю / bin / bash из / etc / shells, я все равно смогу войти в ssh.

Лучше всего, если кто-то с правами root на удаленном поле отредактирует / etc / passwd.

Это не поможет вам войти в систему, но указанная вами оболочка должна быть в файле / etc / shells и, конечно же, установлена. ;)

Как отметили другие, вам нужен либо физический доступ, либо какой-то однопользовательский апплет, либо хост исправит это за вас.

Если вы можете подключиться к MySQL, я считаю, что вы можете выполнить следующее, чтобы попытаться получить приглашение BASH:

\! bash

Я не уверен, как это будет работать, если ваша оболочка настроена неправильно, но попробовать стоит. Это также может варьироваться в зависимости от вашей версии MySQL, но определенно работает на 5.1.49 в Ubuntu. Кроме того, возможно, это, по крайней мере, позволит вам отредактировать файл:

\! vi /etc/passwd