В /boot/loader.conf такие записи добавил
Код: Выделить всё
cd9660_iconv_load="YES"
udf_iconv_load="YES"
msdosfs_iconv_load="YES"
Код: Выделить всё
sysctl vfs.usermount=1
дальше я выставил права на папку /mnt, лениво было делать каталог куда монтировать флеху ))
Код: Выделить всё
chown wolf /mnt
у меня например каталог /mnt выглядит так
[root@atom ~]# ls -al /mnt/
total 6
drwxr-xr-x 7 wolf wheel 512 25 май 20:55 .
drwxr-xr-x 21 root wheel 512 9 июл 14:57 ..
drwxrwxrwx 2 wolf wheel 512 9 июл 14:29 flash
drwxrwxrwx 2 root wheel 0 1 янв 1970 smb
drwxr-xr-x 1 root wheel 0 22 апр 2009 win1
drwxr-xr-x 1 root wheel 0 22 апр 2009 win2
drwxr-xr-x 1 root wheel 0 22 апр 2009 win3
Код: Выделить всё
[root@atom ~]# cat /etc/devfs.conf | grep cd0
#link acd0 cdrom
perm cd0 0660 // права доступа на устройство cd0
[root@atom ~]# ls -al /dev/cd*
crw-rw---- 1 root operator 0, 102 9 июл 18:07 /dev/cd0
а и еще нужно чтобы пользователь находился в группе operator, что нужно сделать я думаю все знают, но напишу на всякий
pw groupmod operator -m you_user_name
[root@atom ~]# cat /etc/group | grep operator
operator:*:5:root,wolf
Код: Выделить всё
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
if (argc < 2 || argc > 2)
return 1;
else
{
switch(atoi(argv[1]))
{
case 1: // Параметр
system("cdcontrol -f /dev/cd0 eject"); // команда
break;
case 2:
system("cdcontrol -f /dev/cd0 close");
break;
case 3:
system("mount /cdrom");
break;
case 4:
system("umount /cdrom");
break;
case 5:
system("umount /cdrom");
system("sleep 1");
system("cdcontrol -f /dev/cd0 eject");
break;
case 6:
system("cdcontrol -f /dev/cd0 close");
system("sleep 1");
system("mount /cdrom");
break;
case 7:
system("mount /mnt/flash");
break;
case 8:
system("umount /mnt/flash");
break;
default:
break;
}
}
return 0;
}
// Компилируем например так ))) gcc -o mount mount.c
// После этой операции у нас появится бинарный файл с именем mount для тех кто не вкурсе =)
// единственно что я не добавлял так это монтирование дисков с fs UDF эсть у меня такие
Код: Выделить всё
[root@atom ~]# cat /etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/ad3s3b none swap sw 0 0
/dev/ad3s3a / ufs rw 1 1
/dev/acd0 /cdrom cd9660 ro,noauto,-CKOI8-R, 0 0
/dev/acd0 /dvdrom udf ro,noauto,-CKOI8-R 0 0
/dev/ad3s1 /mnt/win1 ntfs ro,-CKOI8-R 0 0
/dev/ad3s5 /mnt/win2 ntfs ro,-CKOI8-R 0 0
/dev/ad3s6 /mnt/win3 ntfs ro,-CKOI8-R 0 0
/dev/da0s1 /mnt/flash msdosfs rw,noauto,-Wkoi2dos,-Lru_RU.KOI8-R 0 0
proc /proc procfs rw 0 0
Код: Выделить всё
/home/wolf/cc/mount 6
Вообщем то казалось бы все, но возникло одно но, с приводом проблем нет ве работает но вот с флешкой возникла проблема так как это диманическое устройство то прав по умолчанию для моунта пользователю не хватает
поэтому добавим такую фещь в файде /etc/devd.conf
вроде как это можно сделать проще но до у меня чета не получилось.
Код: Выделить всё
attach 10 {
match "device-name" "umass0";
action "/home/wolf/mount.sh";
};
Код: Выделить всё
[root@atom ~]# cat ~wolf/mount.sh
#!/bin/sh
sleep 1
chmod 664 /dev/da0*
#mount_msdosfs -Wkoi2dos -Lru_RU.KOI8-R /dev/da0s1 /mnt/flash/ если эту запись разкомментировать то у нас будет срабатывать автомонтирование, но чтобы отмонтировать нужны права рута хотя я могу и ошибаться