Problem mit suid bit

Dieses Thema im Forum "Programmieren allgemein" wurde erstellt von Gast1, 29.05.2009.

  1. Gast1

    Gast1 Guest

    Hi
    Ich habe ein Script, dass ein paar Dinge mit einem fat12-image anstellen soll. Dafür brauche ich root-rechte.

    Meine 1. idee: Dem Script ein suid-bit verpassen. Leider musste ich feststellen dass das bei Scripten nicht geht.
    -rwsr-xr-x 1 root root install.sh

    Deshalb habe ich (erstmal provisorisch) ein kleines Programm geschrieben, welches per system-funktion das Skript ausführen soll.
    Code:
    int main()
    {
     system("./install.sh");
     return 0;
    }
    
    -rwxr-xr-x 1 root root install.sh
    -rwsr-xr-x 1 root root callinstall

    Auch dass scheint nicht zu funktionieren: "mount: Nur „root“ kann dies tun"

    Wo liegt mein Denkfehler?
    Und gehe ich das Prob. überhaupt richtig an?

    Ich möchte ein FAT12-image mounten, und dort einige verzeichnisse anlegen und files draufkopieren.
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 saeckereier, 29.05.2009
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Nimm sudo. Was genau machst du denn? Alternativ starte das Skript mittels su -c /bin/bash skript
     
  4. Gast1

    Gast1 Guest

    Die Aufgaben des Skrips:
    - image mounten
    - 2 verzeichnisse erstellen
    - und dort dateien reinkopieren.

    Es handelt sich dabei um die Bootdisk meines Betriebssystems. würde ich su oder sudo verwenden, müsste ich bei jedem Testlauf das Rootpasswort eingeben - dass ist mir allerdings zu umständlich...
     
  5. #4 saeckereier, 29.05.2009
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Bei sudo nicht.
     
  6. #5 Gast1, 30.05.2009
    Zuletzt von einem Moderator bearbeitet: 30.05.2009
    Gast1

    Gast1 Guest

    Man möge mich korrigieren (und eine Erklärung, warum es so ist, habe ich auch nicht), aber AFAIK werden SUID-bits bei (Shell)scripten aus Sicherheitsgründen ignoriert.

    //Edit

    Aus meiner Linkliste gekramt:

    http://www.faqs.org/faqs/unix-faq/faq/part4/section-7.html

    Recht interessanter Einblick in das "Warum" (vor allem auch das "Warum es eigentlich ne dumme Idee ist").
     
  7. #6 Bâshgob, 30.05.2009
    Bâshgob

    Bâshgob freies Radikal

    Dabei seit:
    29.07.2004
    Beiträge:
    2.334
    Zustimmungen:
    0
    Ort:
    Hannover
  8. Gast1

    Gast1 Guest

    Vielen Dank Bâshgob - das setuid(0) hats gebracht :)

    @saeckereier: bei sudo muss ich min. einmal das PW angeben. Und kann dann auch nur eine gewisse Zeit lang arbeiten, bis ich es erneut angeben muss. Die sudo-Lösung hatte ich während der Testphase des Bootloaders, dass war aber als Endlösung inakzeptabel.
     
  9. #8 floyd62, 30.05.2009
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    309
    Zustimmungen:
    0
    Hi RedEagle,

    ich würde dringend empfehlen, dir "sudo" nochmal genauer anzusehen; wenn du die Manual-Page (sudoers(5)) checkst, wirst du sehen, dass es da ein flag "NOPASSWD" gibt, das dir die dauernden Nachfragen nach dem Passwort ersparen kann.

    Nur so als Anmerkung am Rande:

    Ich habe jetzt keine Ahnung, ob du das auf irgendeinem Privat-PC einsetzen willst, oder ob das auf einer Kiste stattfinden soll, auf der auch etwas kritischere Daten abgelegt sind; der Ansatz, mit einem C-Wrapper ein "./install.sh"-Skript im aktuellen Verzeichnis mit root-Berechtigung auszuführen, ist aber m.E. ein ziemliches Eigentor: was hindert einen bösen Nachbarn daran, dieses Programm in ein anderes Verzeichnis zu linken, und dann darüber jedes beliebige andere Skript/Programm mit Superuser-Berechtigungen auszuführen ...

    Wenn du das Ganze aber unbedingt als S-Bit-Programm haben willst, wäre evtl. zu überlegen, die mount- bzw. umount-Befehle (vorzugsweise direkt als Systemcalls, zur Not auch durch Aufruf der Kommandos, dann aber mit vollen Pfadangaben) in das C-Programm reinzunehmen.

    Grüsse,
    A.
     
  10. #9 saeckereier, 30.05.2009
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Danke floyd62, das erspart mir, das selbst aufzuschreiben.
     
  11. Gast1

    Gast1 Guest

    Super! (Ich habe mich immer noch nicht an die unglaubliche Flexibilität von Linux gewöhnt :) )
    Code:
    RedEagle ALL=NOPASSWD: /bin/mount, /bin/umount, /bin/cp
    Funktioniert genau so, wie ich es mir gewünscht habe. Dass dieses kleine C-Tool ein enormes Sicherheitsproblem ist, war mir bewusst. Aber ich nutze eigentlich den Rechner alleine. Aber es ist dennoch keine optimale Lösung gewesen.
     
  12. #11 saeckereier, 30.05.2009
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    schön, dass es jetzt klappt!
     
  13. #12 supersucker, 31.05.2009
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Und warum machst du dann die 10000-ste Distri, die wirklich kein Mensch braucht?
     
  14. Akendo

    Akendo 4k3nd0

    Dabei seit:
    05.02.2008
    Beiträge:
    396
    Zustimmungen:
    0
    Weil es nichts bessers gibt um etwas zu Lernen!
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. Gast1

    Gast1 Guest

    ?

    Ich vermute mal, du hast das mit den bootloader usw. falsch verstanden. Es handelt sich nicht um eine neue Linux-Distribution. Mein Kernel hat nichts mit Linux gemeinsam - bis auf das FAT12-Dateisystem gibt es nicht einmal ein Hauch von Kompatibilität zu Linux (oder anderen Systemen) :)
    Auch der bootloader ist eigenentwicklung da mir einfach grub zu verwenden zu einfach ist :devil:
     
  17. #15 saeckereier, 31.05.2009
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    RedEagle: Und abgesehen davon lautet die Antwortet sonst: Weil ich's kann! *g*
     
Thema:

Problem mit suid bit

Die Seite wird geladen...

Problem mit suid bit - Ähnliche Themen

  1. Virtualboxproblem

    Virtualboxproblem: Hallo Folgnedes Problem: Ich kann ohne Probleme In Debian-Sid, 64Bit und virtualbox-dkms Unixoide installieren, wenn es sich um eine...
  2. grub-pc Probleme bei upgrade

    grub-pc Probleme bei upgrade: Hallo, ich habe beim dist-upgrade folgendes Problem: ---------- Nach dieser Operation werden 0 B Plattenplatz zusätzlich benutzt. Trigger für...
  3. Problem bei apt-get upgrade (Kali 2.0)

    Problem bei apt-get upgrade (Kali 2.0): Hi, seit paar Tagen habe ich einige Probs. Dachte es sei mal an der Zeit für ein Update und nun tauchen da einige Fehler auf: Es müssen noch 0 B...
  4. Probleme mit YUM

    Probleme mit YUM: Hallo, ich habe CentOs 7 als Dualboot mit Windows 7 auf einen Dell Latitude E5510 installiert. Dies hat soweit auch alles geklappt. Leider habe...
  5. Problem mit Win-Zugriff auf SAMBA

    Problem mit Win-Zugriff auf SAMBA: Hallo rundherum, vielleicht hat jemand eine Idee... Habe jetzt schon 1 1/2 Tage damit verbraten und den Fehler nicht gefunden. Problem:...