Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

freesource.info: новости проекта и статьи Описание релиза ALTLinux Master 2.4


Информационный Канал Subscribe.Ru

pam_mktemp

Введение

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

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

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

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

~/tmp -- файлы, которые является заведомо временным оказываются на одном разделе с ценными данными пользователя. Это неудобно для резервного копирования и автоматизированого удаления "ненужных" временных файлов (к которым не было обращения больше определённого времени и которые не открыты ни одним приложением). Кроме того временные файлы имеет смысл хранить на файловых системах без журналируемых, или быстрых но не славящихся особой надёжностью файловых системах вроде ReiserFS 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.

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

for s in kde wdm xdm sshd su sudo login; do
  FILENAME=/etc/pam.d/$s
  if [ -f $FILENAME ]; then
     if ! grep -q pam_mktemp.so $FILENAME; then
        echo -e "session optional\tpam_mktemp.so" >> $FILENAME
     fi
  fi
done

Заключение

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

----

(C) Денис Смирнов <mithraen@freesource.info> 5 Nov 2004

Размещение этого документа на других Internet-ресурсах, а также в печатных изданиях не допускается.

Отзывы -- здесь вы можете высказать своё мнение по поводу этой статьи


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.linux.freesource
Отписаться

В избранное