I can be a total bitch to make a digital camera that does not look like a flash drive accessible to a normal user under Fedora 7. It sure was for me. Gphoto2 works, but only for the root user, and the net is full of instructions for messing with usbfs mount group, special udev rules, special HAL rules, and so forth. The problem is, nearly all of that discussion is obsolete or at least conflicts between different distributions.

For Fedora, two tricks are necessary: First of all, udev needs to be told the USB devices which should be user-accessible, and second, the PAM console permissions map is missing a class of devices useful for this purpose. It is unfortunate that otherwise such a usable operating system needs this kind of tweaking, but it does.

The first is achieved by creating a special udev rule file such as  /etc/udev/rules.d/52-canon.rules:

SUBSYSTEM=="usb_device", ACTION=="add", SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="306e", SYMLINK+="camera-%k" 

Every camera will have different vendor/product codes, of course. To make this change effective, reboot or restart udev with 'sudo killall udevd; sudo /sbin/start_udev'. Second trick is to change console permissions with a file such as /etc/security/console.perms.d/52-camera.perms:

# device classes -- these are shell-style globs
<usbcamera>=/dev/camera*
# permission definitions
<console> 0600 <usbcamera>

This is a "play-by-the-book" type of solution. If you're less interested in keeping some devices inaccessible from a normal account, a simpler permission scheme will make all USB devices available. In this latter case, no udev changes are needed, only a file in /etc/security/console.perms.d/usb.perms:

<usbdevices>=/dev/bus/usb/*/*
<console> 0600 <usbdevices>