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