Вход:  Пароль:  
FreeSource: Технологии/PAM/MkTemp ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |

pam_mktemp

Введение

Каждому пользователю нужен доступ к каталогу для временных файлов. Обычно переменная окружения TMPDIR указывает на этот каталог, и многие команды (например mktemp) умеют брать путь к временному каталогу из этой переменной.


Этот каталог предназначен для хранения файлов, которые не будут иметь смысла после перезапуска ОС (для таких временных файлов как журналы текстовых редакторов, и прочей информации которая скорее всего будет иметь смысл и после перезапуска, предназначен каталог /var/tmp).


Чаще всего каталогом для временных файлов является либо /tmp, либо ~/tmp. У каждого из этих вариантов есть свой недостаток:


/tmp — другие пользователи видят как минимум факт наличия временного файла, его имя, дату последнего обновления, и, возможно, доступа. В случае ошибки с правами возможен даже доступ к этому временному файлу другим пользователем.


~/tmp — файлы, которые является заведомо временным оказываются на одном разделе с ценными данными пользователя. Это неудобно для резервного копирования и автоматизированого удаления «ненужных» временных файлов (к которым не было обращения больше определённого времени и которые не открыты ни одним приложением). Кроме того временные файлы имеет смысл хранить на файловых системах без журналируемых, или быстрых но не славящихся особой надёжностью файловых системах вроде Reiser FS? 3.


В UNIX-мире принято отделять мух от котлет, поэтому временные файлы можно и нужно хранить на отдельном разделе. И логично если это всё-таки будет /tmp.

Как это сделать?

Самый простой способ — создать в /tmp подкаталоги для каждого конкретного пользователя, и добавить в /etc/profile код для установки TMPDIR в соответствующее значение.


Самый главный недостаток такого решения — администратор должен побеспокоиться о каждом конкретном пользователе, да ещё и о том, чтобы эта переменная окружения выставлялась при разных вариантах доступа пользователя к системе (а если у него шелл не bash? А если он пользуется su/sudo? А если ...).

pam_mktemp

Есть простой и эффективный способ решить эту проблему — модуль PAM (Pluggable Authentication Modules) pam_mktemp.


Я не буду описывать процесс сборки и установки модуля (ибо считаю что нет смысла засорять этим статью — те, кто не знает как это сделать самостоятельно могут изучить, например, SRPM-пакет от ALT Linux). Пользователи же ALT Linux предпочтут просто выполнить команду “apt-get install pam0_mktemp”.


Для его настройки достаточно в каталоге /etc/pam.d добавить строчку:


session optional pam_mktemp.so


в конфигурационные файлы всех программ, для которых нужно использовать эту возможность.


Как минимум это должны быть: sshd, все *dm, su, sudo, login.


Для ленивых достаточно выполнить следующий скрипт:

Заключение


Использование модуля pam_mktemp ещё один простой способ сделать жизнь системного администратора и его пользователей более приятной, а настроеную систему более логичной, «красивой» и эффективной.



(C) Денис Смирнов <mithraen@freesource.info> 5 Nov 2004
Размещение этого документа на других Internet-ресурсах, а также в печатных изданиях не допускается.


Отзывы — здесь вы можете высказать своё мнение по поводу содержимого сайта
Ссылок на эту страницу нет


 
Файлов нет. [Показать файлы/форму]
Много комментариев (2). [Показать комментарии/форму]