3

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

chown -R emil.emil /

Затем сразу запаниковал ^ C и вставил другую команду, так как я думал, что всегда смогу вернуть обратно файлы, к которым мне нужно было получить доступ:

chown -R root.root /

Так что теперь я не могу сделать su из emil чтобы даже попытаться исправить это, так как я получаю ошибку « Отказано в доступе» . Я на Ubuntu, может кто-нибудь сказать мне, если есть способ, которым я мог бы это исправить, без полной переустановки всего этого.

СОВЕТ

Если вы пытаетесь получить root-доступ и получаете сообщение об отказе в разрешении при использовании su попробуйте следующую команду:

gksu gnome-terminal

Он попросит вас ввести пароль root и по какой-то причине откроет новый корневой терминал. Это работает и дает мне root-доступ, а su - нет.

3 ответа3

5

Файловая система, нисходящая из /, имеет различные права владения для достижения разных целей.

Попытка, которую вы попытались исправить, делает пользователя root владельцем всего, и поэтому для многих операций (включая доступ к файлам в /home /emil) root - единственный пользователь, который будет работать.

Итак, ваши варианты:

  1. Восстановить из резервной копии
  2. Переустановка
  3. Загрузитесь в однопользовательском режиме и вручную примените правильного владельца к каждому файлу

Я предполагаю, что 1. снят со стола, а 2. не является предпочтительным вариантом.

В меню Grub при загрузке Ubuntu у вас должна быть опция восстановления во время загрузки. Если вы не видите меню grub (оно появляется раньше всего после биоса), удерживайте левую Shift и оно появится. При выборе этого варианта загрузится однопользовательский режим, в котором вы вошли в систему как пользователь root.

Оттуда вы можете начать менять владельца. Первым делом было бы

 chown -R emil /home/emil

Что сделает вас владельцем ваших собственных файлов. В остальном вы можете захотеть выполнить установку на другом компьютере, чтобы сравнить владение файлами, или запустить каждую службу, которую вы используете, в /etc/init.d и посмотреть причины сбоя (обратите внимание, что служба может выйти из строя просто потому, что она не может записывать свои журналы в /var /log и поэтому не может даже предоставлять отчеты об ошибках).

Это был бы чрезвычайно трудоемкий процесс, но он все-таки переходит к повторной установке. Обратите внимание, что любая личная конфигурация, которую вы внесли в Ubuntu и настройки приложений, будет сохранена в иерархии /home /emil, поэтому копирование этих файлов в другое место, переустановка ОС и приложений и их копирование обратно - гораздо более быстрый вариант.

4

Если у вас есть подобная система под рукой, вы можете использовать find для определения правильного владельца и группы для каждого файла, например, используя:

find / -printf "%u:%g %p\n" > permissions.txt

который будет производить вывод, как показано ниже:

root:root /
root:root /usr
root:staff /usr/local
root:staff /usr/local/man
root:staff /usr/local/games
root:staff /usr/local/lib
root:staff /usr/local/lib/python2.7
root:staff /usr/local/lib/python2.7/dist-packages
root:staff /usr/local/lib/python2.7/site-packages
root:staff /usr/local/lib/python3.2
[...]

Затем вы можете выполнить итерации по этому файлу и chown каждый файл его первоначальному владельцу и группе.

while read line
do
    chown $line
done < permissions.txt

Я сомневаюсь, что это все исправит отлично, так как права доступа и файлы различаются в разных системах, но это только начало и, по крайней мере, должно вернуть базовую систему к значениям по умолчанию

1

Я больше знаком с Fedora, но я бы предложил загрузиться с live CD, скопировать ваши данные с машины и переустановить.

Вы могли бы потенциально использовать информацию менеджера пакетов (apt/dpkg), чтобы выяснить, каковы права собственности на все файлы в системе. Я мог бы понять, как это сделать с помощью rpm, но я не очень хорошо знаком с apt/dpkg. Любая повышенная безопасность, такая как SELinux, также может осложнить ситуацию.

rpm -qa --list -v предоставляет необходимую информацию о системе, основанной на rpm, которую вы должны будете проанализировать и передать chown. Если вы можете найти эквивалент для apt/dpkg, вы можете получить там.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .