xref: /openbmc/openbmc/poky/meta-skeleton/recipes-skeleton/useradd/useradd-example.bb (revision edff49234e31f23dc79f823473c9e286a21596c1)
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