PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sudo Problem ?!



DoppelD
23.07.06, 15:12
Hallo an alle zusammen !

Ich hoffe bei euch hier mal ein wenig hilfe zu finden.

Bin nicht unbedingt der 'alte Hase' was Linux angeht , aber auch nicht der Neuling , der's garnicht rafft *G*

Aber nun zu meiner eigentlichen Frage.

Ich möchte ein Script als User ausführen lassen (Gameserver restart)

Dieses Script setzt auf SUDO auf.

Nach dem ich schön brave der Anleitung gefolgt bin :rolleyes: gibt's trotzdem noch ein Problem.

Ich habe mit Visudo die sudoers editert.

Der Eintrag sieht bei mir wie folgt aus :

root ALL=(ALL) ALL
wwwrun ALL=(1003) NOPASSWD: /home/d/doppeld.de/public_html/Interface/ssr.sh

Wobei der WWWRUN dann der Apache wäre und 1003 mein Account (nachgesehn via ps aux)

Wenn ich in der Console nun versuche das Script auszuführen (mit SUDO) kommt folgendes Problem auf mich zu :

sudo: no passwd entry for 1003

Aber wie kommt das ? Habe mich schon krank'gegoogelt' aber nix passendes zu dem Thema gefunden (ja , tried man sudo as well :ugly: )

SOLLTE doch eigentlich passend sein ???

Weiß jemand von euch vielleicht Abhilfe ?

ThX in advance !

Stefan

jacky0815
23.07.06, 19:32
Du willst also ein Script als "wwwrun" ausführen? Ich kenne mich zwar nicht genau mit sudo aus, aber ein

benutzername ALL=(ALL) NOPASSWD: script erlaubt es den User "benutzername" das "script" auszuführen, also root. Darin kann man dann ja auch ein "su - wwwrun Befehl" einbauen.

DoppelD
24.07.06, 10:28
Hallo , erstmal danke für deine Antwort.

Richtig , der User wwwrun soll unter meinem Account 1003 das Script ausführen.

Das Problem liegt anscheinend in der etc/sudoers.

Dort habe ich ja auch eingetragen , das er kein Passwort nutzen soll , WILL aber nicht !

Hab ich IRGENDWAS übersehen in der sudoers ??

Ich bekomme ja den Fehler ausgegeben , das kein Password für den User 1003 gesetzt ist.....*VERWIRR*

Ahso : OS ist SuSE Linux 9.3

DrachenKaiser
24.07.06, 11:36
wwwrun hat eigentlich kein Passwort(oder doch?).
Ich halte es etwas für gefährlich den apache nutzer solche rechte zu geben.
Ich würde besser ein script Schreibe was z.B. einen bestimmten wert in eine Textdatei einträgt und dann ein Script was per Cronjob die Datei Abruft was es tun soll.

Escorte2
24.07.06, 12:45
Hallo DoppelD,

schau mal bitte in die /etc/passwd ob es dort wirklich keinen Eintrag für "1003" gibt.

E2

Cerox
24.07.06, 12:49
Hi,

ich habe auch eine Frage dazu, die ich hier mal kurz anschließen möchte.

Es geht um die bash, eine einfache kurze Frage, die für euch bestimmt kein Problem ist :) - daher will ich auch keinen separaten Thread aufmachen.

Auf meinen Webinterface habe ich einen Button, der einen Dienst neu starten soll; drückt man diesen, so schreibt PHP eine "1" in eine Textdatei in htdocs.

Das Shellscript, welches im Hintergrund alle drei Sekunden erneut ausgeführt wird, soll nun prüfen, ob dort eine 1 drin steht.

Ich habe den Inhalt der Textdatei mit einer for-Schleife ausgelesen (Code kann ich erst heute abend posten aber ich denke ihr wisst was gemeint ist). Mit echo $variable wird mir dann auch die 1 ausgegeben - soweit korrekt.

Wenn ich es nun vergleiche, kommt immer die Fehlermeldung

1==1 - command not found oder sowas ähnliches

Habe folgendes probiert

if test [ $var=1 ]
if test [ $var==1 ]

Mit ' ' und ohne - geht einfach alles nicht - was mache ich da falsch?

Der Gestreifte
24.07.06, 13:28
Wenn ich es nun vergleiche, kommt immer die Fehlermeldung

1==1 - command not found oder sowas ähnliches"binary Operaror expected" kommt da.


Habe folgendes probiert

if test [ $var=1 ]
if test [ $var==1 ]

Mit ' ' und ohne - geht einfach alles nicht - was mache ich da falsch?"test ausdruck" ist das gleiche wie "[ ausdruck ]".

Also:
[ $var == 1 ] oder
test $var == 1

Cerox
24.07.06, 13:43
Du bist ja witzig; so habe ich es ja bereits probiert.

Ich poste heute abend mal die aktuelle Fehlermeldung.

Trotzdem danke für die Aufklärung.

edit:

So, ich habe es jetzt ausprobiert - du hattest Recht: mit test $var==1 funktioniert es wunderbar; ich war vorhin wohl etwas durcheinander.

Danke für deine Hilfe.