Я ввел 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.
В настольной системе Ubuntu установлен PolicyKit, поэтому pkexec можно использовать для исправления файла sudo с поврежденным sudo или sudoers. Вам не нужно загружаться в режим восстановления, и вам не нужно загружаться с живого компакт-диска. Вам даже не нужно перезагружаться.
В этом случае запустите следующие команды:
pkexec chown root:root /usr/bin/sudo
pkexec chmod 4755 /usr/bin/sudo
Для получения дополнительной информации см. [D9] PolicyKit .
В настольной системе Ubuntu установлен PolicyKit, поэтому pkexec можно использовать для исправления файла sudo с поврежденным sudo или sudoers. Вам не нужно загружаться в режим восстановления, и вам не нужно загружаться с живого компакт-диска. Вам даже не нужно перезагружаться.
В этом случае запустите следующие команды:
pkexec chown root:root /usr/bin/sudo
pkexec chmod 4755 /usr/bin/sudo
Для получения дополнительной информации см. [D9] PolicyKit .
У меня мало знаний. Но эти шаги решили мою проблему даже без перезагрузки моей машины. Выполните следующие действия:
su root
<enter root password>
cd /usr
chmod -R 755 *
Даже при работе с Live CD / Pendrive вы должны префикс вашей chmod команды с помощью sudo. Итак, ваши шаги будут следующими:
загрузиться с Live CD / Pendrive, чтобы проверить, был ли ваш диск уже автомонтирован (и где). Если нет, смонтируйте его (см. Ниже), используйте sudo chmod 0755 <path> для настройки разрешений. Как определить, где установлен ваш диск: из окна терминала запустите mount (без аргументов). Это приведет к отображению всех подключенных устройств. Проверьте наличие type - вы можете пропустить все, не используя «настоящую файловую систему» (ваш диск, вероятно, использует либо ext3, либо ext4 - вы можете пропустить такие вещи, как proc, sysfs и т. П.). Если что-то звучит многообещающе (смотри, как /dev/sda1 on /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 dir : sudo chmod 0755 /mnt/mydisk/usr.
Теперь вы все еще можете столкнуться с проблемой, если вы первоначально запускали команду chmod рекурсивно, используя параметр -R. В этом случае вы можете либо попытаться исправить каждую запись вручную, либо вы можете перейти прямо к новой установке ...
Я думаю, что Мат правильный, вы должны быть root, чтобы добавить бит в / usr / bin, но, конечно, sudo сломан. Если у вас есть пароль root, вы можете использовать его для входа в систему как root, а затем исправить разрешения с помощью указанной выше команды. Однако, если вы этого не сделаете (и я тоже этого не делаю), вероятно, было бы лучше:
загрузиться с Linux live CD, чтобы он стал root, монтируйте раздел с указанной выше системой, затем выпрямите разрешений на эту файловую систему с использованием терминала.Root всегда является номером пользователя 0, поэтому root в любой системе может внести изменения, разрешенные для root в других файловых системах.
В попытке установить разрешения для моих локальных скриптов я по ошибке нарушил разрешение sudo и поменял владельца. Я смог изменить права собственности на sudo на root, выполнив следующие действия:
Шаг 1: Перейдите в режим восстановления ubuntu. Если вы не знаете о процессе, вы можете направить ответ здесь: https://askubuntu.com/a/172346/223901
Шаг 1: Как только в режиме восстановления, выберите root - Отбросить в корневую оболочку приглашение
root - Перейти к командной строке оболочки Выполните следующие команды
mount -o remount,rw /
chown root:root /usr/bin/sudo
chmod 4755 /usr/bin/sudo
reboot
Подождите, пока ваша система загрузится нормально и вы увидите право собственности на sudo на root.
У меня мало знаний. Но эти шаги решили мою проблему даже без перезагрузки моей машины. Выполните следующие действия:
su root
<enter root password>
cd /usr
chmod -R 755 *
Даже при работе с Live CD / Pendrive вы должны префикс вашей chmod команды с помощью sudo. Итак, ваши шаги будут следующими:
загрузиться с Live CD / Pendrive, чтобы проверить, был ли ваш диск уже автомонтирован (и где). Если нет, смонтируйте его (см. Ниже), используйте sudo chmod 0755 <path> для настройки разрешений. Как определить, где установлен ваш диск: из окна терминала запустите mount (без аргументов). Это приведет к отображению всех подключенных устройств. Проверьте наличие type - вы можете пропустить все, не используя «настоящую файловую систему» (ваш диск, вероятно, использует либо ext3, либо ext4 - вы можете пропустить такие вещи, как proc, sysfs и т. П.). Если что-то звучит многообещающе (смотри, как /dev/sda1 on /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 dir : sudo chmod 0755 /mnt/mydisk/usr.
Теперь вы все еще можете столкнуться с проблемой, если вы первоначально запускали команду chmod рекурсивно, используя параметр -R. В этом случае вы можете либо попытаться исправить каждую запись вручную, либо вы можете перейти прямо к новой установке ...
Я думаю, что Мат правильный, вы должны быть root, чтобы добавить бит в / usr / bin, но, конечно, sudo сломан. Если у вас есть пароль root, вы можете использовать его для входа в систему как root, а затем исправить разрешения с помощью указанной выше команды. Однако, если вы этого не сделаете (и я тоже этого не делаю), вероятно, было бы лучше:
загрузиться с Linux live CD, чтобы он стал root, монтируйте раздел с указанной выше системой, затем выпрямите разрешений на эту файловую систему с использованием терминала.Root всегда является номером пользователя 0, поэтому root в любой системе может внести изменения, разрешенные для root в других файловых системах.
В попытке установить разрешения для моих локальных скриптов я по ошибке нарушил разрешение sudo и поменял владельца. Я смог изменить права собственности на sudo на root, выполнив следующие действия:
Шаг 1: Перейдите в режим восстановления ubuntu. Если вы не знаете о процессе, вы можете направить ответ здесь: https://askubuntu.com/a/172346/223901
Шаг 1: Как только в режиме восстановления, выберите root - Отбросить в корневую оболочку приглашение
root - Перейти к командной строке оболочки Выполните следующие команды
mount -o remount,rw /
chown root:root /usr/bin/sudo
chmod 4755 /usr/bin/sudo
reboot
Подождите, пока ваша система загрузится нормально и вы увидите право собственности на sudo на root.