Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 1/3] base-files: change permissions on /sys and /proc
@ 2018-05-11 20:10 Dan McGregor
  2018-05-11 20:10 ` [PATCH 2/3] base-files: use /proc/self/mounts for /etc/mtab Dan McGregor
  2018-05-11 20:10 ` [PATCH 3/3] base-files: make root home mode customisable Dan McGregor
  0 siblings, 2 replies; 3+ messages in thread
From: Dan McGregor @ 2018-05-11 20:10 UTC (permalink / raw)
  To: openembedded-core

From: Dan McGregor <dan.mcgregor@usask.ca>

Fedora uses permissions of 555 for /proc and /sys. Debian doesn't
seem to explicitly set their permissions. In addition they're mounted
555.  Having them be 755 causes permission issues on upgrades inside a
container when the guest does not have the permission to change their
modes.

So, just bite the bullet and force them to be 555.

Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca>
---
 meta/recipes-core/base-files/base-files_3.0.14.bb | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/meta/recipes-core/base-files/base-files_3.0.14.bb b/meta/recipes-core/base-files/base-files_3.0.14.bb
index 1c0863b1c7b..a6963ba24d6 100644
--- a/meta/recipes-core/base-files/base-files_3.0.14.bb
+++ b/meta/recipes-core/base-files/base-files_3.0.14.bb
@@ -32,15 +32,16 @@ INHIBIT_DEFAULT_DEPS = "1"
 docdir_append = "/${P}"
 dirs1777 = "/tmp ${localstatedir}/volatile/tmp"
 dirs2775 = ""
+dirs555 = "/sys /proc"
 dirs755 = "/boot /dev ${base_bindir} ${base_sbindir} ${base_libdir} \
            ${sysconfdir} ${sysconfdir}/default \
-           ${sysconfdir}/skel ${nonarch_base_libdir} /mnt /proc ${ROOT_HOME} /run \
+           ${sysconfdir}/skel ${nonarch_base_libdir} /mnt ${ROOT_HOME} /run \
            ${prefix} ${bindir} ${docdir} /usr/games ${includedir} \
            ${libdir} ${sbindir} ${datadir} \
            ${datadir}/common-licenses ${datadir}/dict ${infodir} \
            ${mandir} ${datadir}/misc ${localstatedir} \
            ${localstatedir}/backups ${localstatedir}/lib \
-           /sys ${localstatedir}/lib/misc ${localstatedir}/spool \
+           ${localstatedir}/lib/misc ${localstatedir}/spool \
            ${localstatedir}/volatile \
            ${localstatedir}/${@'volatile/' if oe.types.boolean('${VOLATILE_LOG_DIR}') else ''}log \
            /home ${prefix}/src ${localstatedir}/local \
@@ -93,6 +94,9 @@ pkg_preinst_${PN} () {
 }
 
 do_install () {
+	for d in ${dirs555}; do
+		install -m 0555 -d ${D}$d
+	done
 	for d in ${dirs755}; do
 		install -m 0755 -d ${D}$d
 	done
-- 
2.18.0-dev



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 2/3] base-files: use /proc/self/mounts for /etc/mtab
  2018-05-11 20:10 [PATCH 1/3] base-files: change permissions on /sys and /proc Dan McGregor
@ 2018-05-11 20:10 ` Dan McGregor
  2018-05-11 20:10 ` [PATCH 3/3] base-files: make root home mode customisable Dan McGregor
  1 sibling, 0 replies; 3+ messages in thread
From: Dan McGregor @ 2018-05-11 20:10 UTC (permalink / raw)
  To: openembedded-core

From: Dan McGregor <dan.mcgregor@usask.ca>

It should be /proc/self/mounts instead of /proc/mounts. Also switch to
using a relative link in base-files, as seems to be the convention in
other distributions.

Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca>
---
 meta/recipes-core/base-files/base-files_3.0.14.bb             | 2 +-
 .../initrdscripts/files/init-install-efi-testfs.sh            | 2 +-
 meta/recipes-core/initrdscripts/files/init-install-efi.sh     | 4 ++--
 meta/recipes-core/initrdscripts/files/init-install-testfs.sh  | 2 +-
 meta/recipes-core/initrdscripts/files/init-install.sh         | 4 ++--
 meta/recipes-core/initscripts/initscripts-1.0/checkroot.sh    | 2 +-
 6 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/meta/recipes-core/base-files/base-files_3.0.14.bb b/meta/recipes-core/base-files/base-files_3.0.14.bb
index a6963ba24d6..a4c22c51c77 100644
--- a/meta/recipes-core/base-files/base-files_3.0.14.bb
+++ b/meta/recipes-core/base-files/base-files_3.0.14.bb
@@ -132,7 +132,7 @@ do_install () {
 	install -m 0644 ${WORKDIR}/host.conf ${D}${sysconfdir}/host.conf
 	install -m 0644 ${WORKDIR}/motd ${D}${sysconfdir}/motd
 
-	ln -sf /proc/mounts ${D}${sysconfdir}/mtab
+	ln -sf ${@oe.path.relative('${sysconfdir}', '/proc/self/mounts')} ${D}${sysconfdir}/mtab
 }
 
 DISTRO_VERSION[vardepsexclude] += "DATE"
diff --git a/meta/recipes-core/initrdscripts/files/init-install-efi-testfs.sh b/meta/recipes-core/initrdscripts/files/init-install-efi-testfs.sh
index 9c4b263d544..60c290e1052 100644
--- a/meta/recipes-core/initrdscripts/files/init-install-efi-testfs.sh
+++ b/meta/recipes-core/initrdscripts/files/init-install-efi-testfs.sh
@@ -67,7 +67,7 @@ rm -f /etc/udev/scripts/mount*
 umount /dev/${device}* 2> /dev/null || /bin/true
 
 mkdir -p /tmp
-cat /proc/mounts > /etc/mtab
+cat /proc/self/mounts > /etc/mtab
 
 disk_size=$(parted /dev/${device} unit mb print | grep '^Disk .*: .*MB' | cut -d" " -f 3 | sed -e "s/MB//")
 
diff --git a/meta/recipes-core/initrdscripts/files/init-install-efi.sh b/meta/recipes-core/initrdscripts/files/init-install-efi.sh
index 82b0aa819e3..838bc83fdb8 100644
--- a/meta/recipes-core/initrdscripts/files/init-install-efi.sh
+++ b/meta/recipes-core/initrdscripts/files/init-install-efi.sh
@@ -141,8 +141,8 @@ umount ${device}* 2> /dev/null || /bin/true
 mkdir -p /tmp
 
 # Create /etc/mtab if not present
-if [ ! -e /etc/mtab ] && [ -e /proc/mounts ]; then
-    ln -sf /proc/mounts /etc/mtab
+if [ ! -e /etc/mtab ] && [ -e /proc/self/mounts ]; then
+    ln -sf /proc/self/mounts /etc/mtab
 fi
 
 disk_size=$(parted ${device} unit mb print | grep '^Disk .*: .*MB' | cut -d" " -f 3 | sed -e "s/MB//")
diff --git a/meta/recipes-core/initrdscripts/files/init-install-testfs.sh b/meta/recipes-core/initrdscripts/files/init-install-testfs.sh
index ac621605287..c5b435286e7 100644
--- a/meta/recipes-core/initrdscripts/files/init-install-testfs.sh
+++ b/meta/recipes-core/initrdscripts/files/init-install-testfs.sh
@@ -91,7 +91,7 @@ fi
 
 mkdir -p /tmp
 if [ ! -L /etc/mtab ]; then
-	cat /proc/mounts > /etc/mtab
+	cat /proc/self/mounts > /etc/mtab
 fi
 
 disk_size=$(parted /dev/${device} unit mb print | grep Disk | cut -d" " -f 3 | sed -e "s/MB//")
diff --git a/meta/recipes-core/initrdscripts/files/init-install.sh b/meta/recipes-core/initrdscripts/files/init-install.sh
index 28e8f09d19d..e203caa32f1 100644
--- a/meta/recipes-core/initrdscripts/files/init-install.sh
+++ b/meta/recipes-core/initrdscripts/files/init-install.sh
@@ -137,8 +137,8 @@ if [ ! -b /dev/loop0 ] ; then
 fi
 
 mkdir -p /tmp
-if [ ! -L /etc/mtab ] && [ -e /proc/mounts ]; then
-    ln -sf /proc/mounts /etc/mtab
+if [ ! -L /etc/mtab ] && [ -e /proc/self/mounts ]; then
+    ln -sf /proc/self/mounts /etc/mtab
 fi
 
 disk_size=$(parted ${device} unit mb print | grep '^Disk .*: .*MB' | cut -d" " -f 3 | sed -e "s/MB//")
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/checkroot.sh b/meta/recipes-core/initscripts/initscripts-1.0/checkroot.sh
index 02f0351fcb3..db472ac2676 100755
--- a/meta/recipes-core/initscripts/initscripts-1.0/checkroot.sh
+++ b/meta/recipes-core/initscripts/initscripts-1.0/checkroot.sh
@@ -142,7 +142,7 @@ fi
 mount -n -o remount,$rootmode /
 if test "$rootmode" = rw
 then
-	ln -sf /proc/mounts /dev/mtab
+	ln -sf /proc/self/mounts /dev/mtab
 fi
 
 : exit 0
-- 
2.18.0-dev



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 3/3] base-files: make root home mode customisable
  2018-05-11 20:10 [PATCH 1/3] base-files: change permissions on /sys and /proc Dan McGregor
  2018-05-11 20:10 ` [PATCH 2/3] base-files: use /proc/self/mounts for /etc/mtab Dan McGregor
@ 2018-05-11 20:10 ` Dan McGregor
  1 sibling, 0 replies; 3+ messages in thread
From: Dan McGregor @ 2018-05-11 20:10 UTC (permalink / raw)
  To: openembedded-core

From: Dan McGregor <dan.mcgregor@usask.ca>

Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca>
---
 meta/conf/bitbake.conf                            | 1 +
 meta/files/fs-perms-persistent-log.txt            | 4 ++--
 meta/files/fs-perms.txt                           | 4 ++--
 meta/recipes-core/base-files/base-files_3.0.14.bb | 4 +++-
 4 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index a21b7282fbd..cd07b86a99c 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -84,6 +84,7 @@ USRBINPATH_class-nativesdk = "/usr/bin"
 
 # Root home directory
 ROOT_HOME ??= "/home/root"
+ROOT_HOME_MODE ??= "0700"
 
 # If set to boolean true ('yes', 'y', 'true', 't', '1'), /var/log links to /var/volatile/log.
 # If set to boolean false ('no', 'n', 'false', 'f', '0'), /var/log is on persistent storage.
diff --git a/meta/files/fs-perms-persistent-log.txt b/meta/files/fs-perms-persistent-log.txt
index 3a7cf3ab945..e16c4464843 100644
--- a/meta/files/fs-perms-persistent-log.txt
+++ b/meta/files/fs-perms-persistent-log.txt
@@ -59,8 +59,8 @@ ${localstatedir}/local		0755	root	root	false - - -
 /tmp				01777	root	root	false - - -
 ${localstatedir}/volatile/tmp	01777	root	root	false - - -
 
-# Set 0700
-${ROOT_HOME}			0700	root	root	false - - -
+# Set ${ROOT_HOME_MODE}, by default 0700.
+${ROOT_HOME}			${ROOT_HOME_MODE}	root	root	false - - -
 
 # Set 2775-lsb
 ${localstatedir}/mail		02775	root	mail	false - - -
diff --git a/meta/files/fs-perms.txt b/meta/files/fs-perms.txt
index c8c3ac5dbed..ad180399105 100644
--- a/meta/files/fs-perms.txt
+++ b/meta/files/fs-perms.txt
@@ -60,8 +60,8 @@ ${localstatedir}/local		0755	root	root	false - - -
 /tmp				01777	root	root	false - - -
 ${localstatedir}/volatile/tmp	01777	root	root	false - - -
 
-# Set 0700
-${ROOT_HOME}			0700	root	root	false - - -
+# Set ${ROOT_HOME_MODE}, by default 0700.
+${ROOT_HOME}			${ROOT_HOME_MODE}	root	root	false - - -
 
 # Set 2775-lsb
 ${localstatedir}/mail		02775	root	mail	false - - -
diff --git a/meta/recipes-core/base-files/base-files_3.0.14.bb b/meta/recipes-core/base-files/base-files_3.0.14.bb
index a4c22c51c77..6267b649465 100644
--- a/meta/recipes-core/base-files/base-files_3.0.14.bb
+++ b/meta/recipes-core/base-files/base-files_3.0.14.bb
@@ -35,7 +35,7 @@ dirs2775 = ""
 dirs555 = "/sys /proc"
 dirs755 = "/boot /dev ${base_bindir} ${base_sbindir} ${base_libdir} \
            ${sysconfdir} ${sysconfdir}/default \
-           ${sysconfdir}/skel ${nonarch_base_libdir} /mnt ${ROOT_HOME} /run \
+           ${sysconfdir}/skel ${nonarch_base_libdir} /mnt /run \
            ${prefix} ${bindir} ${docdir} /usr/games ${includedir} \
            ${libdir} ${sbindir} ${datadir} \
            ${datadir}/common-licenses ${datadir}/dict ${infodir} \
@@ -110,6 +110,8 @@ do_install () {
 		ln -sf volatile/$d ${D}${localstatedir}/$d
 	done
 
+	install -m ${ROOT_HOME_MODE} -d ${D}${ROOT_HOME}
+
 	ln -snf ../run ${D}${localstatedir}/run
 	ln -snf ../run/lock ${D}${localstatedir}/lock
 
-- 
2.18.0-dev



^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-05-11 20:11 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-05-11 20:10 [PATCH 1/3] base-files: change permissions on /sys and /proc Dan McGregor
2018-05-11 20:10 ` [PATCH 2/3] base-files: use /proc/self/mounts for /etc/mtab Dan McGregor
2018-05-11 20:10 ` [PATCH 3/3] base-files: make root home mode customisable Dan McGregor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox