UNIX - mount: only root can do that
I need to allow a non-root user to mount/unmount a device. I am a total noob when it comes to UNIX, so please dumb it down for me.
I've been looking all over teh interwebz to find an answer and it seems everyone is giving the same one, which is to modify /etc/fstab
to include that device with the user
option (or users
, tried both). I did that and it still says mount: only root can do that
.
Here are the contents of my fstab:
# /etc/fstab: static file system information. # # Use 'vol_id --uuid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # proc /proc proc defaults 0 0 # / was on /dev/mapper/minicc-root during installation UUID=1a69f02a-a049-4411-8c57-ff4ebd8bb933 / ext3 relatime,errors=remount-ro 0 1 # /boot was on /dev/sda5 during installation UUID=038498fe-1267-44c4-8788-e1354d71faf5 /boot ext2 relatime 0 2 # swap was on /dev/mapper/minicc-swap_1 during installation UUID=0bb583aa-84a8-43ef-98c4-c6cb25d20715 none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0 /dev/scd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0 /dev/sdb1 /mnt/sdcard auto auto,user,rw,exec 0 0
My thumb drive partition shows up as /dev/sdb1
. I'm pretty sure my fstab
is set up OK, but everyone on the other posts seems to fail to mention how they actually call the mount
command once this entry is in the fstab file. I think this is where my problem may be. The command I use to mount the drive is:
$ mount /dev/sdb1 /mnt/sdcard
/bin/mount
is owned by root and is in the root group and has 4755 permissions./bin/umount
is owned by root and is in the root group and has 4755 permissions./mnt/sdcard
is owned by me and is in one of my groups and has 0755 permissions.
My mount command works fine if I use sudo
, but I need to be able to do this without sudo
(need to be able to do it from a PHP script using shell_exec
). Any suggestions?
When mounting a volume as a regular user, you only need to provide the mount point name, i.e.:
mount /mnt/sdcard
The /etc/fstab
file provides the device that will be used.
Try changing ownership of /dev/sdb1
to root:
chown root:root /dev/sdb1
and your fstab
line to
/dev/sdb1 /mnt/sdcard auto rw,user,noauto,exec,utf8 0 0
And do your mount
like this:
mount /dev/sdb1