Ключевые слова:freebsd, user, mount, cdrom, (найти похожие документы)
From: Чайкин Евгений <strannick@gmail.com.>
Date: Mon, 28 Mar 2005 14:31:37 +0000 (UTC)
Subject: Монтирование сменных устройств для FreeBSD без root прав
Оригинал: http://strannick.blogspot.com/2005/03/freebsd-root.html
К моему удивлению, этот вопрос в Рунете освещен слабо. Источники неполны
и разрознены. Между тем, всё не так уж и сложно. Я буду рассматривать
этот вопрос на примере 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 перед каждой записью мне показалось неудобной...