OS : Ubuntu 12.10 64bit
dhcp server : isc-dhcp-server 4.2.4
구글링중
/etc/dhcp/dhcpd.conf 에 on commit 부분이 외부명령 실행
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.2;
on commit {
set clip = binary-to-ascii(10, 8, ".", leased-address);
set clhw = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));
execute("/usr/local/sbin/dhcpevent", "commit", clip, clhw, host-decl-name);
}
...
option routers 192.168.1.2;
on commit {
set clip = binary-to-ascii(10, 8, ".", leased-address);
set clhw = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));
execute("/usr/local/sbin/dhcpevent", "commit", clip, clhw, host-decl-name);
}
...
외부실행 스크립트 예제를 보고 적용 해보려는데, 권한 에러 나고 실행 안되네요,
chmod , chown, chgrp 변경도 해봤음
에러 메시지 ( 아래는 tail -f /var/log/syslog 의 메시지 )
May 21 09:58:34 iscsi2 dhcpd: Unable to execute /usr/local/sbin/dhcpevent: Permission denied
May 21 09:58:34 iscsi2 dhcpd: execute: /usr/local/sbin/dhcpevent exit status 32512
May 21 09:58:34 iscsi2 dhcpd: execute: /usr/local/sbin/dhcpevent exit status 32512
May 21 09:58:34 iscsi2 kernel: [449057.172797] type=1400 audit(1369097914.551:67): apparmor="DENIED" operation="exec" parent=27235 profile="/usr/sbin/dhcpd" name="/usr/local/sbin/dhcpevent" pid=27240 comm="dhcpd" requested_mask="x" denied_mask="x" fsuid=106 ouid=106
dhcpevent 스크립트의 내용은 실행 되는지 보려는 데모 스크립트
#!/bin/bash
date=$(date)
echo $date >> /tmp/mylog
echo $0 >> /tmp/mylog
echo $1 >> /tmp/mylog
echo $2 >> /tmp/mylog
date=$(date)
echo $date >> /tmp/mylog
echo $0 >> /tmp/mylog
echo $1 >> /tmp/mylog
echo $2 >> /tmp/mylog
sudo service isc-dhcp-server restart
service isc-dhcp-server restart
¶È °°³×¿ä, ±¸±Û¸µ ´õ ÇغÁ¾ß °Ú½À´Ï´Ù.
http://www.cyberciti.biz/faq/howto-turn-off-selinux/
selinux ´Â È°¼ºÈ ¾ÈµÇ¾î Àֳ׿ä.
apparmor policy ¿Í ¿¬°üÀÌ ÀÖ´Â°Í °°¾Æ ±¸±Û¸µ ÁßÀÔ´Ï´Ù.
½ºÅ©¸³Æ® ½ÇÇà ¼º°ø Çß½À´Ï´Ù.
apparmor policy °ü·Ã ¹®Á¦°¡ ¸Â¾Ò³×¿ä.
vi /etc/apparmor.d/usr.sbin.dhcpd Çؼ
/usr/local/sbin/dhcpevent Uxr, Ãß°¡ ÇØÁÖ°í
/etc/init.d/apparmor reload
service isc-dhcp-server restart
dhcp ¼¹ö¿¡ client ÀÇ Á¢¼Ó ·Î±× ±â·Ï µË´Ï´Ù.
/tmp/mylog »ý¼º µÇ¾î ÀÖ°í ±â·Ï ³²¾Æ Àֳ׿ä
dhcp ¼¹ö¿Í tftp ¼¹ö °°ÀÌ ±¸µ¿ ÁßÀε¥,
·Î±×°¡ 2¹ø ³²´Â±º¿ä,
if¹® ¸¸µé¾î¼ 1¹ø¸¸ ±â·ÏÇÏ°Ô ¸¸µé¸é ³¡À̳׿ä,
´ä±Û ´Þ¾ÆÁÖ½ÅºÐµé °¨»çÇÕ´Ï´Ù.