Есть ли вред от преобразования всех файлов в исполняемые?

Есть ли вред от преобразования всех файлов в исполняемые?

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

chmod 777 shellscr1

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

chmod 777 *

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

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

решение1

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

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

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

решение2

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

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

#!/usr/bin/env bash

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

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

решение3

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

решение4

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

 chmod 777 shellscr1

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

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

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

Связанный контент