В заметке "Poly instantiated tmpdirs (http://skvidal.wordpress.com/2007/07/13/poly-instantiated-tm.../)" рассказывается о настройке разделения представления содержимого директории /tmp для разных пользователей в Fedora Linux (для каждого пользователя свой /tmp).
Функциональность достигается при помощи технологии "Shared subtree (http://lwn.net/Articles/159077/)" (создание отдельных пространств имен в ФС с привязкой к определенному пользователю) включенной в состав Linux ядра начиная с версии 2.6.15 и PAM модуля pam_namespace (http://www.kernel.org/pub/linux/libs/pam/Linux-PAM-html/sag-...).
URL: http://james-morris.livejournal.com/21660.html
Новость: http://www.opennet.me/opennews/art.shtml?num=11465
глядишь, скоро Linux и Plan9 догонит ))
бред какой... это Plan9 до Линукса еще догонять и догонять
В плане целостного концепта, linux далеко позади как plan9, так и inferno.
Народ хлебом не корми, дай флейм поразводить ...
Неужели конструктивно комментарий нельзя дать?
Вот в первый раз слышу про технологию "Shared subtree", поскольку ядро не копаю ...
Может быть еще аналоги есть? Насколько безопасность повышается? и т.д.
в комментах к статье написано чем это полезно и почему это может быть неприемлемо. На серверах с небольшим кол-вом пользователей это ТРУ.
К федоре в очередной раз изобрели колесо...В ALT довольно давно попросту давали ~/tmp в /etc/skel и по умолчанию выставляли TMPDIR=$HOME/tmp. IMHO это очень разумно в том плане, что временные пользовательские данные -- тоже пользовательские данные, а их разнесение таким образом получается просто и автоматически.
Сейчас внедрили pam_mktemp (из Owl), к которому был ряд претензий, наиболее существенные из которых уже порешали. Хотя мне всё равно больше нравится применять $HOME/tmp, чем /tmp/.private/$USER в качестве персональных времянок.
Не помогает только клиническим случаям, которые в переменные не смотрят, а в любом случае ломятся по забитым в исходник /tmp или /var/tmp.
Касательно безопасности -- разделение привилегий (в т.ч. по использованию временных каталогов и файлов) является одной из основных техник, применяемых для снижения опасности использования *NIX. Напомню, что /tmp является следующей после всемогущего root архитектурной проблемой в оригинальной концепции; любителям плана также напомню, что практически применимые схемы ограничения этих проблем для Linux (различные реализации MAC/RBAC и вот такое изменение TMPDIR) доступны весьма давно.
Альт... вы еще венду вспомните -- там давно temp="%userprofile%/local settings/temp"
>Альт... вы еще венду вспомните -- там давно temp="%userprofile%/local settings/temp"Часом не потрудитесь указать, что именно в этом TEMP плохо?
Сама идея временных файлов порочна. Для IPC есть более вменяеные и надежные механизмы. А для обработки объемных данных лучше либо виртуальная память со свопом, либо постоянные файлы (в качестве бонуса make), либо база данных. Устаревшие программы и наколенные скрипты одминов часто и не смотрят на переменные среды, поэтому решение федоры работает, а альта нет.
>Сама идея временных файлов порочна.Сама идея обхода проблемы временных файлов вместо популяризации сведений и методов решения порочна.
>Для IPC есть более вменяеные и надежные механизмы.
Помимо P, есть ещё U...
>А для обработки объемных данных лучше либо виртуальная память со
>свопом(BTW в ALT 4.0 по умолчанию /tmp живёт на tmpfs, хоть IMHO это противоречивый вариант; но как раз виртуальная со свопом и выходит)
>либо постоянные файлы (в качестве бонуса make), либо база данных.
У этих вариантов тоже есть недостатки:
- файлы остаются файлами и их надо куда-то класть
(+приведите-ка критерий отличия постоянных от временных,
помимо выживания при reboot или через месяц, что тут неважно);
- база данных либо не отличается принципиально (в случае
встраиваемых навроде sqlite или *dbm), либо требует отдельной мороки
по своей организации и приносит с собой отдельные проблемы.>Устаревшие программы и наколенные скрипты одминов часто и не смотрят на
>переменные среды, поэтому решение федоры работает, а альта нет."Мы предпочитаем ядерные костыли, чем дописать семь, ну пятнадцать*, байт в шкрыпт". Даже если это каждый шкрыпт, который отозвался на fgrep -r /tmp.
Что ж, тоже подход. В ALT (как дистрибутиве, так и сообществе) популярней другой -- исправлять исправимое и изолировать/игнорировать неисправимое.
Соответственно мне устаревшие или закрытые программы с такой степенью невменяемости при надобности в них оказывается проще засадить при помощи chrootuid(1) или вообще в отдельный VPS. А админов из тех, кто может на такую должность претендовать, обучить внятному применению временных каталогов вместо того, чтоб вытаптывать грабли в этажерках.
[*] "$TMPDIR" или "${TMPDIR:-/tmp}"
>Альт... вы еще венду вспомните -- там давно temp="%userprofile%/local settings/temp"Думаю это решение наиболее разумно, чем сатанинские MS_SHARED, MS_BIND и прочее что не поддерживается файловыми системами.
Сотонинская технология.Файловая система не поддерживает MS_SHARED, MS_BIND, MS_PRIVATE, MS_SLAVE. Зачем оно было изобретено?
Флаг MS_SHARED снимается только установкой флага MS_SLAVE, да и то криво - смотрите исходник ядра.
Вообще "Shared subtree" есть кривое поделие, не поддерживаемое файловыми системами, нафиг не нужно. К использованию не рекомендуется.