| Linux/UNIX Linuxverfechter finden hier Weggefährten. |
Diskussion: sudo ohne passworteingabe? im Forum Linux/UNIX, in der Kategorie Operating Systems; Anzeige öhm, joa^^ gibts ne möglichkeit einem Benutzer zu erlauben Befehle als anderer User auszuführen ohne dass er dass er ...
![]() |
| | #1 (permalink) |
![]() Registriert seit: 06.01.07 ![]() Likes: 0 | Anzeige öhm, joa^^ gibts ne möglichkeit einem Benutzer zu erlauben Befehle als anderer User auszuführen ohne dass er dass er das Passwort eingeben muss? also sudo -u user [befehl] bzw su - user -c "[befehl]" Grund ist, ich bin mal wieder am Basteln eines webinterfaces, allerdings möchte ich den Apache aus Sicherheitsgründen nur ungern als der betroffene User laufen lassen... Ich habs mit expect versucht, allerdings funktioniert das auch nur wenn es grad mal lust hat... Ein oder Zwei mal hintereinander funktioniert es, dann schickt es beim Passwortprompt das Passwort nichtmehr ab, sonden schreibt es auf den Bildschirm und bleibt hängen... hier mal das script expect script Der User sollte wenn möglich nur scripte in einem bestimmten Ordner als anderer User ausführen können... MFG - keks |
| | |
| | #2 (permalink) |
| Registriert seit: 01.09.05 ![]() Likes: 0 | olla, also zum einen musst du bei sudo kein root-passwort angeben, sondern das user-password und zum anderen hillft dir vielleicht das hier weiter : http://de.wikipedia.org/wiki/SUID |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
![]() Registriert seit: 06.01.07 ![]() Likes: 0 | bei sudo -u benötigt man das userpw, bei su - user -c das root-pw^^ naja egal... Wichtiger ist, dass SUID nur bei Binärdateien funktioniert, nicht aber bei anderen Scripten... Gibt es noch eine andere Möglichkeit? |
| | |
| | #4 (permalink) |
| Moderator ![]() Registriert seit: 30.03.04 ![]() Likes: 14 | Hallo, was passiert denn, wenn der User gar kein Passwort hat? Sonst ein Programm basteln, ähnlich wie sudo. Es leitet Befehle die als Argument übergeben wurden an das System weiter, und bei dem Prog. setzt du dann eben die SUID des entsprächenden Users. Musst ja dann einfach nur system() aufrufen und dabei das übergebene Argument weiterleiten. |
| | |
| | #5 (permalink) |
| root@yourmom ~ $ ![]() Registriert seit: 05.10.01 ![]() Likes: 2 | Oder einfach mal RTFM. Code: %root ALL=(ALL) NOPASSWD: ALL
__________________ In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. Linus Torvalds Lunar Linux Xfce |
| | |
| | #6 (permalink) |
| Moderator ![]() Registriert seit: 30.09.06 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 441 | Steht auch alles in den Manpages von sudo und sudoers Code: man sudo man sudoers
__________________ Mein Blog - Mein Job - Diaspora Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund. Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+ |
| | |
| | #7 (permalink) | |
![]() Registriert seit: 06.01.07 ![]() Likes: 0 | Zitat:
SUID wär dafür genau richtig, funktioniert ja aber leider nur mit Binär-Dateien... Ich habs mal mit 2 versionen die ich bei Google aufgetrieben hab versucht: [username] ALL=(ALL) NOPASSWD: /pfad/zum/script [username] ALL=NOPASSWD: /pfad/zum/script jedoch bekomm ich trotzdem eine Passwortabfrage... Diese Möglichkeit war mein erster Gedanke... [ EDIT: ] btw: is dieses Verhalten von expect eigentlich normal? also dass es nur funktioniert wenn es grad Lust dazu hat? | |
| | |
| | #8 (permalink) |
| Moderator ![]() Registriert seit: 30.09.06 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 441 | Da du "Pfad zum Skript" geschrieben hast, liegt vermutlich dein Problem darin, daß du auch noch den Interpreter für das Skript zulassen mußt: Code: [benutzername] ALL = NOPASSWD: /pfad/zum/skript, /pfad/zum/interpreter
__________________ Mein Blog - Mein Job - Diaspora Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund. Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+ |
| | |
| | #9 (permalink) |
![]() Registriert seit: 06.01.07 ![]() Likes: 0 | Der Interpreter wäre in dem Falle die bash-shell, es ändert aber nichts am verhalten von sudo... Die Login-Shell des Users ist übrigens ebenfalls die bash. @expect-problem naja, manchmal geht es eben, ander mal nicht... wie oben im meinem Eröffnungpost beschrieben |
| | |
| | #10 (permalink) |
| Moderator ![]() Registriert seit: 30.09.06 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 441 | Dann verwendest du in diesem Skript ja offenbar noch expect. Jedes Programm, das in dem Skript aufgerufen wird, muß (logischerweise) auch zugelassen werden.
__________________ Mein Blog - Mein Job - Diaspora Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund. Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+ |
| | |
| | #11 (permalink) |
![]() Registriert seit: 06.01.07 ![]() Likes: 0 | nein ^^ in diesem script verwende ich kein expect, da das ja nicht funktioniert... also alles nochmal von vorne: Ich hab ein Webinterface dass Server unter einem bestimmten user starten/stoppen/... soll geschrieben. Problem an der Sache ist, dass ich ja logischerweise den Benutzer wechseln muss da der Webserver nicht als der "Server-User" laufen soll. Mein erster versuch war die sudoers so zu bearbeiten dass der Webserver-User kein Passwot benötigt um die Serverscripte auszuführen. -> geht net, Passwortabfrage kommt trotzdem Dann hab ich versucht mit expect was zu bauen (irgendwo hier im Forum ist ein Threat darüber) -> expect funktioniert nicht richtig... man kann das expect-script 1 mit Glück 2 mal ausführen und dann bleibt es an der PAsswortabfrage hängen (es schreib das Passwort im Klartext auf den Bildschirm und hängt ab diesem Zeitpunkt) Das Script dass ausgeführt weden soll ist ein reines Bash-Script. |
| | |
| | #12 (permalink) |
| Moderator ![]() Registriert seit: 30.09.06 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 441 | Und dein Webinterface startet die Befehle mit exec() oder system() nehme ich an und startet die Befehle/Skripte auch mit 'sudo befehl'? Expect bekommt auch immer die Daten, die es erwartet (in deinem Fall also nicht mehr als ein simples 'password:' ohne irgendwelchen Text davor oder ein Freizeichen dahinter)?
__________________ Mein Blog - Mein Job - Diaspora Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund. Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+ |
| | |
| | #13 (permalink) |
![]() Registriert seit: 06.01.07 ![]() Likes: 0 | naja da expect " in den Befehlen net besonders mag hab ich ein shellscript geschrieben dass von expect ausgeführt wird (steht ebenfalls oben) expect gibt diesem Script 2 Argument mit, den User und den Befehl. su-script.sh Code: #!/bin/bash su - $1 -c "$2" Code: #! /usr/bin/expect spawn "/.../su-script.sh [user] [befehl] expect "Password:" send "[Passwort]" send "\r" expect eof PHP-Code: Manchmal gehts, manchmal net... [ EDIT: ] so funktioniert es jetzt: /etc/sudoers Code: [username] ALL=(root) NOPASSWD: /.../script.sh |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
LinkBacks (?)
LinkBack to this Thread: http://www.hackerboard.de/linux-unix/29563-sudo-ohne-passworteingabe.html | ||||
| Erstellt von | For | Type | Datum | |
| Terminal SU Befehl in Datei | This thread | Refback | 12.11.11 16:58 | |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Abmeldung von Windows (Passworteingabe) sicher? | valenterry | Windows | 9 | 18.06.09 01:35 |
| Passworteingabe knacken[SOLVED] | Dummie | Hacks & Crackmes | 8 | 26.11.07 19:36 |
| "sudo" anschaulich erklärt | Cyberm@ster | Fun Section | 9 | 16.03.07 02:46 |
| Win98 Passworteingabe | reaLInsanity | Applikationen | 15 | 02.02.07 15:54 |
| OS X Sudo vs. Root: The Real Story | srji | Mac OS & Co. | 0 | 22.03.06 16:46 |