View previous topic :: View next topic |
Author |
Message |
Mihara n00b

Joined: 24 Nov 2005 Posts: 4
|
Posted: Sat Nov 26, 2005 6:33 pm Post subject: ivman/hal и опознание конкретного usb-d |
|
|
Никак не получается, начинаю биться головой об стену. Господа гуру, помогите?
Дано: Свежая инсталляция gentoo с 2005.1, один конкретный USB-драйв, ivman-hal-dbus-udev и т.д.
Все работает в точности так, как сказано в соответствующих howto, т.е. USB-драйв маунтится в /media/DRIVELABEL и действует в точности по инструкции.
Проблема состоит в том, что нужно не совсем это.
Драйв используется (и использовался под RH 7.2 неделю назад именно так, и там все работало) для хранения gpg-ключей и прочей чувствительной информации.
Когда его маунтит ivman, он вешает его в /media/DRIVELABEL с правами 770 root:users. Но хранение ключей таким манером на многопользовательской по своей сути системе (это вообще-то LTSP-сервер) недопустимо, нужно 700 user:users. Еще лучше было бы маунтить его вообще не в /media а в /home/user/usbdrive. (хотя это как раз вторично, ибо симлинки никто не отменял) Опознавать драйв при этом было бы оптимально по vfat volume label (он одновременно должен читаться и на винде, ибо в ней тоже есть Thunderbird/Enigmail, так что без vfat никак) потому что есть сомнения в фактическом наличии у него какого-либо уникального device id.
На RH 7.2 удалось все сделать именно так за счет шаманских манипуляций с hotplug, но это было давно и в системе со всем вышеперечисленным определенно неправильно.
Оптимально также было бы подсунуть ему полную маунтстроку с umask-dmask-fmask-uid-gid чтобы досовые файлы не прикидывались исполняемыми. Нехудо бы также сделать так чтобы KDE и компания вообще не думали про его существование, их оно не касается.
Никакие другие usb-драйвы которые будут воткнуты в систему (а воткнуть могут что угодно) при этом замаунтиться с такими правами и в таком месте не должны, для них дефолтное поведение ivman совершенно нормально.
Единственное внятное что удалось найти в документации и после длительного гугления по этому вопросу - это IvmConfigMappings.xml, но поскольку каждый раз когда девайс извлекают и втыкают обратно он попадает на совершенно разные /dev/sd[a-z]1, (и непременно попал бы если бы девайсов сейчас было несколько) применить то что там написано "в лоб" невозможно, и похоже оно вообще не из той оперы.
Поскольку сам ivman создает и директорию и маунтстроку с volume label, которые откуда-то берет, все это почти наверняка возможно.
Как же мне это сделать штатным путем не прибегая к повторению шаманства с hotplug?
Ответ таки был найден в процессе поиска решения совсем другой задачи, опишу процесс полностью с выжимкой для потомков:
1. Для однозначной идентификации тома нужно его UUID, т.е. уникальный номер тома. Можно и одной меткой, можно одним UUID, лучше наверное и тем и другим из параноических соображений. Метка диска нам уже известна. Осталось определить UUID. Самый первый способ это сделать который подвернулся под руку - это сделать так:
ls /dev/disk/by-uuid
Втыкаем диск и ждем пока он замаунтится.
ls /dev/disk/by-uuid
Тот из них, который появился после его втыкания - это и есть искомый. Для vfat UUID имеет вид XXXX-XXXX.
После этого, пишем в /etc/ivman/IvmConfigActions.xml примерно так:
Code: |
<ivm:Match name="hal.volume.label" value="метка диска">
<ivm:Match name="hal.volume.uuid" value="UUID диска">
<ivm:Option name="mountoption" value="uid=UID искомого юзера" />
<ivm:Option name="mountoption" value="umask=0077" />
<ivm:Option name="mountoption" value="dmask=0077" />
<ivm:Option name="mountoption" value="fmask=0177" />
<ivm:Option name="mountoption" value="nosuid" />
<ivm:Option name="mountoption" value="quiet" />
<ivm:Option name="mountoption" value="noexec" />
</ivm:Match>
</ivm:Match>
|
Эта комбинация опций и дает искомое, что решает наиболее критически важную часть задачи, т.е. тщательно заткнуть диск ото всех и сделать его удобным для собственно хранения ключей.
Переместить mountpoint из /media/DRIVELABEL куда-либо еще, насколько мне удалось выяснить, текущая версия ivman не дает принципиально, так что решить проблему нахождения его файлов где-то в другом месте можно только посредством симлинков.
Все это относится только к одному из томов, т.е. если usb-драйв каким-то манером предоставляет несколько томов, остальные останутся открыты. |
|
Back to top |
|
 |
fank l33t

Joined: 16 Oct 2004 Posts: 794 Location: Minsk, Belarus
|
Posted: Tue Nov 29, 2005 9:58 am Post subject: |
|
|
быстрый ответ-наводка
на английской части форума Documentation, Tips..... есть ветка про HAL (или ivman), если не ошибаюсь, там чётко описано, как по уникальному ID присваивать имя девайсу
копни, может поможет...
EDIT
сорри, не дочитал до конца
это всё HAL умеет, ivman только надстройка над ним
это так...просто....для тех, кто, возможно ivman'ом не пользуется |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|