Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(live): Set the root password from ISO metadata #1290

Merged
merged 2 commits into from
Jun 6, 2024

Conversation

lslezak
Copy link
Contributor

@lslezak lslezak commented Jun 5, 2024

Problem

Avoid using the well known default root password in the Live medium.

Solution

Allow modifying the default root password in the ISO medium by users. A new default root password can be embedded into the ISO file metadata using this command:

tagmedia --add-tag "agama_password=$((openssl passwd -6) | base64 -w 0)" <agama.iso>

This will embed a SHA512 hashed password into the ISO application area. This area is already used for storing the medium checksum, if you run the checkmedia command to verify the medium integrity then the expected checksum is read from this metadata. You can check its content by running tagmedia <agama.iso>.

The ISO application area is pretty small (512 bytes), but there is still enough space to embed a hashed root password. Unfortunately it needs to be Base64 encoded otherwise tagmedia then reports an error about unsupported format.

If the root password is set by other options on the boot command line (see #1288) then they will override this ISO file default.

The advantage of this solution is that it does not need any special tweaks and you do not root permissions to modify the ISO image. This solution is suitable for mass deployment using the same physical medium. You can modify the ISO, dump it on an USB stick and then install several machines using your specific root password.

Testing

TODO

Later:

  • Create documentation
  • Update changes

The default root password can be embedded into the ISO file metadata
using command:

    tagmedia --add-tag "agama_password=$((openssl passwd -6) | base64 -w 0)" agama.iso

If the root password is set by other options on the boot command line
then they will override this ISO file default.
Copy link
Contributor

@imobachgs imobachgs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. I actually checked that tagmedia (from the checkmedia package) is included in the Live image. Thanks!

@lslezak lslezak merged commit 4b20db3 into master Jun 6, 2024
@lslezak lslezak deleted the live_root_password2 branch June 6, 2024 08:59
@imobachgs imobachgs mentioned this pull request Jun 27, 2024
imobachgs added a commit that referenced this pull request Jun 27, 2024
Prepare for releasing Agama 9. It includes the following pull requests:

- #1101
- #1202
- #1228
- #1231
- #1236
- #1238
- #1239
- #1240
- #1242
- #1243
- #1244
- #1245
- #1246
- #1247
- #1248
- #1249
- #1250
- #1251
- #1252
- #1253
- #1254
- #1255
- #1256
- #1257
- #1258
- #1259
- #1260
- #1261
- #1264
- #1265
- #1267
- #1268
- #1269
- #1270
- #1271
- #1272
- #1273
- #1274
- #1279
- #1280
- #1284
- #1285
- #1286
- #1287
- #1288
- #1289
- #1290
- #1291
- #1292
- #1293
- #1294
- #1295
- #1296
- #1298
- #1299
- #1300
- #1301
- #1302
- #1303
- #1304
- #1305
- #1306
- #1307
- #1308
- #1309
- #1310
- #1311
- #1312
- #1313
- #1314
- #1315
- #1316
- #1317
- #1318
- #1319
- #1320
- #1321
- #1322
- #1323
- #1324
- #1325
- #1326
- #1328
- #1329
- #1331
- #1332
- #1334
- #1338
- #1340
- #1341
- #1342
- #1343
- #1344
- #1345
- #1348
- #1349
- #1351
- #1352
- #1353
- #1354
- #1355
- #1356
- #1357
- #1358
- #1359
- #1360
- #1361
- #1362
- #1363
- #1365
- #1366
- #1367
- #1368
- #1371
- #1372
- #1374
- #1375
- #1376
- #1379
- #1380
- #1381
- #1383
- #1384
- #1385
- #1386
- #1387
- #1388
- #1389
- #1391
- #1392
- #1394
- #1395
- #1397
- #1398
- #1399
- #1400
- #1403
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants