aboutsummaryrefslogtreecommitdiffstats
path: root/meta-skeleton/recipes-skeleton/useradd/useradd-example.bb
blob: 3f4c42d7145d30fee85ca78cd51fc07c0cb8c619 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
SUMMARY = "Example recipe for using inherit useradd"
DESCRIPTION = "This recipe serves as an example for using features from useradd.bbclass"
SECTION = "examples"
PR = "r1"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"

SRC_URI = "file://file1 \
           file://file2 \
           file://file3 \
           file://file4"

S = "${WORKDIR}"

PACKAGES =+ "${PN}-user3"

EXCLUDE_FROM_WORLD = "1"

inherit useradd

# You must set USERADD_PACKAGES when you inherit useradd. This
# lists which output packages will include the user/group
# creation code.
USERADD_PACKAGES = "${PN} ${PN}-user3"

# You must also set USERADD_PARAM and/or GROUPADD_PARAM when
# you inherit useradd.

# USERADD_PARAM specifies command line options to pass to the
# useradd command. Multiple users can be created by separating
# the commands with a semicolon. Here we'll create two users,
# user1 and user2:
USERADD_PARAM:${PN} = "-u 1200 -d /home/user1 -r -s /bin/bash user1; -u 1201 -d /home/user2 -r -s /bin/bash user2"

# user3 will be managed in the useradd-example-user3 pacakge:
# As an example, we use the -P option to set clear text password for user3
USERADD_PARAM:${PN}-user3 = "-u 1202 -d /home/user3 -r -s /bin/bash -P 'user3' user3"

# GROUPADD_PARAM works the same way, which you set to the options
# you'd normally pass to the groupadd command. This will create
# groups group1 and group2:
GROUPADD_PARAM:${PN} = "-g 880 group1; -g 890 group2"

# Likewise, we'll manage group3 in the useradd-example-user3 package:
GROUPADD_PARAM:${PN}-user3 = "-g 900 group3"

do_install () {
	install -d -m 755 ${D}${datadir}/user1
	install -d -m 755 ${D}${datadir}/user2
	install -d -m 755 ${D}${datadir}/user3

	install -p -m 644 file1 ${D}${datadir}/user1/
	install -p -m 644 file2 ${D}${datadir}/user1/

	install -p -m 644 file2 ${D}${datadir}/user2/
	install -p -m 644 file3 ${D}${datadir}/user2/

	install -p -m 644 file3 ${D}${datadir}/user3/
	install -p -m 644 file4 ${D}${datadir}/user3/

	# The new users and groups are created before the do_install
	# step, so you are now free to make use of them:
	chown -R user1 ${D}${datadir}/user1
	chown -R user2 ${D}${datadir}/user2
	chown -R user3 ${D}${datadir}/user3

	chgrp -R group1 ${D}${datadir}/user1
	chgrp -R group2 ${D}${datadir}/user2
	chgrp -R group3 ${D}${datadir}/user3
}

FILES:${PN} = "${datadir}/user1/* ${datadir}/user2/*"
FILES:${PN}-user3 = "${datadir}/user3/*"

# Prevents do_package failures with:
# debugsources.list: No such file or directory:
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"