Problem mit suid bit

Diskutiere Problem mit suid bit im Programmieren allgemein Forum im Bereich Programmieren unter Linux/Unix; 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...

  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. #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
     
  3. 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...
     
  4. #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.
     
  5. #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").
     
  6. #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
  7. 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.
     
  8. #8 floyd62, 30.05.2009
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    315
    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.
     
  9. #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.
     
  10. 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.
     
  11. #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!
     
  12. #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?
     
  13. Akendo

    Akendo 4k3nd0

    Dabei seit:
    05.02.2008
    Beiträge:
    396
    Zustimmungen:
    0
    Weil es nichts bessers gibt um etwas zu Lernen!
     
  14. 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:
     
  15. #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. Bootproblem

    Bootproblem: Hallo Ein PC (i686 mit Debian unstable, nox) hat Bootprobleme (will heißen ist erfolgt keine Grafikausgabe. was ich bisher gemacht habe: HDD an...
  2. Crontab und Scripts - Problem

    Crontab und Scripts - Problem: Hallo Zusammen Ich habe ein Script welches mittels Cronjob ausgeführt werden soll. Gemäss Log wird es auch ausgeführt, jedoch passiert nichts:...
  3. Problem bei der installation einer Sun Netzwerkkarte

    Problem bei der installation einer Sun Netzwerkkarte: Guten Morgen zusammen, beim installieren einer zusätzlichen Netzwerkkarte habe ich ein Problem. Die Karte wird nicht automatisch installiert. Es...
  4. Problem bei der Vergabe von Sciherheitsinformationen auf eine Freiagbe

    Problem bei der Vergabe von Sciherheitsinformationen auf eine Freiagbe: Liebe Community, zurzeit arbeite ich an eine Active Directory Domäne die mittels Samba läuft. Dazu habe ich einen AD DC auf Debian 8.7 mit Samba...
  5. Netzwerkproblem ? , wo ud wie suchen

    Netzwerkproblem ? , wo ud wie suchen: Hallo Folgende Problem: Testserver ist i686 Debian-unstable , auf dem läuft primär der apt-proxy apt-cahcer ng. Zugriff im Moment nur per ssh....