1

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

chmod 777 shellscr1

но потом я понял, что есть много таких файлов, которые мне придется сделать исполняемыми. Итак, как ярлык, я сделал это:

chmod 777 *

и теперь все файлы исполняемые.

Есть ли серьезные последствия для этого (кроме безопасности)?

4 ответа4

4

В зависимости от программы, это может не иметь негативных последствий или может сделать программное обеспечение непригодным для использования.

Например, измените права доступа к вашему каталогу ~/.ssh и посмотрите, какую ошибку вы получите, когда вы попытаетесь подключиться по ssh к другому компьютеру.

Некоторые программы обращаются к файлам конфигурации от имени конкретного пользователя. с разрешениями 777 каждый может перезаписать файл, сделав его владельцем файла.

3

Как отмечают другие, нет никаких причин (по крайней мере, не представленных в вопросе), почему файлы должны быть доступны для записи. Что-то вроде chmod 755 * или chmod +x * должно быть достаточно.

Однако я сужу ответ еще больше и дам вам ответ, который делает именно то, что вы просите. Сценарий оболочки всегда должен начинаться с шебанга, например:

#!/usr/bin/env bash

Итак, вот фрагмент, который будет искать любые файлы в текущем каталоге, начиная с символов #!/ и сделать их исполняемыми. Другими словами, эта команда помечает только те файлы, которые выглядят как скрипты оболочки, как исполняемые.

for file in *; do [ "$(head -c 3 "$file")" = '#!/' ] && chmod +x "$file"; done;
2

Помимо безопасности нет никаких серьезных последствий. (говоря логически конечно)

0

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

 chmod 777 shellscr1

Создание их исполняемых означает не 777, а 755. Вы можете, по крайней мере, изменить это по понятным причинам, связанным с безопасностью.

Создание исполняемых скриптов может иногда иметь некоторые негативные последствия. Например, если ваш /bin/sh указывает на оболочку, отличную от той, для которой предназначен скрипт, вы можете сделать его практически непригодным для использования. Хороший программист предпринял бы шаги, чтобы предотвратить это, и, изменив разрешения, вы, возможно, отменили его усилия.

Но, повторюсь, это применимо, только если ваш /bin /sh указывает на нестандартную оболочку.

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