Я попытался изменить оболочку с 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