Skip to contentSkip to conversation

Default target file system permissions

Buildroot Sven Neumann 2 participants 3 messages Nov 2, 2013

lore
Share & tools
lore
#0 lore raw

Hi,

I've been debugging some problems with our buildroot builds lately and found them to be caused by too restrictive permissions on the target file system. Pretty much all files and directories, unless specified explicitly in system/device_table.txt are only readable by the owner (root). This causes problems with samba (/var/nmbd not accessible by nmbd), dbus services (dbus daemon can not access the service files) and so on. Basically only services that are running as root can work correctly, because for other users the system is pretty much inaccessible. I've come across this mail on the mailing-list which seems related, but couldn't find an answer:
http://buildroot-busybox.2317881.n4.nabble.com/Default-target-file-system-permissions-td39088.html
I've also tried changing the umask on our buildslaves but that didn't help.

Here's how the root folder on our target file-system looks like:

drwxr-xr-x   20 root     root          4096 Dec  7  1999 .
drwxr-xr-x   20 root     root          4096 Dec  7  1999 ..
drwx------    2 root     root          4096 Dec  7  1999 bin
drwxr-xr-x    2 root     root          4096 Nov 30  1999 boot
drwxr-xr-x    5 root     root          4096 Dec 30  1999 data
drwxr-xr-x   10 root     root         12600 Dec  7  1999 dev
drwxr-xr-x   15 root     root          4096 Dec  7  1999 etc
drwx------    3 root     root          4096 Dec  7  1999 home
drwx------    4 root     root          4096 Dec  7  1999 lib
lrwxrwxrwx    1 root     root            11 Oct 31 20:26 linuxrc ->
bin/busybox
drwx------    2 root     root          4096 Dec  7  1999 media
drwx------    2 root     root          4096 Dec  7  1999 mnt
drwx------    2 root     root          4096 Dec  7  1999 opt
dr-xr-xr-x   62 root     root             0 Dec  7  1999 proc
drwx------    2 root     root          4096 Oct 31 22:09 root
lrwxrwxrwx    1 root     root             3 Oct 31 18:39 run -> tmp
drwx------    2 root     root          4096 Dec  7  1999 sbin
dr-xr-xr-x   11 root     root             0 Dec  7  1999 sys
drwxrwxrwt   12 root     root           800 Oct 31 21:51 tmp
drwx------    7 root     root          4096 Dec  7  1999 usr
drwxr-xr-x    7 root     root          4096 Dec  7  1999 var

So are the restrictive permissions on the target file-system intentional and how I can change this situation?

Regards,
Sven

#1 lore raw

Dear Sven Neumann,

Quoted 30 lines · Sven Neumann

I've been debugging some problems with our buildroot builds lately and found them to be caused by too restrictive permissions on the target file system. Pretty much all files and directories, unless specified explicitly in system/device_table.txt are only readable by the owner (root). This causes problems with samba (/var/nmbd not accessible by nmbd), dbus services (dbus daemon can not access the service files) and so on. Basically only services that are running as root can work correctly, because for other users the system is pretty much inaccessible. I've come across this mail on the mailing-list which seems related, but couldn't find an answer:
http://buildroot-busybox.2317881.n4.nabble.com/Default-target-file-system-permissions-td39088.html
I've also tried changing the umask on our buildslaves but that didn't help.

Here's how the root folder on our target file-system looks like:

drwxr-xr-x   20 root     root          4096 Dec  7  1999 .
drwxr-xr-x   20 root     root          4096 Dec  7  1999 ..
drwx------    2 root     root          4096 Dec  7  1999 bin
drwxr-xr-x    2 root     root          4096 Nov 30  1999 boot
drwxr-xr-x    5 root     root          4096 Dec 30  1999 data
drwxr-xr-x   10 root     root         12600 Dec  7  1999 dev
drwxr-xr-x   15 root     root          4096 Dec  7  1999 etc
drwx------    3 root     root          4096 Dec  7  1999 home
drwx------    4 root     root          4096 Dec  7  1999 lib
lrwxrwxrwx    1 root     root            11 Oct 31 20:26 linuxrc ->
bin/busybox
drwx------    2 root     root          4096 Dec  7  1999 media
drwx------    2 root     root          4096 Dec  7  1999 mnt
drwx------    2 root     root          4096 Dec  7  1999 opt
Quoted 8 lines
dr-xr-xr-x   62 root     root             0 Dec  7  1999 proc
drwx------    2 root     root          4096 Oct 31 22:09 root
lrwxrwxrwx    1 root     root             3 Oct 31 18:39 run -> tmp
drwx------    2 root     root          4096 Dec  7  1999 sbin
dr-xr-xr-x   11 root     root             0 Dec  7  1999 sys
drwxrwxrwt   12 root     root           800 Oct 31 21:51 tmp
drwx------    7 root     root          4096 Dec  7  1999 usr
drwxr-xr-x    7 root     root          4096 Dec  7  1999 var

Interesting, because here I don't have the same behavior:

drwxrwxr-x 2 root root 1420 nov.   1 13:24 bin
drwxr-xr-x 3 root root  100 nov.   1 13:24 dev
drwxr-xr-x 5 root root  500 nov.   1 13:24 etc
drwxrwxr-x 4 root root   80 nov.   1 13:24 home
drwxrwxr-x 2 root root  540 nov.   1 13:24 lib
lrwxrwxrwx 1 root root    3 nov.   1 13:22 lib32 -> lib
lrwxrwxrwx 1 root root   11 nov.   1 13:24 linuxrc -> bin/busybox
drwxrwxr-x 2 root root   40 oct.  27 12:37 media
drwxrwxr-x 2 root root   40 oct.  27 12:37 mnt
drwxrwxr-x 2 root root   40 oct.  27 12:37 opt
drwxrwxr-x 2 root root   40 oct.  27 12:37 proc
drwx------ 2 root root  100 oct.  27 12:37 root
lrwxrwxrwx 1 root root    3 oct.  27 12:37 run -> tmp
drwxrwxr-x 2 root root  940 nov.   1 13:24 sbin
drwxrwxr-x 2 root root   40 oct.  27 12:37 sys
drwxrwxrwt 3 root root   60 nov.   1 13:24 tmp
drwxrwxr-x 6 root root  140 nov.   1 13:24 usr
drwxrwxr-x 4 root root  220 nov.   1 13:24 var

How are the permissions of the directories/files in system/skeleton/ in your Buildroot sources?

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#2 lore raw

Hi,

Quoted 46 lines · Thomas Petazzoni
Quoted 16 lines

Here's how the root folder on our target file-system looks like:

drwxr-xr-x   20 root     root          4096 Dec  7  1999 .
drwxr-xr-x   20 root     root          4096 Dec  7  1999 ..
drwx------    2 root     root          4096 Dec  7  1999 bin
drwxr-xr-x    2 root     root          4096 Nov 30  1999 boot
drwxr-xr-x    5 root     root          4096 Dec 30  1999 data
drwxr-xr-x   10 root     root         12600 Dec  7  1999 dev
drwxr-xr-x   15 root     root          4096 Dec  7  1999 etc
drwx------    3 root     root          4096 Dec  7  1999 home
drwx------    4 root     root          4096 Dec  7  1999 lib
lrwxrwxrwx    1 root     root            11 Oct 31 20:26 linuxrc ->
bin/busybox
drwx------    2 root     root          4096 Dec  7  1999 media
drwx------    2 root     root          4096 Dec  7  1999 mnt
drwx------    2 root     root          4096 Dec  7  1999 opt
Quoted 8 lines
dr-xr-xr-x   62 root     root             0 Dec  7  1999 proc
drwx------    2 root     root          4096 Oct 31 22:09 root
lrwxrwxrwx    1 root     root             3 Oct 31 18:39 run -> tmp
drwx------    2 root     root          4096 Dec  7  1999 sbin
dr-xr-xr-x   11 root     root             0 Dec  7  1999 sys
drwxrwxrwt   12 root     root           800 Oct 31 21:51 tmp
drwx------    7 root     root          4096 Dec  7  1999 usr
drwxr-xr-x    7 root     root          4096 Dec  7  1999 var

Interesting, because here I don't have the same behavior:

drwxrwxr-x 2 root root 1420 nov.   1 13:24 bin
drwxr-xr-x 3 root root  100 nov.   1 13:24 dev
drwxr-xr-x 5 root root  500 nov.   1 13:24 etc
drwxrwxr-x 4 root root   80 nov.   1 13:24 home
drwxrwxr-x 2 root root  540 nov.   1 13:24 lib
lrwxrwxrwx 1 root root    3 nov.   1 13:22 lib32 -> lib
lrwxrwxrwx 1 root root   11 nov.   1 13:24 linuxrc -> bin/busybox
drwxrwxr-x 2 root root   40 oct.  27 12:37 media
drwxrwxr-x 2 root root   40 oct.  27 12:37 mnt
drwxrwxr-x 2 root root   40 oct.  27 12:37 opt
drwxrwxr-x 2 root root   40 oct.  27 12:37 proc
drwx------ 2 root root  100 oct.  27 12:37 root
lrwxrwxrwx 1 root root    3 oct.  27 12:37 run -> tmp
drwxrwxr-x 2 root root  940 nov.   1 13:24 sbin
drwxrwxr-x 2 root root   40 oct.  27 12:37 sys
drwxrwxrwt 3 root root   60 nov.   1 13:24 tmp
drwxrwxr-x 6 root root  140 nov.   1 13:24 usr
drwxrwxr-x 4 root root  220 nov.   1 13:24 var
Quoted 2 lines

How are the permissions of the directories/files in system/skeleton/ in your Buildroot sources?

OK, that made me think and I've now checked the contents of the rootfs.tar created by buildroot instead of looking at the deployed filesystem on the target device. It appears that this is a bug in the way that we deploy the rootfs and has nothing to do with buildroot. I am very sorry for bothering you with this. Thanks for your attempt to help,

Regards,
Sven