Я дал разрешение 777 -R в / usr / bin, и я хочу вернуть его в предыдущее состояние [duplicate]

Я ввел 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.

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

10 ответов

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

В настольной системе Ubuntu установлен PolicyKit, поэтому pkexec можно использовать для исправления файла sudo с поврежденным sudo или sudoers. Вам не нужно загружаться в режим восстановления, и вам не нужно загружаться с живого компакт-диска. Вам даже не нужно перезагружаться.

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

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

Для получения дополнительной информации см. [D9] PolicyKit .

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

В настольной системе Ubuntu установлен PolicyKit, поэтому pkexec можно использовать для исправления файла sudo с поврежденным sudo или sudoers. Вам не нужно загружаться в режим восстановления, и вам не нужно загружаться с живого компакт-диска. Вам даже не нужно перезагружаться.

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

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

Для получения дополнительной информации см. [D9] PolicyKit .

9
ответ дан 24 July 2018 в 19:05

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

su root <enter root password> cd /usr chmod -R 755 *
1
ответ дан 18 July 2018 в 08:26

Даже при работе с 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. В этом случае вы можете либо попытаться исправить каждую запись вручную, либо вы можете перейти прямо к новой установке ...

4
ответ дан 18 July 2018 в 08:26

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

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

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

1
ответ дан 18 July 2018 в 08:26

В попытке установить разрешения для моих локальных скриптов я по ошибке нарушил разрешение 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.

1
ответ дан 18 July 2018 в 08:26

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

su root <enter root password> cd /usr chmod -R 755 *
1
ответ дан 24 July 2018 в 19:05
  • 1
    Вам не хватает, по крайней мере, "cd" команда. Если вы делаете это так, вы делаете «chmod». в домашнем каталоге для root. Это ухудшит ситуацию. – Rinzwind 27 March 2015 в 13:01
  • 2
    спасибо ... изменить мой ответ ... я был в / usr папке – Manu Mohan T 27 March 2015 в 15:09
  • 3
    Это работает, только если для root установлен пароль, который не является настройкой Ubuntu по умолчанию. – David Foerster 10 November 2015 в 16:13

Даже при работе с 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. В этом случае вы можете либо попытаться исправить каждую запись вручную, либо вы можете перейти прямо к новой установке ...

4
ответ дан 24 July 2018 в 19:05
  • 1
    Я попытался создать точку монтирования, но получил ошибку, которая читает . Точка монтирования mnt / mydisk не существует - это mydisk, который нужно заменить какой-то вещью, и только для записи я написал mount /dev/sda /mnt/mydisk из root@Ubuntu:/dev# – vin 9 July 2012 в 20:30
  • 2
    Вы сделали a) создаете эту точку монтирования (каталог) перед выдачей команды монтирования (как описано) и b) позаботились о ведущей слэше? Попробуйте mkdir -p /mnt/mydisk && mount /dev/sda1 /mnt/mydisk (я не думаю, что у вас нет разделов на /dev/sda, так что вы, должно быть, тоже пропустили номер раздела. Убедитесь, что вы указали правильное устройство (или монтирование не получится). – Izzy 9 July 2012 в 21:05

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

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

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

1
ответ дан 24 July 2018 в 19:05

В попытке установить разрешения для моих локальных скриптов я по ошибке нарушил разрешение 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.

1
ответ дан 24 July 2018 в 19:05

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

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