Эта ошибка возникает всякий раз, когда я пытаюсь работать с sudo
. Я изменил права доступа к папке /var/
на 777
, и я думаю, что это вызывает ошибку. Пожалуйста, помогите мне вернуть функционал sudo
и /var
.
У меня была аналогичная ошибка, но я все еще мог использовать sudo (он отобразил сообщение об ошибке, и после этого он сделал то, что я ему сказал.), поэтому я исправил его с помощью:
sudo chmod -R 0700 /var/lib/sudo
(я работал с Ubuntu 14.04)
У вас действительно большая проблема. Прежде всего, для того, чтобы sudo
снова заработал, вам нужно будет изменить права доступа к папке / var / lib / sudo
и файлу navneet
] внутри него.
Но для этого вам понадобится root-доступ. Если вы изменили пароль root, вам нужно будет только su -
и изменить разрешения, как показано ниже:
$ chmod 0755 /var/lib/sudo
$ chmod 0700 /var/lib/sudo/navneet
И все готово. Но, если вы не меняли свой пароль root, вам потребуется получить root-доступ другими способами. При стандартной установке Ubuntu это можно сделать, загрузившись в режиме восстановления. Это делается путем перезагрузки и нажатия клавиши Shift после исчезновения экрана BIOS. Желательно несколько раз, но медленно. Если вам это удастся, появится меню GRUB, и вы сможете выбрать второй вариант (отмечен режим восстановления). В следующем меню вы должны выбрать корневую оболочку. Это приведет вас к корневому запросу. 12.04 вам нужно будет сделать жесткий диск доступным для записи, чтобы внести какие-либо изменения. Для этого используется команда mount -o, remount, rw /
. Чтобы открыть меню GRUB, потребуется несколько попыток.
В качестве альтернативы вы можете использовать загрузочный компакт-диск. Я предлагаю вам использовать минимальный установочный компакт-диск Gentoo, так как он небольшой по размеру и выполнит свою работу, также есть Доступно несколько специальных компакт-дисков для восстановления. Стандартный установочный компакт-диск часто работает, если вы выбираете живую загрузку, а не установку. Загрузите компьютер с компакт-диска и смонтируйте свой раздел, например, в / mnt /
( mount / dev / sda1 / mnt
). Затем вы можете изменить разрешения следующим образом:
chmod 0755 /mnt/var/lib/sudo
chmod 0700 /mnt/var/lib/sudo/navneet
Лучше всего использовать это для резервного копирования ваших данных, а затем получить новую установку. Поскольку другие приложения могут перестать работать из-за неправильных разрешений, могут быть другие последствия, которые могут поставить под угрозу безопасность вашего компьютера.
У вас действительно большая проблема, но не на самом деле по причинам, указанным здесь .
Изменение разрешений для всех / var
может привести к тому, что вы не вернете их все правильно, потому что вы не будете знать, какие разрешения каждый файл должен иметь . У вас могут возникнуть проблемы позже. В зависимости от обстоятельств ваши проблемы могут быть связаны с безопасностью.
Поэтому вы можете рассмотреть возможность переустановки Ubuntu. В качестве альтернативы вы можете попытаться получить разрешения от файлов в другой, похожей, непрерывной системе . Разрешения обычно такие же. Обычно. Более серьезная проблема заключается в том, что, вероятно, в вашей системе есть файлы в / var
, которых нет в другом, поэтому, вероятно, не все разрешения будут исправлены.
Однако выполнение административных задач на настольной системе без работающего sudo
обычно тривиально просто.
Сменить разрешения, когда вы знаете, какими они должны быть, легко, а редко требует загрузки в режим восстановления режим или с живого компакт-диска. Это потому, что, хотя это не так широко известно, настольные версии Ubuntu (и большинства других операционных систем GNU / Linux в наши дни) имеют два способа, настроенных для выполнения административных задач:
sudo
, который не будет работать, потому что требует правильных разрешений в / var
. Хотя мы склонны Если рассматривать sudo
как способ выполнения действий от имени root
в Ubuntu, то на самом деле PolicyKit - это способ, которым большинство, хотя и не все, графические утилиты становятся root
. (Так было уже несколько лет.)
На самом деле, запуск графической программы вручную с помощью PolicyKit иногда представляет собой серьезную задачу, поскольку графические приложения должны иметь специальные файлы конфигурации, чтобы PolicyKit мог их запускать. Но терминальные приложения этого не делают - запустить текстовую команду с PolicyKit так же просто, как и с sudo
.
Для этого введите pkexec
, где в противном случае вы бы набрали sudo
. (Они не принимают все те же параметры командной строки, но наиболее распространенный синтаксис для sudo
- это sudo command
, а pkexec
работает отлично на своем месте.)
Итак, поскольку sudo
не работает, вы не можете запустить:
sudo chmod 0755 /mnt/var/lib/sudo
sudo chmod 0700 /mnt/var/lib/sudo/<username>
Но вы можете запустить:
pkexec chmod 0755 /mnt/var/lib/sudo
pkexec chmod 0700 /mnt/var/lib/sudo/<username>
Это хорошее начало, и оно будет возможно, заставит sudo
снова работать. (Однако он не собирается исправлять все остальные файлы в / var
.)
Связанные (но в большинстве случаев не идентичные) ситуации, в которых pkexec
полезен:
‣ Как изменить недопустимый файл / etc / sudoers? Это вызывает ошибку и не позволяет мне снова редактировать, чтобы исправить это
‣ случайно заблокировал доступ к sudoers.d при попытке изменить конфигурацию ushare
‣ 'sudo' не работает после изменения разрешения каталога '/ usr'
‣ Как исправить sudo после «chmod -R 777 / usr / bin»? , ошибка sudo, это режим 0777, должно быть 0440 ,
Как исправить «sudo: / etc / sudoers is mode 0640, должно быть 0440?»
‣ Установка ZFS изменила мой файл sudoers
‣ Пароль не работает для sudo ("Ошибка аутентификации")
‣ Почему ничего не работает после того, как я случайно изменил права доступа к некоторым файлам?
‣ изменил / etc разрешение в oneiric (ubuntu11.10) с помощью "sudo chmod 665 / etc "теперь нельзя использовать sudo
‣ Как мне запускать определенные команды sudo без пароля? (только если что-то пойдет не так)
‣ Невозможно записать / etc / sudoers с Live CD Ubuntu (просто если что-то пойдет не так)