Не удается открыть терминал после использования chmod [duplicate]

У меня проблема с моей Ubuntu, я установил сервер Tomcat и настроил его, но мне нужно было изменить один каталог и предоставить текущему пользователю права на чтение на это, поэтому я выполнил:

chmod -R 644 /bin

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

0
задан 19 December 2017 в 16:20

1 ответ

Пожалуйста, не меняйте права доступа для чтения файлов, принадлежащих корню . В будущем, если вы хотите прочитать файл, к которому у вас нет доступа, используйте sudo cat или sudo less или откройте текстовый редактор с правами root. Если вы считаете, что вам действительно необходимо изменить права доступа по какой-либо причине, то сначала проведите исследование или задайте вопрос об этом. Слишком легко разбить вашу систему с помощью chown и chmod.

В любом случае, у вашего пользователя уже было разрешение на чтение для этого каталога и всего его содержимого. Каталог /bin имеет разрешения 755 или rwxr-xr-x, как и подавляющее большинство его содержимого. Они могут быть прочитаны и выполнены любым пользователем.

Вы удалили биты выполнения (644 = rw-r--r--), сделав файлы доступными для чтения для всех, доступными для записи для пользователя root и исполняемыми для пользователя.

Когда вы удаляете биты выполнения из каталога, вы делаете невозможным вход в каталог, кроме root.

Когда вы удаляете биты выполнения из файла, вы делаете невозможным выполнение файла даже для пользователя root.

Программа Bash расположена по адресу /bin/bash. Вы сделали каталог, в котором он находится, недоступным, и сделали бинарный файл неисполнимым, так что даже root не может его запустить. chown и chmod также находятся в /bin, поэтому вы даже не можете использовать другую оболочку для их запуска, если у вас есть такая, которой нет в /bin.

Переустановка системы - это лучший способ убедиться, что у вас все в порядке, но если вы хотите попробовать исправить это или вы действительно хотите этого избежать, то вы можете сделать это при загрузке с работающей системы (например, USB) установочный носитель или восстановление системы), смонтируйте корневой раздел и измените разрешения оттуда. См. ответ Тердона здесь для лучшего способа сделать это (замените /etc на /bin и используйте chmod вместо chown).

3
ответ дан 19 December 2017 в 16:20

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

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