По причинам безопасности, логины, текстовые или графические, и утилиты, такие как su
и sudo
, которые позволяют вам выполнять команды от имени другого пользователя, запускают эти команды через оболочку целевого пользователя. Если оболочка целевого пользователя не функционирует, что ж, вы видели результаты :-(
Если только у вас случайно нет все еще работающей оболочки root или чего-то вроде бинарного файла setuid-root или чего-то, что позволяет вам обойти это, перезагрузка и исправление проблемы с помощью аварийной системы или живого образа, вероятно, будет вашим лучшим вариантом.
Загрузите аварийную систему, смонтируйте корневую файловую систему вашей реальной системы, скажем, /mnt/foo
, и отредактируйте /mnt/foo/etc/passwd
, чтобы исправить оболочку. Сохраните, размонтируйте, и все готово.