Opferlamm-Clan Board
www.opferlamm-clan.de
Verantwortlich für diese bösen Machenschaften: siehe Impressum

Registrierung Kalender Mitgliederliste Suche Häufig gestellte Fragen Zur Startseite

Opferlamm-Clan Board » Call of Duty 4 » Call of Duty 4 - Hilfe » Linux Start-Script Problem (Start-Script durch User starten lassen) » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Linux Start-Script Problem (Start-Script durch User starten lassen)
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
daKanu
5-Minuten-Ei


Dabei seit: 16.11.2007
Beiträge: 10


traurig Linux Start-Script Problem (Start-Script durch User starten lassen) Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

moin,

junx, ich habe ein problem!

wir haben seit neusten nen klasse root rechner. auf dem root läuft debian 4.0 als lamp version. soweit, sogut...!

nun habe ich mich hingesetzt um scripte zum starten / stopen des servers zu installieren.

genommen habe ich den von counter-strike.de!

so, nachdem ich alles hinbekommen habe (screen mit rechten - verzeichnisse mit rechten) funktioniert das script sehr gut, BIS AUF EINS....

als root eingelogt kann ich das script ohne probleme ausführen "./codpub start"
-> im verzeichnis "/etc/init.d" natürlich

dies funktioniert auch via webmin->other->eigene befehle auch...kommt dann immer "server wird gestartet" / "server wird gestoppt"

nun will ich aber die server nicht als root benutzer laufen lassen, sondern als benutzer "cod".

hab also dem benutzer die rechte zum ausführen gegeben. wenn ich aber nun über webmin->other->eigene befehle dann das script ausführen will, kommt folgendes:

Output from cd /etc/init.d ; ./codpub start ..

su: must be run from a terminal
Starte Server: eSp4u.de - Publice Server: codpub
su: must be run from a terminal

jo...also via putty eingeloggt und das gleiche nochmal:

./codpub start
(debian) password:
Starte Server: eSp4u.de - Publice Server: codpub
(debian) password:

muss sozusagen 2 mal das password vom benutzer cod eingeben, bevor er das script ausführt. daher geht das via webmin auch nicht.

nun meine frage, was muss ich in meinem script einstellen, damit das script auch ohne password-abfrage unter dem benutzer "cod" funktioniert.

wie gesagt, als root eingeloggt funktioniert alles super!

danke für eure hilfe!!!

hier das script nochmal:

#!/bin/sh
CS_USER=cod

# Leave this alone.
NAME=codpub

PATH=/bin:/usr/bin:/sbin:/usr/sbin

# DON'T FORGET TO CHANGE THE PATH TO YOUR NEEDS!
DIR=/home/gameserver/cod/codserver

# Leave this alone.
DAEMON=cod4_lnxded

# Internet-server:
PARAMS="+set fs_basepath /home/gameserver/cod/codserver +set fs_homepath /home/gameserver/cod/codserver +set loc_language 2 +set dedicated 2 +exec pub.cfg +map mp_crossfire"

# Leave this alone.
DESC="eSp4u.de - Publice Server"

case "$1" in
start)
if [[ `su $CS_USER -c "screen -ls |grep $NAME"` ]]
then
echo "CoD4 - Publice Server läuft bereits!"
else
echo "Starte Server: $DESC: $NAME"
su $CS_USER -c "cd $DIR; screen -m -d -S codpub ./$DAEMON $PARAMS"
fi
;;

stop)
if [[ `su $CS_USER -c "screen -ls |grep $NAME"` ]]
then
echo -n "Beende $DESC: $NAME"
kill `ps aux | grep -v grep | grep -i $CS_USER | grep -i screen | grep -i $NAME | awk '{print $2}'`
echo " ... beendet."
else
echo "Kann keinen laufende $DESC finden!"
fi
;;

restart)
if [[ `su $CS_USER -c "screen -ls |grep $NAME"` ]]
then
echo -n "Beende $DESC: $NAME"
kill `ps aux | grep -v grep | grep -i $CS_USER | grep -i screen | grep -i $NAME | awk '{print $2}'`
echo " ... beendet."
else
echo "Kann keinen laufende $DESC finden!"
fi

echo -n "Starting $DESC: $NAME"
su $CS_USER -c "cd $DIR; screen -m -d -S codpub ./$DAEMON $PARAMS"
echo " ... done."
;;

status)
ps aux | grep -v grep | grep cod4_lnxded > /dev/null
CHECK=$?
[ $CHECK -eq 0 ] && echo "CS Public Server is ONLINE" || echo "CS Public Server is OFFLINE"
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac

exit 0
daKanu ist offline E-Mail an daKanu senden Homepage von daKanu Beiträge von daKanu suchen Nehmen Sie daKanu in Ihre Freundesliste auf
Kelli
... sehr viel alleine


Dabei seit: 09.11.2006
Beiträge: 2.504


RE: Linux Start-Scrip Problem Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:

Original von daKanu
funktioniert das script sehr gut, BIS AUF EINS....
[...]
nun will ich aber die server nicht als root benutzer laufen lassen, sondern als benutzer "cod".

Moment, du bist bereits als Benutzer cod in Putty angemeldet? Dann kannst du das su einfach weglassen.

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
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:
[...]
==============8<==================
case "$1" in
start)
if [[ `screen -ls |grep $NAME` ]]
then
echo "CoD4 - Publice Server läuft bereits!"
else
echo "Starte Server: $DESC: $NAME"
cd $DIR; screen -m -d -S codpub ./$DAEMON $PARAMS
fi
;;

stop)
if [[ `screen -ls |grep $NAME` ]]
then
echo -n "Beende $DESC: $NAME"
kill `ps aux | grep -v grep | grep -i $CS_USER | grep -i screen | grep -i $NAME | awk '{print $2}'`
echo " ... beendet."
else
echo "Kann keinen laufende $DESC finden!"
fi
;;

restart)
if [[ `screen -ls |grep $NAME` ]]
then
echo -n "Beende $DESC: $NAME"
kill `ps aux | grep -v grep | grep -i $CS_USER | grep -i screen | grep -i $NAME | awk '{print $2}'`
echo " ... beendet."
else
echo "Kann keinen laufende $DESC finden!"
fi

echo -n "Starting $DESC: $NAME"
cd $DIR; screen -m -d -S codpub ./$DAEMON $PARAMS
echo " ... done."
;;

status)
ps aux | grep -v grep | grep cod4_lnxded > /dev/null
CHECK=$?
[ $CHECK -eq 0 ] && echo "CS Public Server is ONLINE" || echo "CS Public Server is OFFLINE"
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac

exit 0


[/quote]
Denn das `su` sorgt dafür das alle Befehle die das Script startet als Benutzer cod ausgeführt wird. Wenn du dich schon als cod einloggst ist das doppeltgemoppelt und überflüssig. Wenn du dich als root einloggst funktioniert es auch ohne passwort weil root halt root ist.

__________________
„ Allah ist Groß, und wir sind armselige Tröpfe mit unseren ganzen Wissenschaften Herrlichkeit.“

Dieser Beitrag wurde 420 mal editiert, zum letzten Mal von der Bundesregierung Niemand: Heute, 11:42.

https://kkde.de/scum/
Kelli ist offline Homepage von Kelli Beiträge von Kelli suchen Nehmen Sie Kelli in Ihre Freundesliste auf
daKanu
5-Minuten-Ei


Dabei seit: 16.11.2007
Beiträge: 10


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

sauber...es klappt ! ich bedanke mich !!! nice work grosses Grinsen

mfg
kanu
daKanu ist offline E-Mail an daKanu senden Homepage von daKanu Beiträge von daKanu suchen Nehmen Sie daKanu in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Opferlamm-Clan Board » Call of Duty 4 » Call of Duty 4 - Hilfe » Linux Start-Script Problem (Start-Script durch User starten lassen)

Impressum ||Datenschutzerklärung

Forensoftware: Wbb - WoltLab GmbH || zum Archiv