8

Я пытаюсь понять флаг NOEXEC при монтаже.

У меня возникла проблема с выполнением в каталоге /tmp на другом компьютере, к которому у меня нет доступа к atm, где каталог /tmp смонтирован на диске, отличном от '/', и присутствует NOEXEC. Я хотел попытаться воссоздать этот сценарий на моей машине, но у меня нет второго жесткого диска. Я попытался сделать следующую команду:

mount --bind /test1 /test2

Затем я удалил флаг bind и добавил NOEXEC в /etc /fstab. Затем я создал файл в /test2 с именем test.sh, где он просто повторяет «hello world». Я пытаюсь запустить его, и он говорит, что «разрешение отказано». Затем я запустил chmod 777 test.sh и смог нормально выполнить файл. Я думал, что флаг NOEXEC не должен позволять мне выполнять что-либо?

Разве mount --bind /test1 /test2 не то же самое, что монтирование с совершенно другого физического диска? Как в /test1 и /test2 находятся на разных дисках?

1 ответ1

3

Параметр «NOEXEC» в команде mount не позволяет выполнять исполняемые двоичные файлы в смонтированной файловой системе 1. Тем не менее, когда скрипт (текстовый файл, который начинается со строки взрыва; т.е., строка, начинающаяся с #!) дается некоторым оболочкам (bash), он запускает исполняемый файл, названный в этой строке (например, /usr/bin/perl), и подключает содержимое файла сценария к стандартному вводу этого исполняемого файла, который может отсутствовать на этом диске ,
__________
1 Команда mount обычно монтирует файловую систему.  (Возможно, петлевое или bind монтирование может рассматриваться как исключение из этой общности.)  В некоторых случаях (например, /tmp) эта файловая система будет содержать только один каталог.

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