>Можно ли запретить выполнение файлов и скриптов в /tmp?
>Но не только исполняемых, но и выполнение типа perl script.txt
В случае с исполняемыми файлами все достаточно просто - нужно отвести под /tmp
отдельный раздел и монтировать его с опцией "noexec" (в Linux, FreeBSD; Solaris эту
опцию не поддерживает).
Что же касается "perl script.txt", то тут поможет лишь запрет запуска perl, но сделать
так, чтобы этот запрет действовал лишь при вызове скрипта из /tmp...
Может быть, это сработает:
1. Выбираем новое имя для `which perl`.
2. Пишем на том же Perl скрипт с именем "perl", проверяющий переменную
окружения PWD и аргументы, переданные ему в командной строке. Если одно или
другое содержит "/tmp" - выход с показом фиги, в противном случае - запуск
переименованного perl с передачей ему указанных аргументов.
3. Компилируем написанный скрипт в бинарник с помощью perlcc.
4. Переименовываем свой `which perl`.
5. Переименовываем свой скрипт в "perl" и помещаем его на место старого perl.
6. Пользуемся, попутно устраняя (по возможности) недочеты данного решения,
если таковые обнаруживаются, а они наверняка будут ;-).