Я случайно установил владельца корневой папки (/) и всех подпапок для одного пользователя по команде

$ sudo chown -R 'userName' /*

Теперь я хочу установить владельца обратно с правами пользователя root по команде

$ chown -R root:root /*

Но у меня нет разрешения на эту операцию. Если я использую команду

$ sudo chown -R root:root /*

это возвращается

sudo: effective uid is not 0, is sudo installed setuid root?

Что я должен сделать, чтобы это исправить?

3 ответа3

2

Э-э ... это интересная ситуация. sudo требуется, чтобы бинарный файл принадлежал пользователю root и чтобы на нем был установлен флаг setuid (это позволяет ему работать как владелец файла, независимо от того, кто его на самом деле запустил).

Сменив владельца, sudo больше не может запускаться от имени пользователя root и, следовательно, не может выполнять ваши команды от имени пользователя root .

Самый простой способ избавиться от этого -

  1. Перезагрузите компьютер в однопользовательском режиме
  2. Скопируйте все ваши важные файлы на USB или внешний диск.
  3. Переустановите Ubuntu, а затем восстановите ваши файлы.

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

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

1

если вы ранее использовали chown'd, то ваши права более чем вероятно необратимо повреждены.

Сделайте резервную копию ваших данных и переустановите.

1

Серьезно, восстановить с нуля. даже если вы преодолеете ошибку, которую вы просматриваете, и сможете повторно изменить root, ваша система все равно будет сломана, как и сейчас. фактически нет никаких средств для восстановления после неконтролируемого подавления пищи (или chmoding в этом отношении). Даже если бы вы каким-то образом смогли получить частичный список первоначальных владельцев для каждого объекта, он почти наверняка был бы неполным и отражал бы состояние стандартной системы, которое могло измениться при установке app/daemon после первоначального создания файлов. ,

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .