Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
ivman/hal и опознание конкретного usb-drive. (mostly solved)
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Russian
View previous topic :: View next topic  
Author Message
Mihara
n00b
n00b


Joined: 24 Nov 2005
Posts: 4

PostPosted: Sat Nov 26, 2005 6:33 pm    Post subject: ivman/hal и опознание конкретного usb-d Reply with quote

Никак не получается, начинаю биться головой об стену. Господа гуру, помогите?

Дано: Свежая инсталляция 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
View user's profile Send private message
fank
l33t
l33t


Joined: 16 Oct 2004
Posts: 794
Location: Minsk, Belarus

PostPosted: Tue Nov 29, 2005 9:58 am    Post subject: Reply with quote

быстрый ответ-наводка
на английской части форума Documentation, Tips..... есть ветка про HAL (или ivman), если не ошибаюсь, там чётко описано, как по уникальному ID присваивать имя девайсу
копни, может поможет...

EDIT
сорри, не дочитал до конца
это всё HAL умеет, ivman только надстройка над ним
это так...просто....для тех, кто, возможно ivman'ом не пользуется
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Russian All times are GMT
Page 1 of 1

 
Jump to:  
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