LINUX.ORG.RU

Запустить скрипт сразу после монтирования шифрованного домашнего каталога

 ,


0

1

Ubuntu 12.04

Обычное EcryptFs шифрование домашнего каталога пользователя. Насколько я понимаю, его монтирование происходит сразу (или не совсем сразу, возможно lightdm выполняется раньше) после ввода пароля - мне нужно поймать этот момент и после него запустить скрипт. В скрипте будут монтироваться некоторые каталоги из /home в память.

Куда я уже пробовал ставить монтирование, и не получилось:

1) /etc/fstab - слишком рано, задолго аутентификации, домашний каталог ещё не примонтирован, поэтому монтировать его дочерние каталоги бессмысленно.

2) rc.local - тоже рано, до логина

3) lightdm.conf (session-setup-script) - чёрт его знает, по-моему тоже рано. По-крайней у меня не взлетело.

4) «Автоматически запускаемые приложения» - успешно монтирует, но слишком поздно. Между скриптом и монтированием самого хомяка уже запускается куча программ, что не есть гуд, потому что эти программы могут использовать эти самые каталоги. Да и скрипт в этом месте требует варварской добавки sh -c «echo „password“ | sudo -S sript.sh», т.к. всё запускается не от рута.

5) ~/.bash_profile - не запускается при графическом логине, только при логине через Alt+F1. Нужно ровно наоборот.

Куда ещё не пробовал:

6) /etc/xdg/autostart/ - во-первых не нашёл, как там управлять порядком запуска, во-вторых мне не нужно монтирование при логине любого пользователя, а только при конкретном одном.

Копал в сторону PAM, ничего хорошего не нарыл. Возможно, за монтирование отвечает pam_ecryptfs.so


Копал в сторону PAM, ничего хорошего не нарыл. Возможно, за монтирование отвечает pam_ecryptfs.so

Попробуйте рядом с ним приписать вызов pam_mount.so (пакет libpam-mount).

AITap ★★★★★
()
Ответ на: комментарий от AITap

Совет на миллион долларов:) Всё получилось, большое спасибо! А то я два дня уже мучался. Плохо копал в сторону PAM, видать.

Что я сделал, вдруг кто нагуглит:

1) sudo apt-get install libpam-mount

2) в /etc/security/pam_mount.conf.xml добавил

<volume user="pershin" fstype="tmpfs" path="tmpfs" mountpoint="/home/pershin/test" options="uid=%(USER),mode=0700" /> 
Можно в опциях ещё добавить size=123M, кому надо

3) исправил в /etc/pam.d/common-session и /etc/pam.d/common-session-noninteractive

session	optional	pam_mount.so 
session	optional	pam_ecryptfs.so unwrap

на

session	optional	pam_ecryptfs.so unwrap
session	optional	pam_mount.so

Если этого не сделать, то дочерний каталог /home/pershin/test будет монтироваться раньше основного /home/pershin, что плохо и не нужно.

Интересно, что на сайте самого пакета указан не совсем верный пример монтирования tmpfs, без пункта path=«tmpfs»

В общем, ещё раз благодарю.

Pershin
() автор топика
Ответ на: комментарий от Pershin

На самом деле достаточно отредактировать только /etc/pam.d/common-session

Pershin
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.