Как исправить sudo после & ldquo; chmod -R 777 / usr / bin & rdquo ;?

Я вошел в chmod -R 777 /usr/bin, и теперь sudo не работает.

Это говорит sudo must be setuid root.

В некоторых советах говорится, что он запускает chown root:root /usr/bin/sudo chmod 4755 /usr/bin/sudo.

При вводе chown root:root /usr/bin/sudo отображается ошибка opened in readonly mode.

15
задан 16 August 2017 в 23:29

5 ответов

Несмотря на принятый статус, теперь я убежден , что этот ответ неверен . (Я надеюсь, что это скоро улучшится, после консультации с OP по поводу принятия.) Я думаю, что припоминаю, как другие говорили, что это сработало, но я считаю, что их проблемы были, по крайней мере, немного другими. Описанный здесь метод остается ценным в некоторых ситуациях, когда chmod -R 777 / usr / bin прерывается с помощью Ctrl + C или по другим причинам не завершается. Но как только это произойдет, pkexec также будет отключен, и он не будет работать лучше, чем sudo , как правильно прокомментировали Дэмиен Рош и Оли.

В настольной системе Ubuntu PolicyKit установлен, поэтому pkexec можно использовать для восстановления неработающего исполняемого файла sudo или файла sudoers . Вам не нужно загружаться в режиме восстановления, и вам не нужно загружаться с live CD. Вам даже не нужно перезагружаться.

В этом случае выполните следующие команды:

pkexec chown root:root /usr/bin/sudo
pkexec chmod 4755 /usr/bin/sudo

См. этот вопрос для получения дополнительной информации.

11
ответ дан 16 August 2017 в 23:29

Даже при запуске с live CD / Pendrive вы должны префикс вашей команды chmod с помощью sudo . Таким образом, ваши действия будут похожи на следующие:

  1. загрузка с Live CD / Pendrive
  2. проверьте, был ли ваш диск уже автоматически смонтирован (и куда). Если нет, смонтируйте его (см. Ниже)
  3. используйте sudo chmod 0755 для настройки разрешений

Как определить, где смонтирован ваш диск: из окна терминала запустите mount (без аргументов). Это перечислит все подключенные устройства. Проверьте указанный в списке тип - вы можете пропустить все, не используя «настоящую файловую систему» ​​(ваш диск, вероятно, использует ext3 или ext4 - вы наверняка можете пропустить такие вещи, как proc, sysfs и т.п.) . Если что-то звучит многообещающе (выглядит как / dev / sda1 на / media / sda1 type ext3 ), проверьте его содержимое с помощью ls / media / sda1 , чтобы убедиться, что это так.

Если он не смонтирован, вы можете проверить с помощью записей / dev , где может находиться диск (используя ls / dev / | grep '/ dev / sd для проверки доступных устройств; ваш диск должен выглядеть как / dev / sdaX , / dev / sdbX или тому подобное - где X является числом). Сравните это со списком подключенных устройств. Если его там нет, попробуйте смонтировать его и проверьте его содержимое (как показано выше). Чтобы смонтировать его, сначала создайте точку монтирования, например sudo mkdir / mnt / mydisk , затем попробуйте смонтировать устройство с помощью mount / dev / sda1 / mnt / mydisk и проверьте его содержимое с помощью ls / mnt / mydisk .

После того, как вы получите нужный диск, вы можете вернуться к изменению разрешений в вашем каталоге usr: sudo chmod 0755 /mnt/mydisk/usr[11110879 provided.[12176 providedNow you still may be возникнет проблема, если вы изначально выполняли команду chmod рекурсивно с параметром -R . В этом случае вы можете попробовать исправить каждую запись вручную или сразу перейти к новой установке ...

4
ответ дан 16 August 2017 в 23:29

Пытаясь установить разрешения для моих локальных скриптов, я нарушил разрешение sudo и по ошибке сменил владельца. Мне удалось вернуть права владения sudo на root, выполнив следующие действия:

Шаг 1: Переключитесь в режим восстановления ubuntu . Если вы не знаете о процессе, вы можете найти ответ здесь: https://askubuntu.com/a/172346/223901

Шаг 2: В режиме восстановления выберите root - Перейти к приглашению оболочки root

Шаг 3: Выполните следующие команды

mount -o remount,rw /
chown root:root /usr/bin/sudo
chmod 4755 /usr/bin/sudo
reboot

Подождите, пока ваша система загрузится в обычном режиме , и вы увидите, что sudo снова принадлежит root.

1
ответ дан 16 August 2017 в 23:29

У меня мало знаний. Но эти шаги решили мою проблему даже без перезапуска компьютера. Выполните следующие действия:

su root
<enter root password>
cd /usr
chmod -R 755 *
1
ответ дан 16 August 2017 в 23:29

Я думаю, что Мэт прав, вы должны быть пользователем root, чтобы добавить бит в / usr / bin, но, конечно, sudo не работает. Если у вас есть пароль root, вы можете использовать его для входа в систему как root, а затем исправить разрешения с помощью указанной выше команды. Однако, если вы этого не сделаете (и я тоже), вероятно, лучше всего:

  • загрузиться с Live CD Linux
  • стать там root
  • смонтировать раздел с указанной выше системой
  • , затем настройте права доступа в этой файловой системе с помощью терминала.

Корень всегда имеет номер пользователя 0, поэтому root в любой системе может вносить изменения, разрешенные для root в других файловых системах.

1
ответ дан 16 August 2017 в 23:29

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

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