Я вошел 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
ошибку.
permissions
sudo
root
chmod
Manojkumar
источник
источник
pkexec
sudo chmod -R 777 /usr/bin
sudo
pkexec
777
sudo chmod -R 777 /usr/bin
, но только после входа вroot
учетную запись.Ответы:
В настольной системе Ubuntu установлен PolicyKit , поэтому
pkexec
его можно использовать для восстановления испорченногоsudo
исполняемого файла илиsudoers
файла . Вам не нужно загружаться в режиме восстановления, и вам не нужно загружаться с live CD. Вам даже не нужно перезагружаться.В этом случае выполните следующие команды:
Смотрите этот вопрос для получения дополнительной информации.
источник
pkexec must be setuid root
! Какой кошмар!pkexec
в том же затруднительном положении, что иsudo
. Это обычно setuid и живет в/usr/bin
. Я проверил это, и это просто не работает послеchmod -R 777 /usr/bin
.pkexec
должен быть установлен setuid root (разве он не работает через демон polkit, как другие не-setuid процессы?), Но это действительно нужно. Я прокомментировал вопрос, чтобы увидеть, может ли ОП (который принял это) пролить свет на то, что, если что-то, правильно или полезно в этом ответе. И я добавил временный баннер в начало этого поста, чтобы больше не вводить в заблуждение. Если этот ответ продолжает существовать, его улучшенная форма, вероятно, будет включать некоторую информацию, которая в настоящее время находится в этом баннере.su
, который находится в / bin/usr/bin
требуются права суперпользователя, но вы не можете получить root-праваsu
на большинстве систем Ubuntu, потому что root-логины отключены по умолчанию. В отличие отsudo
иpkexec
, когда вы используетеsu
для получения оболочки root или для запуска команды от имени root, вы должны предоставить пароль root, а не свой собственный. Но root не имеет пароля по умолчанию в Ubuntu (то есть, аутентификация на основе пароля для root всегда будет неудачной, а не ввод пустого пароля). Смотрите RootSudo для деталей.Даже при запуске с live CD / Pendrive вы должны поставить префикс
chmod
командойsudo
. Таким образом, ваши шаги будут выглядеть следующим образом: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
и тому подобное - с Х является числом). Сравните это со списком установленных устройств. Если его там нет, попробуйте смонтировать его и проверить его содержимое (как показано выше). Чтобы смонтировать его, сначала создайте точку монтирования, напримерsudo mkdir /mnt/mydisk
, затем попробуйте смонтировать устройство с помощьюmount /dev/sda1 /mnt/mydisk
и проверьте его содержимое с помощьюls /mnt/mydisk
.После того, как вы получите правильный диск там, вы можете пойти , чтобы изменить права доступа обратно на USR директории:
sudo chmod 0755 /mnt/mydisk/usr
.Теперь у вас все еще могут быть проблемы, если вы изначально выполняли
chmod
команду рекурсивно, используя-R
параметр. В этом случае вы можете попытаться исправить каждую запись вручную или перейти к новой установке ...источник
mount /dev/sda /mnt/mydisk
изroot@Ubuntu:/dev#
mkdir -p /mnt/mydisk && mount /dev/sda1 /mnt/mydisk
(я не думаю, что у вас нет разделов/dev/sda
, поэтому вы, должно быть, также пропустили номер раздела. Убедитесь, что вы указали правильное устройство (или монтирование не удастся).Я думаю, что Mat прав, вы должны быть пользователем root, чтобы добавить бит в / usr / bin, но, конечно, sudo не работает. Если у вас есть пароль root, вы можете использовать его, чтобы войти в систему как root, а затем исправить разрешения с помощью приведенной выше команды. Однако, если вы этого не сделаете (и я тоже), то, вероятно, было бы лучше:
Root - это всегда пользователь с номером 0, поэтому root в любой системе может вносить изменения, разрешенные для root, в других файловых системах.
источник
У меня мало знаний. Но эти шаги решили мою проблему даже без перезагрузки моей машины. Следуй этим шагам:
источник
root
, который не является стандартной конфигурацией Ubuntu.Пытаясь установить разрешения для своих локальных сценариев, я нарушил разрешение sudo и по ошибке изменил владельца. Я смог изменить владельца sudo на root, выполнив следующие действия:
Шаг 1: Переключитесь в режим восстановления Ubuntu . Если вы не знаете о процессе, вы можете отправить ответ здесь: /ubuntu//a/172346/223901
Шаг 2: В режиме восстановления выберите root - приглашение «Drop to root shell»
Шаг 3: Выполните следующие команды
Подождите, пока ваша система загрузится нормально, и вы увидите право владения sudo на root.
источник