URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 59453
[ Назад ]

Исходное сообщение
"Выполнение файлов в /tmp"

Отправлено Dr. Nebula , 24-Авг-05 17:54 
Можно ли запретить выполнение файлов и скриптов в /tmp?
Но не только исполняемых, но и выполнение типа perl script.txt

Содержание

Сообщения в этом обсуждении
"Выполнение файлов в /tmp"
Отправлено allez , 24-Авг-05 20:39 
>Можно ли запретить выполнение файлов и скриптов в /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. Пользуемся, попутно устраняя (по возможности) недочеты данного решения,
если таковые обнаруживаются, а они наверняка будут ;-).