|
Монтирование сменных устройств для FreeBSD без прав root'а. | |
К
моему удивлению, этот вопрос в Рунете освещен слабо. Источники неполны и
разрознены. Между тем, всё не так уж и сложно. Я буду рассматривать этот
вопрос на примере FreeBSD 5-й ветки. Итак, для начала, выставим на
устройства соответствующие права: В файле /etc/devfs.conf пропишем
следующее: perm /dev/cd0 0666 perm /dev/xpt0 0666 perm
/dev/pass0 0666 perm /dev/fd0 0666 Затем, установим переменную
vfs.usermount в 1, путем прописывания её в /ect/sysctl.conf (Можно
просто использовать команду sysctl vfs.usermount=1, но тогда после
первой же перезагрузки, она сбросится в 0). Далее, займёмся
редактированием файла /etc/fstab, прописав в нем точки монтирования для
тех пользователей, которым мы хотим разрешить это делать: /dev/cd0
/cdrom cd9660 ro,noauto,-C=koi8-r 0 0 /dev/cd0 /home/user1/cdrom
cd9660 ro,noauto,-C=koi8-r 0 0 /dev/cd0 /home/user2/cdrom cd9660
ro,noauto,-C=koi8-r 0 0 /dev/cd0 /home/user3/cdrom cd9660
ro,noauto,-C=koi8-r 0 0 /dev/fd0 /floppy msdosfs
rw,noauto,-L=ru_RU.KOI8-R,-D=CP866 0 0 /dev/fd0 /home/user1/floppy
msdosfs rw,noauto,-L=ru_RU.KOI8-R,-D=CP866 0 0 /dev/fd0
/home/user2/floppy msdosfs rw,noauto,-L=ru_RU.KOI8-R,-D=CP866 0
0 /dev/fd0 /home/user3/floppy msdosfs
rw,noauto,-L=ru_RU.KOI8-R,-D=CP866 0 0 Далее, надо не забыть создать
в домашнем каталоге каждого пользователя соответствующие каталоги (cdrom
и floppy). Теперь, рабочие среды Gnome и KDE будут отображать состояние
соответствующих устройств и пытаться управлять ими (монтировать и
отмонтировать). Далее пойдёт шаманство. Поскольку на носителях могут
встретиться файлы с именами, содержащими кириллицу, в fstab'е прописаны
соответствующие опции перекодировки. Но даже при вмонтировании в ядро
соответствующих опций, всё равно будет выдаваться operation not
permitted... Как мне любезно объяснили на opennet'е, это известный баг и
обойти его можно двояко - выставив SUID на mount/umount, либо произведя
монтирование/отмонтирование этих устройств от имени root'а на этапе
загрузки. Второй способ показался мне более приемлемым, и я создав файл
/usr/local/etc/rc.d/mount_umount.sh, прописал в
нем: #!/bin/sh mount /cdrom; umount /cdrom mount /floppy;
umount /floppy Наличие носителя в устройстве необязательно. На этом
раскланиваюсь...
P.S. Существует неплохой порт автомонтирования
для CD audio/autocd, который замечательно справляется со своими
обязанностями. К сожалению, используемый мной CD, является пишущим, а
необходимость отмонтировать CD перед каждой записью мне показалось
неудобной...
|