Ubuntu: Bash ufw status abfragen mit ausgabe
lima-city → Forum → Programmiersprachen → Sonstige Programmiersprachen
abfragen
all
benutzer
code
detail
eingabe
export
fan
file
frage
inaktiv schreiben
machen
note
profil
run
sprache
status
system
testen
url
-
kann mir jemand helfen
UFW Firewall
ich will bei Ubuntu mit bash abfragen UFW status
mit ergebniss:
bei UFW [u]deakteviert[/u] echo "Error" bei UFW [u]akteviert[/u] echo "OK"
ich habe so Probiert aber geht nicht
#!/bin/bash sudo ufw status | grep inactive &> /dev/null if [ $? = 0 ]; then echo "error" else echo "OK" fi
Danke voraus -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Was genau heißt "`geht nicht"'? Ich habe sudo nicht für ufw konfiguriert (und bin unter Debian für den Fall, dass es einen Unterschied macht), aber wenn man `sudo` herausnimmt und das Script als root startet, funktioniert es bei mir.
Ansonsten ist folgendes kürzer:
Das wäre vielleicht auch mal einen Versuch wert, um zu sehen, ob das auch nicht funktioniert.#!/bin/sh -e if ufw status | grep -q inactive; then echo ERROR else echo OK fi
UFW aktiviert heißt bei mir "`In GUFW Status `on` eingestellt"' und deaktiviert heißt bei mir "`IN GUFW Status `off` eingestellt"'... wenn man den Service deaktiviert, wird das wahrscheinlich nicht abgedeckt. -
ich habe beide codes mit root Probiert, geht nicht bei mir
OFF
[
Status: Inaktiv
.
OK
ON
Status: Aktiv
Protokollierung: on (full)
Voreinstellung: deny (eingehend), allow (abgehend), disabled (gesendet)
Neue Profile: skip
Zu Aktion Von
-- ------ ---
21/tcp ALLOW IN Anywhere
--------------usw--------------------------------
OK
also bleibt immer OK
macht was aus wenn test in /home/server/bin/ liegt ?
Beitrag zuletzt geändert: 18.3.2016 10:54:28 von youtvti -
Ah... es liegt also an der Sprache. Man könnte jetzt im Script statt ``inactive'' einfach ``Inaktiv'' schreiben, aber dann funktioniert das Script nicht auf allen Systemen. Ich würde daher folgendes vorschlagen
(Da mein System auf Englisch ist, konnte ich das nicht testen )#!/bin/sh -e export LC_ALL=C export LANG=C if ufw status | grep -q inactive; then echo ERROR else echo OK fi
-
OK letzte Code Funktioniert bei mir
masysma schrieb:
Ah... es liegt also an der Sprache. Man könnte jetzt im Script statt ``inactive'' einfach ``Inaktiv'' schreiben, aber dann funktioniert das Script nicht auf allen Systemen. Ich würde daher folgendes vorschlagen
(Da mein System auf Englisch ist, konnte ich das nicht testen )#!/bin/sh -e export LC_ALL=C export LANG=C if ufw status | grep -q inactive; then echo ERROR else echo OK fi
noch eine Frage?
Wie krieg ich das ist bei User auch funktioniert
ERROR: You need to be root to run this script
also Root rechte script starten in User
Beitrag zuletzt geändert: 18.3.2016 11:17:14 von youtvti -
Wenn sudo passend konfiguriert ist, würde ich folgendes vorschlagen:
... mal wieder nicht getestet, sollte aber das Richtige tun :)#!/bin/sh -e if [ $# = 0 ]; then exec sudo "$0" run fi export LC_ALL=C export LANG=C if ufw status | grep -q inactive; then echo ERROR else echo OK fi
Idee dahinter: Das Script wird als User gestartet und startet sich dann selbst mit sudo neu. -
Natürlich, aber dann muss man sudo umkonfigurieren.
Ich habe
/etc/sudoers.d/00-masysma-main# # Ma_Sys.ma changed sudoers files # It is recommended to use sudoedit FILE to edit all sudo configuration # files to auto-check syntax and preserve attributes. # # Original /etc/sudoers comment # # This file MUST be edited with the 'visudo' command as root. # See the man page for details on how to write a sudoers file. # Defaults env_reset # Allow root to be come every user he/she wants. root ALL=(ALL) ALL # Allow members of group sudo to execute any command # (Note that later entries override this, so you might need to move # it further down) %sudo ALL=(ALL) ALL
und /etc/sudoers.d/41-masysma-mount#=========================================================================== # Ma_Sys.ma Mount Sudo Configuration 1.0.0.0, Copyright (c) 2013 Ma_Sys.ma. # For further info send an e-mail to Ma_Sys.ma@web.de. #=========================================================================== # Allow linux-fan to use the ma_mount command to mount image files and removable # devices. This is risky when being used on servers and machines with many # users, but a better solution was not found yet. 07.2013. Cmnd_Alias MAMOUNT = /usr/bin/ma_mount linux-fan ALL=NOPASSWD: MAMOUNT
Statt `masysma-mount` und `ma_mount` muss natürlich der Name des UFW-Statusscripts eingegeben werden. Außerdem muss der Benutzer `linux-fan` natürlich durch den Benutzer ersetzt werden, der das UFW-Statusscript ausführen soll.
... und diese Lösung funktioniert so unter Debian, unter Ubuntu könnte es minimal anders aussehen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage