Skip to contentSkip to conversation

Setting root password

DISCUSSION Jack Mitchell 3 participants 3 messages Oct 11, 2013 – Oct 12, 2013

lore
Share & tools
lore
#0 lore raw

What is the best way to set the root password for an image during build time?

I have come across this snippet:

ROOTFS_POSTPROCESS_COMMAND += " \
        sed 's%^root:[^:]*:%root:${PASSWD}:%' \
        < ${IMAGE_ROOTFS}/etc/shadow \
        > ${IMAGE_ROOTFS}/etc/shadow.new;\
        mv ${IMAGE_ROOTFS}/etc/shadow.new ${IMAGE_ROOTFS}/etc/shadow ;"

but it feels a bit hacky... is there no defined way to do this cleanly?

Cheers,
Jack.

#1 lore raw

Op 11 okt. 2013, om 16:35 heeft Jack Mitchell <[email protected]> het volgende geschreven:

Quoted 5 lines

What is the best way to set the root password for an image during build time?

I have come across this snippet:

Quoted 7 lines
ROOTFS_POSTPROCESS_COMMAND += " \
       sed 's%^root:[^:]*:%root:${PASSWD}:%' \
       < ${IMAGE_ROOTFS}/etc/shadow \
Quoted 1 line

${IMAGE_ROOTFS}/etc/shadow.new;\

       mv ${IMAGE_ROOTFS}/etc/shadow.new ${IMAGE_ROOTFS}/etc/shadow ;"

but it feels a bit hacky...

indeed, gnu sed has had a -i option for some years now, no needs to that intermediate file.

#2 lore raw
In reply to Jack Mitchell
Quoted 11 lines · Jack Mitchell

What is the best way to set the root password for an image during build time?

I have come across this snippet:

ROOTFS_POSTPROCESS_COMMAND += " \
         sed 's%^root:[^:]*:%root:${PASSWD}:%' \
         < ${IMAGE_ROOTFS}/etc/shadow \
         > ${IMAGE_ROOTFS}/etc/shadow.new;\
         mv ${IMAGE_ROOTFS}/etc/shadow.new ${IMAGE_ROOTFS}/etc/shadow ;"
Quoted 10 lines

but it feels a bit hacky... is there no defined way to do this cleanly?

Cheers,
Jack.
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

What about using EXTRA_USERS_PARAMS?

E.g.
1. Get the encrypted password.
(One way to get the encrypted password is using openssl, of course you can use other methods.) openssl passwd -1 root
$1$QauDU/Ig$KEeg.OaCLFkNwSXW4xYRu1

2. Add to local.conf the following lines. Note the '$' sign should be escaped.

INHERIT += "extrausers"
EXTRA_USERS_PARAMS = "usermod -p '\$1\$QauDU/Ig\$KEeg.OaCLFkNwSXW4xYRu1' root;"

Best Regards,
Chen Qi