linux - ext4fuse as non-root on FreeBSD10

08
2014-07
  • hoOmE

    I have 2 operating systems on my computer, a Arch Linux on a 100GB ext4 partition, a FreeBSD on a 250GB partition and all my data on 2 2TB separated ext4 disks.

    I wan't to access the files from this two disks using my FreeBSD, i search on the web and the best result that i've found is to use ext4fuse, i tryed to mount my disks using ext4fuse /device /folder, it works but i can't read the content with my normal user, the permissions to read is only for root user:

    [root@******* /usr/home/********/Arch Linux]# ls -lha
    total 72
    dr-xr-xr-x    4 root   wheel   4.0K Aug 28 19:37 .
    drwxr-xr-x   29 *****  *****   1.0K Feb 20 15:43 ..
    dr-x------  108 1000   100      12K Feb 20 06:24 *********
    dr-x------    2 root   wheel    16K Aug 28 16:18 lost+found
    

    Since i can't find any documentation about ext4fuse and it mounted only at read-only, i can't do anything else.

    If at least i could give permission to the wheel group to read the file, i could read-it with my normal user, since only root has permissions on this device, i cannot even cd to this folder with my normal user.

    /usr/home/*******/Arch Linux is my 2TB partition with my data mounted using ext4fuse.

  • Answers
  • Roland Smith

    According to its github page, ext4fuse is read-only:

    This is a read-only implementation of ext4 for FUSE.

    This is implemented in fuse-main.c, by not providing functions for any operation that can change the filesystem (the full list of possible operations is here);

    static struct fuse_operations e4f_ops = {
        .getattr = op_getattr,
        .readdir = op_readdir,
        .open = op_open,
        .read = op_read,
        .readlink = op_readlink,
        .init = op_init,
    };
    

    And in op_getattr.c, by removing all write bits from permissions;

    stbuf->st_mode = inode.i_mode & ~0222;
    

    But it doesn't remove all group bits.

    This means that you cannot change anything on the ext4 filesystem from FreeBSD. And the lack of group permissions comes from the ext4 filesystem itself. So you will have to add group permissions to the files when you boot into Arch Linux.


  • Related Question

    osx - Root directory permissions on Mac OS X 10.6?
  • Agos

    I was wondering if it's normal that the root directory / should be owned by “root”.
    I get asked for my password every time I want to do something there (e.g. save a file, create a directory) and I don't remember this happening before (though this may just be my faulty memory). Here's the relevant terminal output:

    MacBook:~ ago$ ls -lah /
    total 37311
    drwxr-xr-x@  35 root  staff   1,2K 22 Mar 12:34 .
    drwxr-xr-x@  35 root  staff   1,2K 22 Mar 12:34 ..
    -rw-rw-r--@   1 root  admin    21K 22 Mar 10:21 .DS_Store
    drwx------    3 root  admin   102B 28 Feb  2008 .Spotlight-V100
    d-wx-wx-wt    2 root  admin    68B 31 Ago  2009 .Trashes
    -rw-r--r--@   1 ago   501      45K 23 Gen  2008 .VolumeIcon.icns
    srwxrwxrwx    1 root  staff     0B 22 Mar 12:34 .dbfseventsd
    ----------    1 root  admin     0B 23 Giu  2009 .file
    drwx------   27 root  admin   918B 22 Mar 10:55 .fseventsd
    -rw-r--r--@   1 ago   admin    59B 30 Ott  2007 .hidden
    -rw-------    1 root  wheel   320K 30 Nov 11:42 .hotfiles.btree
    drwxr-xr-x@   2 root  wheel    68B 18 Mag  2009 .vol
    drwxrwxr-x+ 276 root  admin   9,2K 19 Mar 18:28 Applications
    drwxrwxr-x@  21 root  admin   714B 14 Nov 12:01 Developer
    drwxrwxr-t+  74 root  admin   2,5K 18 Dic 22:14 Library
    drwxr-xr-x@   2 root  wheel    68B 23 Giu  2009 Network
    drwxr-xr-x    4 root  wheel   136B 13 Nov 17:49 System
    drwxr-xr-x    6 root  admin   204B 31 Ago  2009 Users
    drwxrwxrwt@   4 root  admin   136B 22 Mar 12:35 Volumes
    drwxr-xr-x@  39 root  wheel   1,3K 13 Nov 17:44 bin
    drwxrwxr-t@   2 root  admin    68B 23 Giu  2009 cores
    dr-xr-xr-x    3 root  wheel   5,1K 17 Mar 11:29 dev
    lrwxr-xr-x@   1 root  wheel    11B 31 Ago  2009 etc -> private/etc
    dr-xr-xr-x    2 root  wheel     1B 17 Mar 11:30 home
    drwxrwxrwt@   3 root  wheel   102B 31 Ago  2009 lost+found
    -rw-r--r--@   1 root  wheel    18M  3 Nov 19:40 mach_kernel
    dr-xr-xr-x    2 root  wheel     1B 17 Mar 11:30 net
    drwxr-xr-x@   3 root  admin   102B 24 Nov  2007 opt
    drwxr-xr-x@   6 root  wheel   204B 31 Ago  2009 private
    drwxr-xr-x@  64 root  wheel   2,1K 13 Nov 17:44 sbin
    lrwxr-xr-x@   1 root  wheel    11B 31 Ago  2009 tmp -> private/tmp
    drwxr-xr-x@  17 root  wheel   578B 12 Set  2009 usr
    lrwxr-xr-x@   1 root  wheel    11B 31 Ago  2009 var -> private/var
    

    Are these ownerships / permissions ok? Should I chmod/chown something?

    Thanks in advance


  • Related Answers
  • Gordon Davisson

    I just checked a couple of relatively clean OS X 10.6 Macs, and while / is owned by root, its group and permissions are different from what you have: it's assigned to the admin group, and has group write and the sticky bit set, and doesn't have an extended attributes (i.e. drwxrwxr-t 29 root admin). Disk Utility's permissions repair feature doesn't seem to reset this (I just tried), but you can fix it by hand:

    sudo chgrp admin /
    sudo chmod 1775 /
    xattr -l /
    

    The last command will display the extended attributes attached to the root; depending on what they are, you may want to remove them (use sudo xattr -d attrname /).

  • Felix

    No, leave it as it is!

    root is the administrator user of your system. There are only very very few cases where you should have to do something as this user.

    In fact, you either break something if you change permissions or make your system vulnerable.

    You can read more about root / superuser at Wikipedia.

    Update:
    Whenever you have to authenticate it is because you switch to "superuser mode". As admin user you are automatically in group admin. This group has basically the same rights as root

    # /etc/sudoers
    %admin  ALL=(ALL) ALL
    

    (which means that you are allowed to run every command from every host)

    Hence although your don't log in as root, after authenticate again (e.g. if you type sudo <command> you gain nearly the same rights as root. I am not sure how much you are familiar with UNIX like OS' but if you try to apply changes to such paths via Finder, it is basically an execution of sudo. Read more about sudo.

  • Chris Johnsen

    On most Unix systems (Mac OS X included), the root directory is not generally writable by non-root users.

    Use your home folder for your files or /Users/Shared for files that multiple users need to access. You can usually use ⇧⌘H (Shift-Command-H) to jump to your home directory in Finder and in most Open/Save dialogs. Similarly, you can use ⇧⌘G (Shift-Command-G), then type /Users/Shared to get to the shared folder (or go to your home folder, then go up to /Users with ⌘↑ (Command-Up), type Shared to select the folder, then ⌘↓ (Command-Down) to open it).