Если я хочу создать двоичный исполняемый файл, и я хочу, чтобы кто-то не выполнял его в моем каталоге, но я все же хочу, чтобы они могли копировать его в свою область, я должен предоставить им права на чтение, но не выполнить разрешение.Могу ли я запретить пользователям выполнять двоичные файлы?
Теперь я понимаю, что для файлов, написанных на языках высокого уровня, таких как python, разрешения на выполнение не являются действительно концепцией. Любой, у кого есть разрешение на чтение, может просто запустить их с помощью команды (например, python, для .py-файлов), что и происходит на самом деле, когда кто-то «выполняет» их.
Но бинарники, я думал, были разными. Они могут быть выполнены без разрешения на чтение, поскольку они действительно выполняются, а не просто перетаскиваются на команду интерпретатора, которая требует разрешения на чтение.
Но потом я узнал о команде sh, которая, кажется, способна действовать в двоичных файлах (в отличие от bash, которая отказывается). Есть ли способ отключить это или защитить от этого двоичный файл?
Что вы имеете в виду, когда говорите, что sh "кажется способным воздействовать на двоичные файлы"? Можете ли вы привести пример? Например, если я печатаю 'sh/bin/rm', он сообщает о синтаксической ошибке (потому что это не действительный sh-скрипт). –
Линкером и загрузчиком по-прежнему необходимо загрузить двоичный файл, чтобы выполнить его. Нет, + x без + r недостаточно для выполнения. –
... и нет, 'sh' никоим образом не обходит это. –