Э-э ... это интересная ситуация. sudo
требуется, чтобы бинарный файл принадлежал пользователю root
и чтобы на нем был установлен флаг setuid
(это позволяет ему работать как владелец файла, независимо от того, кто его на самом деле запустил).
Сменив владельца, sudo
больше не может запускаться от имени пользователя root
и, следовательно, не может выполнять ваши команды от имени пользователя root
.
Самый простой способ избавиться от этого -
- Перезагрузите компьютер в однопользовательском режиме
- Скопируйте все ваши важные файлы на USB или внешний диск.
- Переустановите Ubuntu, а затем восстановите ваши файлы.
Как вы узнали, существует ряд системных файлов, которые абсолютно зависят от наличия правильного владельца и правильных разрешений. Например, SSHd
откажется запускаться, если закрытый ключ хоста не имеет точно правильных разрешений (я думаю, 0600
и принадлежит root). sudo
не может поднять себя, не будучи setuid
и принадлежащим root
, и я уверен, что есть много других связанных с безопасностью программ, которые не будут работать, если они увидят, что вещи не идеальны.
Через очень утомительную работу можно было бы восстановить некоторые разрешения с помощью внешнего компьютера, но это не веселая задача, и переустановка, вероятно, будет намного проще.