Я создал DHCP-сервер на ubuntu 18:04, используя isc-dhcp-server, который обычно работает . Я хочу запустить сценарий, расположенный в / user / sbin, но получаю сообщение об отказе в разрешении со статусом выхода 32512. Возможно, это ошибка разрешения, но я не эксперт. Это мой DHCP-сервер, расположенный в:
/etc/dhcp/dhcpd.conf
default-lease-time 86400;
max-lease-time 7200;
ignore client-updates;
authoritative;
use-host-decl-names on;
log-facility local7;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.101 192.168.1.150;
option subnet-mask 255.255.255.0;
option routers 192.168.1.3;
option domain-name-servers 192.168.1.100;
ddns-rev-domainname "in-addr.arpa.";
}
on commit {
set ClientIP = binary-to-ascii(10, 8, ".", leased-address);
set ClientMac = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));
log(concat("Commit: IP: ", ClientIP, " Mac: ", ClientMac));
execute("/usr/sbin/update_DB.sh", "commit", ClientIP, ClientMac);
}
/ var / log / syslog
Apr 8 14:28:05 dhcp dhcpd[1223]: Commit: IP: 192.168.1.102 Mac: XXX
Apr 8 14:28:05 dhcp dhcpd[1223]: execute_statement argv[0] = /usr/sbin/update_DB.sh
Apr 8 14:28:05 dhcp dhcpd[1223]: execute_statement argv[1] = commit
Apr 8 14:28:05 dhcp dhcpd[1223]: execute_statement argv[2] = 192.168.1.102
Apr 8 14:28:05 dhcp dhcpd[1223]: execute_statement argv[3] = XXX
Apr 8 14:28:05 dhcp dhcpd[1227]: Unable to execute /usr/sbin/update_DB.sh: Permission denied
Apr 8 14:28:05 dhcp dhcpd[1223]: execute: /usr/sbin/update_DB.sh exit status 32512
/usr/sbin/update_DB.sh
#!/bin/bash
echo "Hello world!"
кто-нибудь знает, как это решить, пожалуйста ? Спасибо!
Решено!
Выполняется: dmesg | grep DHCP
Я заметил такое сообщение:
apparmor="DENIED" operation="exec" namespace="root//lxd-dhcp_" profile="/usr/sbin/dhcpd" name="/var/lib/dhcp/ bin/myscript.sh" pid=9646 comm="dhcpd" required_mask="x" deny_mask="x" fsuid=165647 ouid=165536
Итак, проблема в apparmor, который блокирует мой скрипт.
Я изменил /etc/apparmor.d/usr.sbin.dhcpd
, разрешив выполнение /usr/sbin/update_DB.sh
путем добавления /usr/sbin/update_DB. sh r
в файл.