linux - ext4fuse as non-root on FreeBSD10
2014-07
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.
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.
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
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 /
).
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
.
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).