summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorJoakim Tjernlund <joakim.tjernlund@infinera.com>2023-11-14 14:28:42 +0100
committerSteve Sakoman <steve@sakoman.com>2024-01-04 04:09:43 -1000
commitd2d9fd706364e9901a5575ffa0e7579383cff01e (patch)
tree40170529380fe0b0742e2f3eb7ec5438b593ad66 /meta
parent40a11d6e2a5cea09f116ab7520429140067e8229 (diff)
downloadpoky-d2d9fd706364e9901a5575ffa0e7579383cff01e.tar.gz
sed -i destroys symlinks
If /etc/passwd is a symlink, sed -i on same file will replace the symlink with a new file. Prevent that by adding --follow-symlinks option to sed (From OE-Core rev: 7b4343a30a02d8f8664ac4c4bc09e5acfb4fa60e) Signed-off-by: Joakim Tjernlund <joakim.tjernlund@infinera.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> (cherry picked from commit 6ec004b2e7b4342465af8e5e6cc66041834821a0) Signed-off-by: Steve Sakoman <steve@sakoman.com>
Diffstat (limited to 'meta')
-rw-r--r--meta/classes-recipe/rootfs-postcommands.bbclass4
-rw-r--r--meta/classes/useradd_base.bbclass2
2 files changed, 3 insertions, 3 deletions
diff --git a/meta/classes-recipe/rootfs-postcommands.bbclass b/meta/classes-recipe/rootfs-postcommands.bbclass
index 06388b72fb..29ee74932a 100644
--- a/meta/classes-recipe/rootfs-postcommands.bbclass
+++ b/meta/classes-recipe/rootfs-postcommands.bbclass
@@ -241,10 +241,10 @@ read_only_rootfs_hook () {
241# 241#
242zap_empty_root_password () { 242zap_empty_root_password () {
243 if [ -e ${IMAGE_ROOTFS}/etc/shadow ]; then 243 if [ -e ${IMAGE_ROOTFS}/etc/shadow ]; then
244 sed -i 's%^root::%root:*:%' ${IMAGE_ROOTFS}/etc/shadow 244 sed --follow-symlinks -i 's%^root::%root:*:%' ${IMAGE_ROOTFS}/etc/shadow
245 fi 245 fi
246 if [ -e ${IMAGE_ROOTFS}/etc/passwd ]; then 246 if [ -e ${IMAGE_ROOTFS}/etc/passwd ]; then
247 sed -i 's%^root::%root:*:%' ${IMAGE_ROOTFS}/etc/passwd 247 sed --follow-symlinks -i 's%^root::%root:*:%' ${IMAGE_ROOTFS}/etc/passwd
248 fi 248 fi
249} 249}
250 250
diff --git a/meta/classes/useradd_base.bbclass b/meta/classes/useradd_base.bbclass
index 863cb7b76c..f1a7a9695d 100644
--- a/meta/classes/useradd_base.bbclass
+++ b/meta/classes/useradd_base.bbclass
@@ -160,7 +160,7 @@ perform_passwd_expire () {
160 local username=`echo "$opts" | awk '{ print $NF }'` 160 local username=`echo "$opts" | awk '{ print $NF }'`
161 local user_exists="`grep "^$username:" $rootdir/etc/passwd || true`" 161 local user_exists="`grep "^$username:" $rootdir/etc/passwd || true`"
162 if test "x$user_exists" != "x"; then 162 if test "x$user_exists" != "x"; then
163 eval flock -x $rootdir${sysconfdir} -c \"$PSEUDO sed -i \''s/^\('$username':[^:]*\):[^:]*:/\1:0:/'\' $rootdir/etc/shadow \" || true 163 eval flock -x $rootdir${sysconfdir} -c \"$PSEUDO sed -follow-symlinks -i \''s/^\('$username':[^:]*\):[^:]*:/\1:0:/'\' $rootdir/etc/shadow \" || true
164 local passwd_lastchanged="`grep "^$username:" $rootdir/etc/shadow | cut -d: -f3`" 164 local passwd_lastchanged="`grep "^$username:" $rootdir/etc/shadow | cut -d: -f3`"
165 if test "x$passwd_lastchanged" != "x0"; then 165 if test "x$passwd_lastchanged" != "x0"; then
166 bbfatal "${PN}: passwd --expire operation did not succeed." 166 bbfatal "${PN}: passwd --expire operation did not succeed."