Mount USB drive with write permissions for everyone or specific user
I know there are similar questions but I get some specific problem I can't overcome.
- HDD split into two partitions.
sdb1is NTFS and I don't need it. I need
sdb2which is fat32.
- Ubuntu 12.04.1 LTS (server)
Ultimately I need a perma-mount
/home/storagewith access right (rw) for the user
Problems I'm facing:
1) Using manual mount from command line.
If I just use
server# sudo mount /dev/sdb2 /home/storage
It mounts but the
/home/storagereceives root as owner and group and doesn't allow
mediauser to write there.
If i use
sudoas the user
media- i'm not allowed. Says only root can use mount.
If I use
server# sudo mount /dev/sdb2 /home/storage -o umask=000I get what I need. A bit overdone of course, since the storage folder becomes writable for everyone. BUT - that is manually mounted - now i need it to remount on every reboot.
2) Remounting on reboot - using
So I thought I'll be fine if I use
fstabto mount this partition (
/dev/sdb2) every time i reboot. The
fstabline I added:
UUID=8C52-C1CD /home/storage auto user,umask=000,utf8,noauto 0 0
got uuid with
blkid. The fs type
autoi changed few times...tried
vfattoo, but always on the reboot ubuntu stops when processing fstab (as i think) with the message (took from the log):
fsck from util-linux 2.20.1 /dev/sda5: clean, 120559/10969088 files, 19960144/43861504 blocks mount: unknown filesystem type 'static' mountall: mount /etc/fstab:  terminated with status 32 mountall: Filesystem could not be mounted: /etc/fstab: Skipping /etc/fstab: at user request
And also -
sudo mount -anever really does anything.
What am I doing wrong? I do suspect I messed up something:)
As it seems - fstab should hold only mounts for static drives, not any sort of usb stuff. I'm puzzled how then this works with all the people posting on the net their success stories...
however..if this is not possible - i would like to know how to remount my usb after every reboot...if not with fstab - than how?:)
I think you should post all of fstab for review, and not just one line. As for the right permissions, run `id media` and use `uid=` and `gid=` and `umask=027`options.
Is there some reason you need to use FAT ? If not, I would back up the data and use a linux native file system. You can then set ownership and permissions.
@mikewhatever thanks but it's working strangely actually... well..not really:)
- HDD split into two partitions.
Your problem seems to be about the permissions you have set. FAT / FAT32 formatted drives don't support file permissions. The permissions for everything are determined by how the drive is mounted. When you set the permission open it worked when you
server# sudo mount /dev/sdb2 /home/storage -o umask=000
As for it not auto mounting on reboot
UUID=8C52-C1CD /home/storage auto user,umask=000,utf8, -->noauto<-- 0 0
The "noauto" makes this NOT automatically mount when the system starts and parses the /etc/fstab file. Remove that option and it will mount on startup. You can set the permissions on the mount point once it's mounted with
chmodor specify them in /etc/fstab.
If you need the media user to access it, you can set the permissions to 764, and add them to the security group. Root always has access to everything.
see http://www.linux.org/threads/file-permissions-chmod.4094/ for some examples of propper file permissions
On a side note, bodhi.zazen made a good point Is there some reason you need to use FAT ? If not, I would back up the data and use a linux native file system. You can then set ownership and permissions.
You can also run
sudo chmod 0777 /home/storage
Since FAT drives don't have permissions, linux applies the permission of the mount point to the entire drive.
Never apply R+W+X permissions for every user.. This would allow anyone or anything to access,execute,delete,modify storage and its contents....
On most operating systems, USB drives are mounted so any user can modify the contents. If you are a server admin in a situation where this could be an issue, I wouldn't have to tell you what 0777 means.
Unless overridden by mount options GID= or UID= the owner and permissions of the mount point upon mounting become those of the filesystem tree being mounted.
So if /dev/sdb1 contains an ext4 filesystem (say a backup) owned by user then user will become the owner of the mount point upon successful mount.
Starting off we have an empty folder 'backup' to serve as the mount point, and is owned by root.
# ls -alR /mnt /mnt/: drwxr-x--- 5 root root 4096 May 30 20:59 ./ drwxr-xr-x 3 root root 4096 Dec 5 2015 ../ drwx------ 2 root root 4096 Jan 1 07:45 backup/ /mnt/backup: drwx------ 2 root root 4096 Jan 1 07:45 . drwxr-x--- 5 root root 4096 May 30 20:59 ..
now we mount /dev/sdb1 (read-only)
# mount -o ro /dev/sdb1 /mnt/backup
and lets see...
# ls -alR /mnt/: drwxr-x--- 5 root root 4096 May 30 20:59 ./ drwxr-xr-x 3 root root 4096 Dec 5 2015 ../ drwx------ 2 user user 4096 Jan 1 07:45 backup/ /mnt/backup: drwx------ 2 user user 4096 Jan 1 07:45 . drwxr-x--- 5 root root 4096 May 30 20:59 .. -rw------- 1 user user 252076021760 Jun 9 21:11 backup.tar
Now if you've got an empty drive and you want to mount it for 'user' as an extension of 'user's disk space, mount the drive as root, chown the root of the mount to 'user' and unmount.
The next time the filesystem is mounted (by root or anyone as per fstab) the owner of the mount will be 'user'.
If you do have external storage device connected to your Linux box with NTFS, make sure that the filesystem is clean.
Before you mount the storage to your Linux box:
Run the below command
ntfsfix /dev/storagedevice ( like sdb1 or sdc1 )
Reboot your Linux box
Mount the external storage by running the command:
mount -o rw /dev/storagedevice /media/
mount -o rw /dev/storagedevice /mnt/
or mount the storagedevice via GUI.