Zabbix läuft nicht mehr auf OS 6

Ich habe das etwas anders gelöst, wir müssen sowohl den geringen Platz als auch die eingeschränkte "Beschreibbarkeit" des Filesystems bedenken.
Zum einen ist nur sudo selbst in dem Paket (kein visudo und sudoreplay), zum andern wird auf "/etc/sudoers.d/..." verzichtet. Es gibt nur eine "sudoers" Datei, die von einer per Webgui beschreibbaren Datei verlinkt wird. Einfach in der GUI die oben genannten Dinge in diese Datei, "übernehmen" und sudo funktioniert wie gewünscht ;-)
 
visudo ist gar nicht nötig, man kann das mit vi gut machen (abschliessen mit :wq!)

Was wäre mit ein /etc/sudoers editierbar in Freetz WebIF mit schon (als Vorbild)
Code:
## Read drop-in files from /etc/sudoers.d
## (the '#' here does not indicate a comment)
#includedir /etc/sudoers.d

drin und ein folder /etc/sudoers.d hart drin..
Jeder die dann etwas hinzufugen will kann ein Datei im /etc/sudoers.d/ setzen.
Ich kann mit mein extra entry die Datei /etc/sudoers.d/zabbix drin kriegen. Ändern kann man dieser nicht hinterher, aber mann kan etwas im /etc/sudoers kriegen.

Vielleicht ist ein im WebIF editierbare /etc/sudoers nicht nötig, aber dieses Verzeichnis schon drin ist am besten zum start....
 
So ist das doch (fast) realisiert: Sudo ist mit dem sudoers file "/mod/etc/sudoers" übersetzt (das ist "beschreibbar"). Das sudo Paket führt die Datei "/tmp/flash/sudo/sudoers" als in der Freetz-GUI editierbare Datei ein, auf die beim Starten /mod/etc/sudoers verlinkt wird. Es gibt ja, wenn ich das richtig verstanden habe, keinen (inhaltlichen) Unterschied zu den Dateien. Ich kann genau diese Einträge auch direkt im sudoers File machen, da sind zwei Files m.E. überflüssig.
Probiere es einfach mal, bei mir hat es genau so geklappt: User zabbix angelegt und die Einträge in der WebGUI in das sudoers File vorgenommen, als zabbix angemeldet und "ping" geht nicht, "sudo ping" schon :)
 
Ich denke es ist eigentlich nicht richtig, aber ich teste das normalerweise so:
Code:
# sudo -u zabbix sudo ping -c2 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: seq=0 ttl=64 time=0.473 ms
64 bytes from 127.0.0.1: seq=1 ttl=64 time=0.388 ms

--- 127.0.0.1 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.388/0.430/0.473 ms

Jetzt bekomme ich:
Code:
# sudo -u zabbix sudo ping -c2 127.0.0.1
Sorry, sudo has been configured to not allow root to run it.

Was ist Weisheit?

Es ist naturlich " --disable-root-sudo \"
Warum ist diese beschränkung da? Weisst du dass?

freetz@freetz:~/trunk$ diff -d make/sudo ~/sudo.old
Code:
diff -d make/sudo/Config.in /home/freetz/sudo.old/Config.in
2c2
<       bool "sudo 1.7.10 (binary only)"
---
>       bool "sudo 1.7.4p4 (binaries only)"
Only in /home/freetz/sudo.old: Config.in.orig
Only in /home/freetz/sudo.old: Config.in.rej
Only in /home/freetz/sudo.old: external.files.orig
Only in /home/freetz/sudo.old: external.files.rej
diff -d make/sudo/external.in /home/freetz/sudo.old/external.in
4c4
<       default y
---
>       default n
Common subdirectories: make/sudo/files and /home/freetz/sudo.old/files
diff -d make/sudo/sudo.mk /home/freetz/sudo.old/sudo.mk
1c1
< $(call PKG_INIT_BIN, 1.7.10p8)
---
> $(call PKG_INIT_BIN, 1.7.4p4)
3c3
< #$(PKG)_SOURCE_MD5:=d9002b306986fa7735ee6aa003624885
---
> $(PKG)_SOURCE_MD5:=55d9906535d70a1de347cd3d3550ee87
5,7c5,7
< $(PKG)_BINARIY:=$(pkg)
< $(PKG)_BINARY_BUILD_DIR:=$($(PKG)_DIR)/$(pkg)
< $(PKG)_BINARY_TARGET_DIR:=$($(PKG)_DEST_DIR)/usr/bin/$(pkg)
---
> $(PKG)_BINARIES:=$(pkg) vi$(pkg) $(pkg)replay
> $(PKG)_BINARIES_BUILD_DIR:=$($(PKG)_BINARIES:%=$($(PKG)_DIR)/%)
> $(PKG)_BINARIES_TARGET_DIR:=$($(PKG)_BINARIES:%=$($(PKG)_DEST_DIR)/usr/bin/%)
15,18c15
< $(PKG)_CONFIGURE_OPTIONS += --with-editor=/bin/nano \
<                           --without-lecture \
<                           --without-pam \
<                           --without-sendmail \
---
> $(PKG)_CONFIGURE_OPTIONS += --without-pam \
20,22c17,19
<                           --disable-root-mailer \
<                           --disable-root-sudo \
<                           --sysconfdir=/mod/etc \
---
>                           --with-timedir=/var/mod/usr/lib \
>                           --with-editor=/bin/vi \
>                           --without-lecture \
25a23
> $(PKG)_CONFIGURE_ENV += sudo_cv_func_unsetenv_void=no
31,32c29,30
< $($(PKG)_BINARY_BUILD_DIR) $($(PKG)_LIBS_BUILD_DIR): $($(PKG)_DIR)/.configured
<       $(SUBMAKE1) -C $(SUDO_DIR)
---
> $($(PKG)_BINARIES_BUILD_DIR) $($(PKG)_LIBS_BUILD_DIR): $($(PKG)_DIR)/.configured
>               $(SUBMAKE1) -C $(SUDO_DIR)
34c32
< $($(PKG)_BINARY_TARGET_DIR): $($(PKG)_DEST_DIR)/usr/bin/%: $($(PKG)_DIR)/%
---
> $($(PKG)_BINARIES_TARGET_DIR): $($(PKG)_DEST_DIR)/usr/bin/%: $($(PKG)_DIR)/%
36d33
<       chmod +s $(SUDO_BINARY_TARGET_DIR)
43c40
< $(pkg)-precompiled: $($(PKG)_BINARY_TARGET_DIR) $($(PKG)_LIBS_TARGET_DIR)
---
> $(pkg)-precompiled: $($(PKG)_BINARIES_TARGET_DIR) $($(PKG)_LIBS_TARGET_DIR)
Only in /home/freetz/sudo.old: sudo.mk.orig
Only in /home/freetz/sudo.old: sudo.mk.rej

Die sudoers ist leer beim Anfang...
Kann das ändern?

Ich glaube das ich dieser Linie mahl hinzugefugt habe
Code:
           --with-timedir=/var/mod/usr/lib \
Ich kann mich nicht mehr errinern warum, aber die ist vielleicht auch nötig
 
Zuletzt bearbeitet:
Ich habe "--with-editor=/bin/nano" ersetzt mit "--with-editor=/bin/vi" und "--disable-root-sudo" mit "--with-timedir=/var/mod/usr/lib" und jetzt kann ich sudo wieder als root anrufen.
Naturlich ist nur "--disable-root-sudo" dafür verantwortlich...

Kann das hier drin beim virgin setup?
Die Dateien im /etc/sudoers.d/ kann man dan nicht mehr ändern....
Code:
## Read drop-in files from /etc/sudoers.d
## (the '#' here does not indicate a comment)
#includedir /etc/sudoers.d
 
Da "root" alles kann gibt es eigentlich keinen Grund, etwas unter anderem User auszuführen. Wenn doch: Zum Ändern des Users von root auf einen anderen gibt es "su".

Deshalb sollte man das root-sudo immer deaktivieren, denn damit wäre ansonsten "Hintereinanderreihen" von sudos möglich und damit sowas möglich wie "sudo sudo /bin/sh" und Schwupp bin ich in einer root Shell. "Wenn schon Paranoia, dann auch richtig" ;-)

Mit "CONFIG_PREPARE" in dem .def-File (oder direkt im rc-File, das die Datei registriert) könnte man bei leerer Datei was hineinkopieren lassen. Eine grobe Idee hätte ich dafür, eigentlich gehört das natürlich wieder zu "zabbix" und nicht zu "sudo", aber eine "generelle Vorgabe" (unabhängig davon) könnte ich mir vorstellen.
 
Ich habe "--disable-root-sudo" wieder drin und "su" als busybox hinzugefugt (und selectiert in mein support-files Teil)
Das Teil im fwmod_custom "SUID mit busybox" habe ich gelöscht und mache einige tests mit ein 7490...
ping, grep... muss eigentlich funktionieren mit sudo.... Damals wollte ich eigentlich nür die "sticky bit", aber sudo ist besser weil ich es trotzdem nötig habe für andere sachen...

Wenn du sudo testest, machst du dass auch so (ersetz /bin/false mit /bin/sh)?
Code:
root@fritz:/var/mod/root# vi /etc/passwd
root@fritz:/var/mod/root# su zabbix -


BusyBox v1.22.1 (2014-04-01 14:42:58 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

zabbix@fritz:/var/mod/root$ ping -c2 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
ping: permission denied (are you root?)
zabbix@fritz:/var/mod/root$ sudo ping -c2 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: seq=0 ttl=64 time=0.335 ms
64 bytes from 127.0.0.1: seq=1 ttl=64 time=0.228 ms

--- 127.0.0.1 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.228/0.281/0.335 ms

Ich kann jetzt auf fwmod_custom verzichten...
Das kopieren der Scripts passiert schon automatisch... Ich weiss nicht warum ich das damals im fwmod_custom implementiert habe...

Aber nur dieser Datei und /etc/sudoers.d/ schon da ist doch noch immer ganz generell?

root@fritz:/sbin# cat /mod/etc/sudoers
Code:
## Read drop-in files from /etc/sudoers.d
## (the '#' here does not indicate a comment)
#includedir /etc/sudoers.d


Dieses wird mittels zabbix_agentd-support gemacht:

root@fritz:/sbin# cat /etc/sudoers.d/zabbix
Code:
zabbix ALL=(ALL) NOPASSWD: /bin/netstat
zabbix ALL=(ALL) NOPASSWD: /usr/bin/tcpdump
zabbix ALL=(ALL) NOPASSWD: /bin/grep
zabbix ALL=(ALL) NOPASSWD: /sbin/ifconfig
zabbix ALL=(ALL) NOPASSWD: /bin/ping
zabbix ALL=(ALL) NOPASSWD: /sbin/adsl.saturation
zabbix ALL=(ALL) NOPASSWD: /sbin/sip.info
zabbix ALL=(ALL) NOPASSWD: /sbin/sip.active
zabbix ALL=(ALL) NOPASSWD: /sbin/sip.flawed
zabbix ALL=(ALL) NOPASSWD: /sbin/sip.configured
zabbix ALL=(ALL) NOPASSWD: /sbin/sip.reachable
zabbix ALL=(ALL) NOPASSWD: /sbin/sip.reachability
zabbix ALL=(ALL) NOPASSWD: /usr/bin/ctlmgr_ctl
 
Zuletzt bearbeitet:
Wenn du sudo testest, machst du dass auch so (ersetz /bin/false mit /bin/sh)?
So ähnlich (habs einfach mit einem anderen User getestet). Aber so geht es auch, nur nicht vergessen, dem zabbix nach dem Test die Shell wieder wegzunehmen!
 
sudo (aus dem trunk) funktioniert gut...
Ich wurde noch immer ein Anfang haben mit #includedir /etc/sudoers.d
Ich brauch es dann nicht beim jeden neue Freetz drin setzen....
Die Datei /etc/sudoers.d/zabbix wird nu drin kopiert wenn ich mit make menuconfig die zabbix_agentd-support wähle.

Die zabbix_agentd-cgi ist noch immer nicht im Trunk, oder?
Was ist mit " --with-timedir=/var/mod/usr/lib \" ?
Dahmals war das nötig, aber vielleicht jetzt nicht mehr..
 
Mir ist keine allgemeine Möglichkeit eingefallen, eine Vorgabe mit aufzunehmen, die nicht das Image unnötig aufbläht. Das müsstest du dann als eigene Erweiterung machen, wenn es auf vielen Boxen sein soll. Ein Vorschlag dazu: Packe deine "zabbix-Datei" nach make/sudo/files/root/etc/default.sudo/sudoers.example. Dann nutze "CONFIG_PREPARE" in make/sudo/files/root/etc/default.sudo/sudoers.def , um die als "Default" zu laden, wenn sie nicht existiert:
Code:
CONFIG_PREPARE="[[ -e '$CONFIG_FILE' ]] || cp /etc/default.sudo/sudoers.example $CONFIG_FILE"

Die zabbix_agentd-cgi ist noch immer nicht im Trunk, oder?
Nein, ich weiß noch nicht genau, ob die GUI in das Zabbix-Paket mit rein soll/muss oder als eigenständiges Paket. Es gibt Sonderbehandlungen im Freetz für GUI-Pakete, deshalb dauert das noch etwas...

Was ist mit " --with-timedir=/var/mod/usr/lib \" ?
Den Parameter soll man nicht mehr nutzen:

Code:
./configure --help | grep -i timedir
  --with-timedir=DIR      deprecated
Dafür gäbe es jetzt "--with-rundir=DIR", das ist aber schon auf /var/run/sudo gesetzt, und das ist beschreibbar ...
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.