Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Linux/UNIX Linuxverfechter finden hier Weggefährten.

sudo ohne passworteingabe?

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 ...

Antwort
Alt 29.04.07, 18:43   #1 (permalink)
 
Registriert seit: 06.01.07
keksinat0r Leistung: Facit NTK
Likes: 0
Standard sudo ohne passworteingabe?

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   

Code:
#!/usr/bin/expect

spawn "su-script.sh user [befehl]'"
expect "password:"
send "[passwort]"
send "\r"
expect eof
Code:
#!/bin/bash
su - $1 -c "$2"


Der User sollte wenn möglich nur scripte in einem bestimmten Ordner als anderer User ausführen können...

MFG - keks
keksinat0r ist offline   Mit Zitat antworten
Alt 29.04.07, 18:53   #2 (permalink)
 
Registriert seit: 01.09.05
naked_chef Leistung: Facit NTK
Likes: 0
Standard

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
naked_chef ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 29.04.07, 19:46   #3 (permalink)
Themenstarter
 
Registriert seit: 06.01.07
keksinat0r Leistung: Facit NTK
Likes: 0
Standard

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?
keksinat0r ist offline   Mit Zitat antworten
Alt 29.04.07, 20:10   #4 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

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.
Elderan ist offline   Mit Zitat antworten
Alt 29.04.07, 20:46   #5 (permalink)
Moe
root@yourmom ~ $
 
Benutzerbild von Moe
 
Registriert seit: 05.10.01
Moe Leistung: Facit NTK
Likes: 2
Standard

Oder einfach mal RTFM.

Code:
%root   ALL=(ALL)       NOPASSWD: ALL
^^^ Das kleine Sniplet da eingetragen in /etc/sudoers gibt allen Mitgliedern der Gruppe 'root' Zugang zu root Rechten ohne dabei nach einem Passwort zu fragen.
__________________
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
Moe ist offline   Mit Zitat antworten
Alt 29.04.07, 20:56   #6 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcore
Likes: 441
Standard

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+
bitmuncher ist gerade online   Mit Zitat antworten
Alt 29.04.07, 21:19   #7 (permalink)
Themenstarter
 
Registriert seit: 06.01.07
keksinat0r Leistung: Facit NTK
Likes: 0
Standard

Zitat:
Original von Moe
Oder einfach mal RTFM.

Code:
%root   ALL=(ALL)       NOPASSWD: ALL
^^^ Das kleine Sniplet da eingetragen in /etc/sudoers gibt allen Mitgliedern der Gruppe 'root' Zugang zu root Rechten ohne dabei nach einem Passwort zu fragen.
Genau das soll aber nicht sein, es sollen nur bestimmte Scripte von bestimmten usern ausgeführt werden dürfen (scheiß satzbau xD).

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?
keksinat0r ist offline   Mit Zitat antworten
Alt 29.04.07, 21:29   #8 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcore
Likes: 441
Standard

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
Dein expect-Problem müßtest du bitte etwas genauer erläutern ("macht was es will" ist nicht gerade sehr hilfreich bei der Fehleranalyse) oder einen extra Thread dafür aufmachen.
__________________
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+
bitmuncher ist gerade online   Mit Zitat antworten
Alt 29.04.07, 21:37   #9 (permalink)
Themenstarter
 
Registriert seit: 06.01.07
keksinat0r Leistung: Facit NTK
Likes: 0
Standard

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
keksinat0r ist offline   Mit Zitat antworten
Alt 29.04.07, 21:43   #10 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcore
Likes: 441
Standard

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+
bitmuncher ist gerade online   Mit Zitat antworten
Alt 29.04.07, 21:48   #11 (permalink)
Themenstarter
 
Registriert seit: 06.01.07
keksinat0r Leistung: Facit NTK
Likes: 0
Standard

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.
keksinat0r ist offline   Mit Zitat antworten
Alt 29.04.07, 21:54   #12 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcore
Likes: 441
Standard

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+
bitmuncher ist gerade online   Mit Zitat antworten
Alt 29.04.07, 22:03   #13 (permalink)
Themenstarter
 
Registriert seit: 06.01.07
keksinat0r Leistung: Facit NTK
Likes: 0
Standard

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"
expect-script.exp
Code:
#!
/usr/bin/expect
spawn "/.../su-script.sh [user] [befehl]
expect "Password:"
send "[Passwort]"
send "\r"
expect eof
PHP-Script.php
PHP-Code:
<?php

shell_exec
(bash -"/.../expect-script.exp");

?>
expect ist es auch egal ob ich "Password:", "Password: " oder "word:" schreibe, kommt alles aufs gleiche raus...
Manchmal gehts, manchmal net...


[ EDIT: ]

so funktioniert es jetzt:
/etc/sudoers
Code:
[username] ALL=(root) NOPASSWD: /.../script.sh
der Standartuser von sudo ist doch "root" wieso muss dieser noch extra mitgegeben werden?
keksinat0r ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Operating Systems » Linux/UNIX » sudo ohne passworteingabe?
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


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


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61