Как решить эту ошибку 'sudo:/usr/local/bin/sudo должны принадлежать uid 0 и иметь setuid набор битов', не переустанавливая человечность?

TLDR: Я запускаю Ubuntu 18.04 с i3, и я испортил свои полномочия. Каждый раз, когда я выполняю команду с sudo, я получаю это сообщение об ошибке, sudo: /usr/local/bin/sudo must be owned by uid 0 and have the setuid bit set. Я пытаюсь выяснить, должен ли я полностью переустановить Ubuntu или если это может быть зафиксировано менее решительным способом.

То, что произошло, было: Я пытался обновить свою npm версию с nvm, и команда nvm не распознавалась. Я следовал инструкциям этого stackoverflow сообщения https://stackoverflow.com/questions/21215059/cant-use-nvm-from-root-or-sudo для копирования версии узла, который я имел активный через nvm в /usr/local. Я работал ниже. (Да, я понимаю теперь, когда я должен был исследовать этот ряд команд прежде, чем выполнить их.)

n=$(which node); \
n=${n%/bin/node}; \
chmod -R 755 $n/bin/*; \
sudo cp -r $n/{bin,lib,share} /usr/local

Я затем получил тонны ошибочного высказывания chmod: changing permissions of '/usr/bin/*': Operation not permitted

После этого я работал sudo nvm install-latest-npm и получил ту же ошибку, как я имел прежде, sudo: nvm: command not found.

Затем я попытался выполнить другую команду с sudo и получил ошибку sudo: /usr/local/bin/sudo must be owned by uid 0 and have the setuid bit set. Я теперь получаю эту ошибку каждый раз, когда я выполняю что-либо с sudo.

Я думаю, что эта проблема была вызвана мной выполнение chmod -R 755 $n/bin/*; \ но я смущен, потому что в сообщении об ошибке было сказано что полномочия для /usr/bin не были изменены.
У меня есть вопрос с двумя частями: 1), Что вызвало эту ошибку? Я корректен, что это было вызвано chmod -R команда? 2) я могу зафиксировать это, полностью не переустанавливая человечность? Если так, как?

Для контекста я уже считал эти два вопроса sudo:/usr/lib/sudo/sudoers.so должен принадлежать uid 0, и этот/usr/bin/sudo должен принадлежать uid 0 и иметь setuid набор битов. Однако я не уверен, относится ли совет из ответа первого вопроса к этой ситуации, потому что сообщение об ошибке, которое я получаю, не относится конкретно к /usr/lib/sudo/sudoers.so.

Спасибо за чтение!

2
задан 9 January 2019 в 03:49

1 ответ

должен принадлежать uid 0 и иметь setuid набор битов

  1. Проверьте текущего владельца и полномочия с ls -l /usr/bin/sudo.  It должен подобный:

    -rwsr-xr-x 1 root root 157192 2018-08-23 10:36:40 /usr/bin/sudo

  2. Выполненный pkexec bash в терминале для получения оболочки с корневыми полномочиями.

  3. Зафиксируйте владение файла:

    chown root:root /usr/bin/sudo
    
  4. Установите бит setuid:

    chmod u+s /usr/bin/sudo
    
  5. sudo должно теперь быть доступно для Вас для создания дальнейших восстановлений.

1
ответ дан 2 December 2019 в 04:39

Другие вопросы по тегам:

Похожие вопросы: