В Linux'e флешка принимается как SCSI-девайс. После подключения флешки говоришь dmesg и смотришь, какой девайс был создан при подключении. Если в системе нет других SCSI устройств, то, как правило, это /dev/sda.
При наличии udev'a можно сделать все изящней (на примере моей Kingston Data Traveler Elite):
1. Пусть создался девайс /dev/sda
2. Говорим udevinfo -n /dev/sda -q path
Получаем в ответ /block/sda/sda1
3. Говорим udevinfo -p /block/sda/sda1 -a и смотрим на вывод. Ищем строки, уникальные для данного девайса. У меня это:
SYSFS{product} = "DT Elite HS 2.0"
4. Создаем в /etc/udev/rules.d свой файл правил. У меня это 010_usb.rules. Важно, чтобы он вызывался до остальных файлов правил, а вызываются они по алфавиту. В него пишем такую строку:
SYSFS{product} == "DT Elite HS 2.0", NAME="kingston", OWNER="ice", GROUP="adm", MODE="644", OPTIONS="last_rule"
В результате при подключении флешки будет создан девайс /dev/kingston с владельцем ice, группой adm и правами 644.
5. В /etc/fstab добавляем строку:
/dev/kingston /media/Kingston vfat rw,user,noauto 0 0
6. Теперь ты из-под обычного юзера можешь говорить mount /media/Kingston и совершенно спокойно работать с флешкой. При наличии hal можно вообще сделать automount.
Короче, man fstab, man udev.
В FreeBSD при подключении флешки создается девайс (по крайней мере у меня в FreeBSD 6.0): /dev/da0
Соответственно монтируется он так:
mount -t msdosfs /dev/da0s1 /mnt
Это тоже можно прописать в /etc/fstab.
Единственный минус - в FreeBSD нельзя управлять именами создаваемых девайсов. Во всяком случае я пока такого способа не нашел.