ACL — предоставить доступ только на чтение, *не* на выполнение

ACL — предоставить доступ только на чтение, *не* на выполнение

У меня есть каталог /test, в нем два файла:

info.txt
script.sh

Я хочу предоставить пользователю john доступ только для чтения и сделал следующее:

setfacl -m u:john: r test/

С помощью указанной выше команды Джон не может получить доступ к папке, поскольку у него нет разрешения на выполнение, поэтому я попробовал еще раз, используя это:

setfacl -m u:john: rx test/

Хорошо, теперь все работает: пользователь john может получить доступ к папке и прочитать файлы.

Однако, он может запустить script.sh. Последнее полномочие я не собирался предоставлять. Как мне поступить?

решение1

Вы могли бы сделать chmod o-x test/script.sh, но это бессмысленно. Пользователь мог бы просто скопировать файл в свой домашний каталог, сделать его исполняемым и запустить его оттуда. Он в любом случае будет запущен с привилегиями пользователя, если только он не setuid. И скрипты оболочки не могут быть setuid, но копирование файла setuid в любом случае удалит бит setuid из копии.

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