Am 19.07.2018 um 10:57 schrieb Hugo:
Hallo, Am Mittwoch, 18. Juli 2018, 16:15:19 CEST schrieb Kasimir Müller:
Hi,
dnsmasq Version ist 2.78-lp150.1.11 aus dem openSUSE-Leap 15.0 Repo.
nach dem Update auf Leap 15.0 sehe ich folgendes Problem:
failed to execute /usr/local/bin/logdnsmasq.sh: Permission denied
in dnsmasq.conf :
dhcp-script=/usr/local/bin/logdnsmasq.sh
Das Script ist ein einfaches sh-Skript und schreibt eine log-Datei
#!/bin/sh LOG="/var/log/dnsmasq.log" DD=`date +"%Y-%m-%d %H:%M:%S"` ACTION="$1" MAC="$2" IP="$3" HOST="$4" if [ "$HOST" = "" ]; then Host='unknown' fi
echo "$DD $ACTION $MAC $IP $HOST">>$LOG exit 0
Das lief unter 42.3 problemlos. dnsmasq wird mit systemd gestartet und läuft als user "dnsmasq", der hat keine Gruppe und als shell /bin/null
Die Arbeit macht dnsmasq, nur das Aufrufen des externen Programms scheitert. Die Berechtigung für das Log-File habe ich versuchsweise auf 777 gesetzt ohne Effekt, das script hat 755.
Hat jemand eine Erklärung und/oder Abhilfe ? !.) Skript lief NIE richtig. 2.) Vielleicht bricht es irgendwo ab wegen falscher Umgebung. Kann man verbose/debug einschalten?
Mein test/dein skript
. diff foodns foodns-orig . 1,2c1,2 . < #!/bin/sh -vx . < LOG="/tmp/dnsmasq.log" . ---
#!/bin/sh . > LOG="/var/log/dnsmasq.log" . 8,9c8,9. < if [ -z ${HOST} ]; then . < HOST='unknown' . --- . > if [ "$HOST" = "" ]; then . > Host='unknown'
Gruß Hugo Mahr
Danke, aber das Script alleine funktioniert, wenngleich deins ein bisschen schöner ist.. Ich bin jetzt sicher, ass apparmor der "culprit" ist, weil ich unter 42.3 es ausgeschaltet hatte wegen ähnlicher Effekte und nach dem upgrade auf 15.0 war es wieder da. Grüsse, K. Müller