Не способный получить доступ к Интернету после выполнения sudo показанный-R $USER$USER/usr/lib/

Я хотел обновить PyCharm, и при выполнении Pycharm, это не было возможно, так как он сказал, что у меня не было достаточного количества полномочий. Таким образом, я выполняю следующую команду:

$ sudo chown -R $USER$USER /usr/lib/

Я смог обновить PyCharm успешно, но теперь мое Интернет-соединение не работает, и на самом деле я не смог выполнить sudo после того, как я получаю доступ к режиму восстановления после этого учебного руководства.

Мне действительно нужно мое Интернет-соединение, работающее снова, поэтому я ценил бы Вашу справку для решения этой проблемы.

Я должен упомянуть, что использую двойную загрузку.

4
задан 13 April 2017 в 05:24

2 ответа

Любой вид chown операция на системных каталогах очень опасен .

самый легкий способ решить эту проблему был бы, чтобы быть только для переустановки операционной системы полностью.

, Если Вы удачливы (и немного любитель риска), Вы смогли восстанавливаться путем простого выполнения ниже команды от режима восстановления:

chown -R root:root /usr/lib

, В то время как большинство файлы принадлежат корню в /usr/lib, мог бы все еще быть случайный файл, который не является , который вызовет основные проблемы, если он не будет активно принадлежать соответствующему пользователю. На самом деле, на Вашей (средней) установке Linux, большинство файлов в этом каталоге принадлежит root / root, таким образом, это определенно стоит того, чтобы попытаться, если переустановка является нежелательным.

Иначе, необходимо было бы пройти каждый файл и вручную повторно присвоить полномочия их нормальным значениям (обычно значение, находящееся в собственности root, но не во всех случаях). При случае можно просто переустановить все пакеты (использующий apt --reinstall install <packagename>), но это не гарантируется и может все еще вызвать больше головных болей, чем это решает. Действительно, Вы прошли бы каждый файл и работали бы dpkg -L на них.

Что касается сохранения Ваших файлов в Вашей существующей системе (при потере работоспособности по переустанавливанию пути ОС), можно использовать флеш-накопитель в режиме восстановления. Если необходимо загрузить некоторые файлы на Мерзавца в прошлую секунду, можно, вероятно, использовать Живой DVD (получение по запросу ключей SSH и чего-либо важного от разрушенной установки).

<час>

В будущем, для предотвращения этого точного типа проблемы снова удостоверьтесь, что Вы имеете (работающий - проверяют его!) резервное копирование Вашей системы и любых важных файлов.

кроме того, важно отметить, что sudo не one-shot-fix-all решение для любой ошибки разрешения и не должен использоваться тот путь! Если существует ошибка разрешения, существует, вероятно, очень серьезное основание, Вы не имеете полномочий сделать ту вещь, поэтому исследуете и решаете ее нормальным способом.

9
ответ дан 23 November 2019 в 11:35

На самом деле, никакая потребность переустановить. Эта ситуация довольно поправима. Я просто выполнил ту же команду в своей системе и зафиксировал ее приблизительно за 10 минут.

Вы должны будете или загрузиться в режиме восстановления или использовать живой USB/DVD любой версии Linux (предпочтительно Ubuntu!)

Если Вы предпочитаете восстановление, посмотрите, Как я загружаюсь в режим восстановления?

Я использовал живой USB с Xubuntu 16.04, который я должен был вручить. Если использование живой сессии, после начальной загрузки, открывает терминал и определяет Ваш корневой (основной) раздел, с помощью команд такой как lsblk и sudo fdisk -l. Когда Вы знаете, какой это (это, вероятно, будет ext4 раздел), смонтируйте его. Здесь я называю корневой раздел /dev/sda1 - необходимо заменить это реальной маркировкой.

sudo mount /dev/sda1 /mnt

теперь проверьте, что это - правильный раздел путем выполнения ls /mnt - необходимо видеть usr sys proc dev home root и другие вещи Вы ожидали бы находить наверху дерева файловой системы. Хорошо, давайте зафиксируем владение (во всех этих командах, отнеситесь со вниманием к : и обязательно поместите их в правильные места).

sudo chown -R root: /mnt/usr/lib

Это почти фиксирует его. В моей системе, прежде чем я повредил его, я проверил все владения на то местоположение

$ find /usr/lib -not -user root

возвраты ничто - корень владеют всем, но

$ find /usr/lib -not -group root -ls

Поднятый это:

-rwxr-sr-x   1 root     mail          /usr/lib/emacs/24.5/x86_64-linux-gnu/movemail
-rwxr-sr-x   1 root     tty           /usr/lib/mc/cons.saver
-rwsr-xr--   1 root     messagebus    /usr/lib/dbus-1.0/dbus-daemon-launch-helper
-rwxr-sr-x   1 root     utmp          /usr/lib/x86_64-linux-gnu/utempter/utempter

Ваша система не будет точно тем же, но Вы должны chown те файлы, если Вы имеете их и ищете эквиваленты если не (например, если бы Вы система является 32-разрядной, Вы имели бы x86 вместо x86_64). Я зафиксировал их с:

sudo chown :mail /mnt/usr/lib/emacs/24.5/x86_64-linux-gnu/movemail
sudo chown :tty /mnt/usr/lib/mc/cons.saver
sudo chown :messagebus /mnt/usr/lib/dbus-1.0/dbus-daemon-launch-helper
sudo chown :utmp /mnt/usr/lib/x86_64-linux-gnu/utempter/utempter

(при использовании режима восстановления Вам не будет нужно /mnt в начале тех путей)

Как указано @grawity, также необходимо восстановить setuid обдумал dbus-daemon-launch-helper который очищен chown:

sudo chmod u+s /mnt/usr/lib/dbus-1.0/dbus-daemon-launch-helper
14
ответ дан 23 November 2019 в 11:35

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

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