root check

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Zico, 03.09.2005.

  1. Zico

    Zico Lebende Foren Legende

    Dabei seit:
    16.04.2004
    Beiträge:
    1.559
    Zustimmungen:
    0
    Hi bin mal wieder dabei was kleines zu basteln:
    einen simplen installer für ein programm.

    dabei möchte ich gerne einen "check" einbaun, der erst die UID abfragt und wenn diese nicht der des rootes entspricht, als diesen einloggt und dann mit der instalation fortfährt.

    Das ganze wollte ich mit su realisieren:

    Code:
    function UID_CHECK()
    {
     if [ $UID -gt 0 ]
       then
          printf 'The installation requires root permissions.\n'
          /bin/su
     fi
     COPY_MENU
    }
    
    function COPY_MENU()
    {
    echo $UID
    }
    Hier das Problem:
    Ist su einmal ausgeführt, so wird das Script gestoppt, bis ich mit exit wieder zum user zurückkehre. Dann läuft es weiter. Sicher könnte ich auch einen Abbruch setzen, und einfach sagen "bah! logg dich als root ein und dann nochma von vorne!" aber ich möchte es gerne als feature haben.
    Ideen?
     
  2. Anzeige

    Schau dir mal diesen Ratgeber an. Viele Antworten inkl. passender Shell-Befehle!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 StyleWarZ, 03.09.2005
    StyleWarZ

    StyleWarZ Profi Daten Verschieber

    Dabei seit:
    05.03.2004
    Beiträge:
    1.929
    Zustimmungen:
    0
    würde mich auch mal wunder nehmen.. wollte mal ein skript schreiben das chroot ausführt und dann weiter macht.. doch da hat es immer den geist aufgegeben.. schade.. mein auto gentoo installler :/
     
  4. #3 bert2002, 03.09.2005
    Zuletzt bearbeitet: 04.09.2005
    bert2002

    bert2002 Grünschnabel

    Dabei seit:
    22.06.2003
    Beiträge:
    3
    Zustimmungen:
    0
    Ort:
    /dev/urandom
    Die Lösung würde mich auch interesieren!

    MfG bert2002
     
  5. #4 qmasterrr, 04.09.2005
    qmasterrr

    qmasterrr Foren Gott

    Dabei seit:
    01.01.2004
    Beiträge:
    2.735
    Zustimmungen:
    0
    Ort:
    Germany/NRW/Wesel
    Mein Vorschlag wäre, das Script sich selber aufrufen zu lassen, oder es so zulösen wie es zb cedega (in der CVS-Version) gelöst hat.
     
  6. #5 StyleWarZ, 04.09.2005
    StyleWarZ

    StyleWarZ Profi Daten Verschieber

    Dabei seit:
    05.03.2004
    Beiträge:
    1.929
    Zustimmungen:
    0
    im fall von de chroot müsst das skript ne neue konsole öffnen, in dieser chrooten und da sich neu (am richtigen punkt) wieder ausführen... richtig?
     
  7. #6 Schlaubi_fi.de, 04.09.2005
    Schlaubi_fi.de

    Schlaubi_fi.de Mac OS X User

    Dabei seit:
    22.12.2004
    Beiträge:
    304
    Zustimmungen:
    0
    Mal davon abgesehen, dass es aus Sicherheitsgründen nicht sehr sinnvoll ist und außerdem es auch möglich ist, dass jemand keine Root-Rechte hat und diesen Installer ausführen kann, aber das steht ja hier nicht zur Debatte :D - probiers doch mal mit man expect.
     
  8. Zico

    Zico Lebende Foren Legende

    Dabei seit:
    16.04.2004
    Beiträge:
    1.559
    Zustimmungen:
    0
    ok danke für all die tipps.
    ich werd mich mal umsehn wie ichs machen kann.
    also dass man den installer als user starten kann und dann zum root einlogeloggt wird soll auf jeden fall reinkommen. darin seh ich noch keine sicherheitsgefährdungen... wenns eine gibt, bitte erklären :)

    qmasterrr's idee, dass der su command das script nochmals neu startet, gefällt mir bisher am besten. so könnte ich mir es sparen einen zweiten UID check einzubaun der verhindert, dass bei einer falschen PW ingabe doch versucht wird zu kopieren, was am ende schief gehen würde.
     
  9. #8 Zico, 04.09.2005
    Zuletzt bearbeitet: 04.09.2005
    Zico

    Zico Lebende Foren Legende

    Dabei seit:
    16.04.2004
    Beiträge:
    1.559
    Zustimmungen:
    0
    Meine Lösung

    Man möge mir den doppelpost verzeihen, aber dies ist ein kleiner erfolg für mich. :D
    Habe mich nun mit qmasterrr's Idee weiter beschäftigt und meine Lösung gefunden.
    Klappt wunderbar:

    Code:
    function START()
    {
     if [ $UID -gt 0 ]
       then
          printf 'The installation requires root permissions.\n'
          /bin/su -c 'sh test-script.sh'
       else
          ECHO_UID
     fi
    }
    
    function ECHO_UID()
    {
     echo $UID
    }
    
    START
    Ist nutzer kein root, so wird script mit su neu gestartet. durch das verpacken des "echo $UID" in eine extra funktion wird auch verhindert, dass es zu einer erneuten ausgabe der UID kommt wenn es schon als root durchgelaufen ist.
    ebenso bricht das scipt vollkommen ab, wenn das passwort falsch eingegeben wird - sprich, es kommt nicht zur ausgabe der UID.

    Kritik, Vorschläge und allgemeines Feedback ausdrücklich erwünscht!

    EDIT:
    Ein neues Problem was sich mir allgemein stellt, ist dass der su aufruf des scriptes auch nur funzt (ebenso wie die späteren cp befehle die noch im installer folgen), wenn das script direkt vom aktuellen verzeichnis ausgeführt wird und nicht von einem anderen.
    bsp: sh /tmp/test-script.sh
    Ideen erlaubt :D
     
  10. #9 Wolfgang, 05.09.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Dein Problem hängt mit der Umgebungsvariable PATH zusammen.
    Die ist/sollte ja bei root bekanntlich das aktuelle Verzeichnis
    nicht enthalten.
    Du kannst diese natürlich in deinem Script selbst setzen und exportieren.
    Gruß
    Wolfgang
     
Thema:

root check

Die Seite wird geladen...

root check - Ähnliche Themen

  1. checkroot / checkfs

    checkroot / checkfs: hallo ich wollte mal fragen wie ich denn die "zeit" einstellen kann, nach der beim starten immer das dateisystem gecheckt wird aktuell ist es...
  2. chkrootkit Checking `chkutmp'... The tty of the following user process(es) were not

    chkrootkit Checking `chkutmp'... The tty of the following user process(es) were not: Frohes neues Jahr ! Suse 10.1 mit AppArmor und Antivir ( beides allerdings erst nachdem der Trouble begann ) Habe eine seltsame...
  3. Logs von debsecan, tiger, chkrootkit richtig auswerten.

    Logs von debsecan, tiger, chkrootkit richtig auswerten.: Hallo! ich habe debsecan drüber laufen lassen und der zeigt mir einen Haufen an low/medium/high urgency an, mit oder ohne remotly exploitable....
  4. Root Login nach installation ohne Desktop Environment

    Root Login nach installation ohne Desktop Environment: Hey, Ich habe mir gerade Linux Debian 8 auf meinen alten PC gezogen und bei Desktop Environment das Sternchen rausgenommen, da das ja bei nem...
  5. Rootserver für Linux

    Rootserver für Linux: Hallo liebe Profis, ich arbeite nun schon seit Längerem mit Linux. Habe es privat als Betreibssystem. Nun will ich für ein Internetprojekt...