Евгений Чайкин aka StraNNick
StraNN'ое место
2005-04-05
К моему удивлению, этот вопрос в Рунете освещен слабо. Источники неполны и разрознены. Между тем, всё не так уж и сложно. Я буду рассматривать этот вопрос на примере FreeBSD 5-й ветки.
Итак, для начала, выставим на устройства соответствующие права:
В файле /etc/devfs.conf пропишем следующее:
perm /dev/cd0 0666 perm /dev/xpt0 0666 perm /dev/pass0 0666 perm /dev/fd0 0666
Затем, установим значение переменной vfs.usermount, равное 1, путем прописывания её в /etc/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 будут отображать состояние соответствующих устройств и пытаться управлять ими (монтировать и отмонтировать).
Далее пойдёт шаманство. Поскольку на носителях могут встретиться файлы с именами, содержащими кириллицу, в /etc/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 перед каждой записью мне показалось неудобной...