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

У этого вопроса уже есть ответ здесь: Что делать, если я случайно запускаю команду & ldquo; chmod -R & rdquo; на системные каталоги (/, / etc, & hellip;) 7 ответов

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

chmod -R 644 /bin

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

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

3 ответа

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

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

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

Когда вы удаляете биты выполнения из каталога, вы не можете войти в каталог, за исключением root.

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

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

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

3
ответ дан 22 May 2018 в 16:54
  • 1
    Для дальнейшего объяснения, бит выполнения в каталоге требуется для доступа к чему-либо за пределами этого каталога в обход пути, поэтому, к примеру, /some/path/file1 невозможно получить доступ без разрешения на /some и /some/path. Вы можете перечислить содержимое каталога с только доступом к нему, вы просто не можете получить доступ к любому из этих содержимого. – thomasrutter 20 December 2017 в 05:21
  • 2
    Мне пришлось включить среду IDE для чтения содержимого этих папок, IDE была установлена ​​под моими разрешениями пользователя, а tomcat принадлежал другому пользователю, специально созданному для tomcat. Я переустановил и исправил все. Кроме того, что / bin не является каталогом Linux / bin, но является каталогом в / opt / tomcat, я просто не указал абсолютный путь, поскольку у меня уже был / opt / tomcat как рабочий каталог в моем терминале, поэтому мне пришлось предоставить определенные разрешения на чтение моему пользователю. – prsvr 20 December 2017 в 21:06

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

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

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

Когда вы удаляете биты выполнения из каталога, вы не можете войти в каталог, за исключением root.

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

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

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

3
ответ дан 18 July 2018 в 00:51

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

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

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

Когда вы удаляете биты выполнения из каталога, вы не можете войти в каталог, за исключением root.

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

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

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

3
ответ дан 24 July 2018 в 17:17

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

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