]> code.ossystems Code Review - openembedded-core.git/commitdiff
dhcpd: create dhcpd user for dhcp dameon
authorAlexandru Moise <alexandru.moise@windriver.com>
Fri, 18 Mar 2016 12:21:25 +0000 (14:21 +0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 20 Mar 2016 22:57:59 +0000 (22:57 +0000)
This patch enables the functionality for dhcpd service to be started
with dhcp uid and gid.

Test steps:

Step 1: Assign ip to interface
ifconfig eth0 192.168.1.1

Step 2: Edit /etc/dhcp/dhcpd.conf:
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
subnet 192.168.1.0 netmask 255.255.255.0 {
        option broadcast-address 192.168.1.255;
        range 192.168.1.88 192.168.1.88;
        option routers 192.168.1.0;
}

Step 3: Edit /etc/default/dhcp-server:
INTERFACES="eth0"

Step 4: Check uid and gid of running dhcpd process
$ ps -eo user:19,group:19,cmd | grep dhcpd
dhcp        dhcp        /usr/sbin/dhcpd eth0 -user dhcp -group dhcp

Signed-off-by: Alexandru Moise <alexandru.moise@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
meta/recipes-connectivity/dhcp/dhcp.inc
meta/recipes-connectivity/dhcp/files/init-server

index 9c4233b19d67126fa37dc640f21a2beb585ad1fa..5703f1e06dda2a8d6ad8abdcd18c391159efc44b 100644 (file)
@@ -24,7 +24,10 @@ SRC_URI = "ftp://ftp.isc.org/isc/dhcp/${PV}/dhcp-${PV}.tar.gz \
 UPSTREAM_CHECK_URI = "ftp://ftp.isc.org/isc/dhcp/"
 UPSTREAM_CHECK_REGEX = "(?P<pver>\d+\.\d+\.(\d+?))/"
 
-inherit autotools systemd
+inherit autotools systemd useradd
+
+USERADD_PACKAGES = "${PN}-server"
+USERADD_PARAM_${PN}-server = "--system --no-create-home --home-dir /var/run/${PN} --shell /bin/false --user-group ${PN}"
 
 SYSTEMD_PACKAGES = "${PN}-server ${PN}-relay"
 SYSTEMD_SERVICE_${PN}-server = "dhcpd.service dhcpd6.service"
@@ -39,6 +42,7 @@ EXTRA_OECONF = "--with-srv-lease-file=${localstatedir}/lib/dhcp/dhcpd.leases \
                 --with-cli-lease-file=${localstatedir}/lib/dhcp/dhclient.leases \
                 --with-cli6-lease-file=${localstatedir}/lib/dhcp/dhclient6.leases \
                 --with-libbind=${STAGING_LIBDIR}/ \
+               --enable-paranoia \
                "
 
 do_install_append () {
index 34c20852b95e94fc9bf4c44c4af0cfa79f1c55e6..5e693adf78559215654fd923c7bfcc8332d9dc4f 100644 (file)
@@ -20,7 +20,7 @@ case "$1" in
                echo -n "Starting DHCP server: "
                test -d /var/lib/dhcp/ || mkdir -p /var/lib/dhcp/
                test -f /var/lib/dhcp/dhcpd.leases || touch /var/lib/dhcp/dhcpd.leases  
-               start-stop-daemon -S -x /usr/sbin/dhcpd -- -q $INTERFACES
+               start-stop-daemon -S -x /usr/sbin/dhcpd -- -q $INTERFACES -user dhcp -group dhcp
                echo "."
                ;;
        stop)