3

Я хочу предоставить разрешение на выполнение для сценария, но не разрешение на чтение, так как я не хочу, чтобы пользователь читал содержимое сценария. Но, похоже, это не работает, я публикую то, что делаю, и ищу совета,

демонстрация подкаталога принадлежит пользователю root и корневой группе,

Случай 1, make execute+ разрешение на чтение, работает

chmod 775 /home /yhd /demo /text

Тогда пользователь yhd может без проблем выполнить текстовую команду

Случай 2, только разрешение на выполнение, не работает

chmod 771 /home /yhd /demo /text

Тогда пользователь не сможет выполнить текстовую команду, и сообщение об ошибке будет отклонено

2 ответа2

4

Проблема со сценариями заключается в том, что сценарий - это не то, что выполняется, а интерпретатор (в данном случае bash ).

Переводчик должен прочитать сценарий.

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

Это отличается от программы, потому что программы загружаются непосредственно в ядро.

Одним из решений является использование компилятора, который будет генерировать C-программу, эквивалентную сценарию, например SHC, которую вы можете скачать здесь или из этого руководства.

3

как предоставить разрешение на выполнение без разрешения на чтение?

Нет, не возможно: переводчик должен прочитать сценарий. Что означает @jcbermu, так это: https://unix.stackexchange.com/questions/34202/can-a-script-be-executable-but-not-readable

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