Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

This may seem like a stupid question, but with most Linux stuff, it seems to me that a lot of trivial things are not documented.

Anyway, I want to simply mount an ext4 file-system onto a normal mount point in Ubuntu (/media/whereever), as read-writable for the current logged-in user, i.e. me.

I don't want to add anything into /etc/fstab, I just want to do it now, manually. I need super-user privileges to mount a device, but then only root can read-write that mount. I've tried various of the mount options, added it into fstab, but with no luck.

share|improve this question
    
Is there a reason why you don't want to mount it somewhere within your home directory? –  Robert S Ciaccio Oct 6 '10 at 19:14
add comment

4 Answers

On an ext4 filesystem (like ext2, ext3, and most other unix-originating filesystems), the effective file permissions don't depend on who mounted the filesystem or on mount options, only on the metadata stored within the filesystem.

With Ubuntu, mounting should happen automatically when you insert the disk, or you should be able to click on an icon to mount. You can also install pmount to mount filesystems as an ordinary user from the command line.

If you have a removable filesystem that uses different user IDs from your system, you can use bindfs (in the Ubuntu package of the same name) to provide a view of any filesystem with different ownership or permissions. The removable filesystem must be mounted already, e.g. on /media/disk9; then, if you want to appear as the owner of all files, you can run

mkdir ~/disk9
sudo bindfs -u $(id -u) -g $(id -g) /media/disk9 ~/disk9
share|improve this answer
    
Thanks! This worked for me with ext3. Note that I had to first mount the ext3 filesystem into some mount directory, then mount that directory with bindfs into the final directory. –  Ilari Kajaste Jun 9 '11 at 12:19
add comment

When you mount the ext4 file system, it uses the permissions that are embedded in that file system. If you wish to override these, then use the following:
1. Find the UID of the user you want to mount as: id <username> and look for UID=<userid>(<username>) GID=<groupid>(<groupname>) 2. sudo mount -o nosuid,uid=<userid>,gid=<groupid> /dev/whatever /media/wherever

This will mount the filesystem and mark the specified user as the owner of all files, and the specified group as the group for all files. nosuid is a security measure that prevents the user from bringing in suid programs and using them to gain root access to the system (i.e, a suid version of bash on the filesystem). Adding the noexec option will provide additional security, but will prevent the user from executing files on the filesystem.

Note: If you're just trying to interact with the file system yourself, you should either fix the permissions on the device, or interact with it as root if it's just a temporary thing (i.e., recovering a broken install).

If this is for mounting a USB or other removable external drive, you should check out the pmount system which can automate the process for you, or at least make it considerably easier (i.e., pmount <device> should create the folders for you, mount it as your user, and allow you to unmount it as your user)

share|improve this answer
1  
Any idea whether this should work with EXT3 as well? I get EXT3-fs: Unrecognized mount option "uid=1000" or missing value in dmesg when I try it with ext3. –  Ilari Kajaste Jun 9 '11 at 11:25
    
@Ilari: It won't work with ext3, nor with ext4 for that matter. Most Linux drivers for unix filesystems don't have UID and GID mapping options. –  Gilles Jun 9 '11 at 12:31
    
-1 Doesn't work. –  Ilari Kajaste Jun 10 '11 at 6:16
add comment

You can use:

mount -o user /dev/devicename and user option in your fstab.

share|improve this answer
add comment

If you're not in the mood to hand-edit your /etc/fstab file, I'd suggest trying out PySDM to define the rules for mounting your ext4 file system on a regular basis. It can be installed by installing the "pysdm" package in Synaptic, or by searching the Ubuntu Software Center for "pysdm". Once installed, it is available under the System --> Administration --> Storage Device Manager..

PySDM in action

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.