Как решить проблему зависимости настройки мезона?

Когда вы запускаете скрипт через bash, он просто читает файл и интерпретирует его.

Однако, когда вы передаете имя ядру --, оно действительно проверяет файл на наличие " #!" и загружает интерпретатор, указанный в соответствии с параметром ядра «CONFIG _BINFMT _SCRIPT». Там написано:

Say Y here if you want to execute interpreted scripts starting with "#!" followed by the path to an interpreter.

You can build this support as a module; however, until that module gets loaded, you cannot run scripts. Thus, if you want to load this module from an initramfs, the portion of the initramfs before loading this module must consist of compiled binaries only.

Most systems will not boot if you say M or N here. If unsure, say Y.

Выше приведен текст справки, связанный с этой опцией. Для другого интересного разница. Я написал свой сценарий:

> cat myprog.sh
#!/bin/cat

echo "Hello World"
> chmod +x myprog.sh

Запуск с помощью bash по-прежнему запускает интерпретатор bash:

> bash myprog.sh
Hello World

Однако теперь это делает ядро ​​:

> myprog.sh
#!/bin/cat

echo "Hello World"

Ядро распечатало сценарий, включая 1-ю строку, потому что оно вызвало 'Кот'.

В случае с программой C вы не вызываете интерпретатор для запустить бинарник. Ядро пытается запустить его напрямую. Тем не менее, если вы загрузили все свои исполняемые файлы в память, используя некоторые отладчики, вы все еще можете «запускать» свою программу во время ее загрузки через отладчик.

Опция noexec похожа на отключение бита выполнения в двоичном файле и запрещает ядру запускать двоичный файл «исходно».

Это имеет значение, кстати, если ваша программа имеет бит SetUID установить в программе --загрузка с помощью интерпретатора не установит UID, эта привилегия может быть включена только при загрузке ядра.

FWIW --окна имеют тот же тип механизма.

Если добавить «.sh» в качестве «исполняемого суффикса», например «.exe» или «.vbs», окна автоматически запустит ваш файл в соответствии с тем, как вы настроили Файлы ".sh" для выполнения. Теоретически можно настроить Файлы «.txt» будут автоматически печататься, если вы введете их имя в командной строке.

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

0
13.03.2021, 03:31
0 ответов

Теги

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