1SUMMARY = "Example recipe for using inherit useradd" 2DESCRIPTION = "This recipe serves as an example for using features from useradd.bbclass" 3SECTION = "examples" 4LICENSE = "MIT" 5LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" 6 7SRC_URI = "file://file1 \ 8 file://file2 \ 9 file://file3 \ 10 file://file4" 11 12S = "${WORKDIR}/sources" 13UNPACKDIR = "${S}" 14 15PACKAGES =+ "${PN}-user3" 16 17EXCLUDE_FROM_WORLD = "1" 18 19inherit useradd 20 21# You must set USERADD_PACKAGES when you inherit useradd. This 22# lists which output packages will include the user/group 23# creation code. 24USERADD_PACKAGES = "${PN} ${PN}-user3" 25 26# You must also set USERADD_PARAM and/or GROUPADD_PARAM when 27# you inherit useradd. 28 29# USERADD_PARAM specifies command line options to pass to the 30# useradd command. Multiple users can be created by separating 31# the commands with a semicolon. Here we'll create two users, 32# user1 and user2: 33USERADD_PARAM:${PN} = "-u 1200 -d /home/user1 -r -s /bin/bash user1; -u 1201 -d /home/user2 -r -s /bin/bash user2" 34 35# user3 will be managed in the useradd-example-user3 package: 36# As an example, we use the -p option to set password ('user3') for user3 37USERADD_PARAM:${PN}-user3 = "-u 1202 -d /home/user3 -r -s /bin/bash -p '\$6\$XAWr.8nc\$bUE4pYYaVb8n6BbnBitU0zeJMtfhTpFpiOBLL9zRl4e4YQo88UU4r/1kjRzmTimCy.BvDh4xoFwVqcO.pihLa1' user3" 38 39# GROUPADD_PARAM works the same way, which you set to the options 40# you'd normally pass to the groupadd command. This will create 41# groups group1 and group2: 42GROUPADD_PARAM:${PN} = "-g 880 group1; -g 890 group2" 43 44# Likewise, we'll manage group3 in the useradd-example-user3 package: 45GROUPADD_PARAM:${PN}-user3 = "-g 900 group3" 46 47do_install () { 48 install -d -m 755 ${D}${datadir}/user1 49 install -d -m 755 ${D}${datadir}/user2 50 install -d -m 755 ${D}${datadir}/user3 51 52 install -p -m 644 file1 ${D}${datadir}/user1/ 53 install -p -m 644 file2 ${D}${datadir}/user1/ 54 55 install -p -m 644 file2 ${D}${datadir}/user2/ 56 install -p -m 644 file3 ${D}${datadir}/user2/ 57 58 install -p -m 644 file3 ${D}${datadir}/user3/ 59 install -p -m 644 file4 ${D}${datadir}/user3/ 60 61 # The new users and groups are created before the do_install 62 # step, so you are now free to make use of them: 63 chown -R user1 ${D}${datadir}/user1 64 chown -R user2 ${D}${datadir}/user2 65 chown -R user3 ${D}${datadir}/user3 66 67 chgrp -R group1 ${D}${datadir}/user1 68 chgrp -R group2 ${D}${datadir}/user2 69 chgrp -R group3 ${D}${datadir}/user3 70} 71 72FILES:${PN} = "${datadir}/user1/* ${datadir}/user2/*" 73FILES:${PN}-user3 = "${datadir}/user3/*" 74 75# Prevents do_package failures with: 76# debugsources.list: No such file or directory: 77INHIBIT_PACKAGE_DEBUG_SPLIT = "1" 78