У меня есть каталог /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 из копии.