How to set root password on Yocto / Poky image?
Asked Answered
A

6

13

I am building an image with Yocto/Poky release Daisy 1.6.3.
What is the correct way or config file where to set the root password? The default password is empty and I can't find a place where to specify it.

Aeolis answered 28/8, 2015 at 15:5 Comment(1)
Anyone care to explain the downvotes 2 years after the question was asked?Aeolis
J
14

Here is what you have to do in your recipe.

inherit extrausers
EXTRA_USERS_PARAMS = "usermod -P p@ssw0rd root;"

where p@ssw0rd is the password you want root user to have.

This link may help you.

As "debug-tweaks"'s goal is to set root's password empty, you must remove it from your EXTRA_IMAGE_FEATURES.

Jitterbug answered 28/8, 2015 at 18:36 Comment(1)
I realize this is a few years old, but it's important to point out that this class and variable are intended at the image level recipe, not a package, etc. (rocko)Idealistic
S
8

As of Poky 4.0.7, none of the answers here work because the -P clear text password flag is no longer supported as per this commit. You will get an error message like usermod: prefix must be an absolute path. Now, only the -p encrypted password flag is supported. To set your root password to password add below to your conf/local.conf file:

INHERIT += "extrausers"
EXTRA_USERS_PARAMS = "usermod -p '\$1\$EZkCDWad\$eEMhB36cFCOeRGXvtP3t81' root;"

you can generate your own password string with openssl passwd -1 but note that $ needs to be escaped with \ as shown in the example.

Stibine answered 7/2, 2023 at 0:50 Comment(1)
I'm using SHA512 to hash the password but not working. my question is here unix.stackexchange.com/questions/754866/… any helpIiette
T
5

As of Poky 2.1.2; to set the root password the following instructions need to be added to local.conf:

INHERIT += "extrausers"
EXTRA_USERS_PARAMS = "usermod -P p@ssw0rd root;"

No need to remove debug-tweaks

Thinker answered 1/3, 2017 at 15:26 Comment(0)
S
4

In your image recipe:

  1. Set a plain password:
inherit extrausers  
EXTRA_USERS_PARAMS = "usermod -P MyPass root;"
  1. Or set a hashed password (notice that insert \ before dollar signs):
inherit extrausers  
EXTRA_USERS_PARAMS = "usermod -p '\$6\$3trMG9KVzGF3942L\$pHeO/r4/RIEFU1tZzoPXYlJLHNvmeJFZdIwQCcTrZFq5kpIgTxoEOJBO5iYEvLzeMjhZRtXhTPbOD4RFAelwk0' root;"

Note: for hashing your plain password, use can use openssl:

$ openssl passwd -6
Password:
Verifying - Password:
$6$3trMG9KVzGF3942L$pHeO/r4/RIEFU1tZzoPXYlJLHNvmeJFZdIwQCcTrZFq5kpIgTxoEOJBO5iYEvLzeMjhZRtXhTPbOD4RFAelwk0
Schlep answered 14/2, 2022 at 13:42 Comment(0)
G
3

Here is method I used which does not use the -P switch on the usermod command. You must use the following form:

EXTRA_USERS_PARAMS = "usermod -p $(openssl passwd p@ssw0rd) root;"

The usermod -P command does not work in my version of linux.

See How do i change the root password in the Yocto dora bitbake system?

Golgi answered 17/12, 2017 at 4:19 Comment(0)
D
1

Add the below linw at your conf/local.conf file

INHERIT += "extrausers"
EXTRA_USERS_PARAMS = "usermod -P urpassword root;"
Dextrality answered 18/12, 2017 at 7:0 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.