Я хотел обновить PyCharm, и при выполнении Pycharm, это не было возможно, так как он сказал, что у меня не было достаточного количества полномочий. Таким образом, я выполняю следующую команду:
$ sudo chown -R $USER$USER /usr/lib/
Я смог обновить PyCharm успешно, но теперь мое Интернет-соединение не работает, и на самом деле я не смог выполнить sudo после того, как я получаю доступ к режиму восстановления после этого учебного руководства.
Мне действительно нужно мое Интернет-соединение, работающее снова, поэтому я ценил бы Вашу справку для решения этой проблемы.
Я должен упомянуть, что использую двойную загрузку.
Любой вид 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 решение для любой ошибки разрешения и не должен использоваться тот путь! Если существует ошибка разрешения, существует, вероятно, очень серьезное основание, Вы не имеете полномочий сделать ту вещь, поэтому исследуете и решаете ее нормальным способом.
На самом деле, никакая потребность переустановить. Эта ситуация довольно поправима. Я просто выполнил ту же команду в своей системе и зафиксировал ее приблизительно за 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