Commit 41be52e8 by Felix Abecassis

hooks: fix dhclient hook when an AppArmor profile is active

parent 4c6fb19b
...@@ -26,6 +26,15 @@ usage() { ...@@ -26,6 +26,15 @@ usage() {
echo "Usage: ${0##*/} <name> lxc {start-host|stop}" echo "Usage: ${0##*/} <name> lxc {start-host|stop}"
} }
# Wrap the dhclient command with "aa-exec -p unconfined" if AppArmor is enabled.
dhclient() {
bin="/sbin/dhclient"
if [ -d "/sys/kernel/security/apparmor" ] && which aa-exec >/dev/null; then
bin="aa-exec -p unconfined ${bin}"
fi
echo $bin
}
dhclient_start() { dhclient_start() {
ns_args=("--uts" "--net") ns_args=("--uts" "--net")
if [ -z "$(readlink /proc/${LXC_PID}/ns/user /proc/self/ns/user | uniq -d)" ]; then if [ -z "$(readlink /proc/${LXC_PID}/ns/user /proc/self/ns/user | uniq -d)" ]; then
...@@ -39,7 +48,7 @@ dhclient_start() { ...@@ -39,7 +48,7 @@ dhclient_start() {
else else
echo "INFO: Starting DHCP client and acquiring a lease..." >> "${debugfile}" echo "INFO: Starting DHCP client and acquiring a lease..." >> "${debugfile}"
nsenter ${ns_args[@]} --target "${LXC_PID}" -- \ nsenter ${ns_args[@]} --target "${LXC_PID}" -- \
/sbin/dhclient -1 ${conffile_arg} -pf "${pidfile}" -lf "${leasefile}" -e "ROOTFS=${rootfs_path}" -sf "${LXC_DHCP_SCRIPT}" -v >> "${debugfile}" 2>&1 $(dhclient) -1 ${conffile_arg} -pf "${pidfile}" -lf "${leasefile}" -e "ROOTFS=${rootfs_path}" -sf "${LXC_DHCP_SCRIPT}" -v >> "${debugfile}" 2>&1
fi fi
} }
...@@ -63,7 +72,7 @@ dhclient_stop() { ...@@ -63,7 +72,7 @@ dhclient_stop() {
if [ -e "${pidfile}" ]; then if [ -e "${pidfile}" ]; then
echo "INFO: Stopping DHCP client and releasing leases..." >> "${debugfile}" echo "INFO: Stopping DHCP client and releasing leases..." >> "${debugfile}"
nsenter ${ns_args[@]} -- \ nsenter ${ns_args[@]} -- \
/sbin/dhclient -r ${conffile_arg} -pf "${pidfile}" -lf "${leasefile}" -e "ROOTFS=${rootfs_path}" -sf "${LXC_DHCP_SCRIPT}" -v >> "${debugfile}" 2>&1 $(dhclient) -r ${conffile_arg} -pf "${pidfile}" -lf "${leasefile}" -e "ROOTFS=${rootfs_path}" -sf "${LXC_DHCP_SCRIPT}" -v >> "${debugfile}" 2>&1
else else
echo "WARN: DHCP client is not running, skipping stop hook." >> "${debugfile}" echo "WARN: DHCP client is not running, skipping stop hook." >> "${debugfile}"
fi fi
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment