kostenloser Webspace werbefrei: lima-city


Ubuntu: Bash ufw status abfragen mit ausgabe

lima-cityForumProgrammiersprachenSonstige Programmiersprachen

  1. Autor dieses Themas

    youtvti

    youtvti hat kostenlosen Webspace.

    kann mir jemand helfen :biggrin:

    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 :thumb:
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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:
    #!/bin/sh -e
    
    if ufw status | grep -q inactive; then
    	echo ERROR
    else
    	echo OK
    fi
    Das wäre vielleicht auch mal einen Versuch wert, um zu sehen, ob das auch nicht funktioniert.

    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.
  4. Autor dieses Themas

    youtvti

    youtvti hat kostenlosen Webspace.

    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 ?:confused::confused::confused:

    Beitrag zuletzt geändert: 18.3.2016 10:54:28 von youtvti
  5. 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
    #!/bin/sh -e
    
    export LC_ALL=C
    export LANG=C
    if ufw status | grep -q inactive; then
    	echo ERROR
    else
    	echo OK
    fi
    (Da mein System auf Englisch ist, konnte ich das nicht testen :smile:)
  6. Autor dieses Themas

    youtvti

    youtvti hat kostenlosen Webspace.

    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
    #!/bin/sh -e
    
    export LC_ALL=C
    export LANG=C
    if ufw status | grep -q inactive; then
    	echo ERROR
    else
    	echo OK
    fi
    (Da mein System auf Englisch ist, konnte ich das nicht testen :smile:)


    noch eine Frage?:confused:

    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
  7. Wenn sudo passend konfiguriert ist, würde ich folgendes vorschlagen:
    #!/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
    ... mal wieder nicht getestet, sollte aber das Richtige tun :)

    Idee dahinter: Das Script wird als User gestartet und startet sich dann selbst mit sudo neu.
  8. Autor dieses Themas

    youtvti

    youtvti hat kostenlosen Webspace.

    geht es auch ohne Passwort eingabe ??

    nur frage :sleep:
  9. 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.
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!