AdminMod.de https://www.adminmod.de/ |
|
Kein admin_command in exec() https://www.adminmod.de/viewtopic.php?t=2390 |
Seite 1 von 3 |
Autor: | daRope [ 07.04.2002, 22:22 ] |
Betreff des Beitrags: | Kein admin_command in exec() |
In der naechsten Version von Admin Mod wird es nicht mehr moeglich sein, 'admin_command' innerhalb eines exec() Aufrufs zu benutzen (Einzige Ausnahme: exec("logd_reg ...")). Anscheinend gibt es noch viele Plugins, die sowas verwenden. Derartige Aufrufe sind durch den Einsatz der Funktion plugin_exec() zu ersetzen. Bitte ueberprueft in euren Plugins, ob ihr betroffen seid und aendert das entsprechend. Kuckt in Admin/scripting/include/admin.inc und Admin/scripting/examples/plugin_chat.sma nach, wenn ihr nicht wisst, wie man plugin_exec() verwendet. Wenn jemand meint, er habe einen Fall, in dem ein Ersatz nicht moeglich ist, dann moege er dies hier bitte posten. |
Autor: | Biohazard1 [ 07.04.2002, 23:59 ] |
Betreff des Beitrags: | Re: Kein admin_command in exec() |
Zitat: In der naechsten Version von Admin Mod wird es nicht mehr moeglich sein, 'admin_command' innerhalb eines exec() Aufrufs zu benutzen ...
Mich würde interessieren wieso ihr euch dazu entschieden habt - gab es damit Probleme ?Bio PS: Habt ihr schon eine Vorstellung über das Erscheinungsdatum der neuen AM Version ? |
Autor: | [WING] Black Knight [ 08.04.2002, 01:26 ] |
Betreff des Beitrags: | |
Ich hab mal meine Plugins gescannt: Das einzige, dass neben den logds auffällig wurde war plugin_sank_antiflood.sma . Aber ich bin ja auch nicht derjenige, der dem Plugin-Overkill frönt. Für alle, die mal schnell Ihre sma-Sammlung scannen wollen. Unter Windows in Suchen gehen Name: *.sma Enthaltener Text: admin_command Suchen in: X:\admin\scripting\myscripts Unter Linux solltet Ihr im entsprechenden scripting-Verzeichnis. grep anwenden: grep 'admin_command' *.sma Ich tippe ja wegen admin_command auf eine Sicherheitslücke, aber was man damit machen könnte, würde mich auch interessieren. |
Autor: | Biohazard1 [ 08.04.2002, 01:46 ] |
Betreff des Beitrags: | |
Zitat: ... Für alle, die mal schnell Ihre sma-Sammlung scannen wollen. Unter Windows in Suchen gehen Name: *.sma Enthaltener Text: admin_command Suchen in: X:\admin\scripting\myscripts
Danke. Guter Tip !... Bio |
Autor: | daRope [ 08.04.2002, 10:44 ] |
Betreff des Beitrags: | Re: Kein admin_command in exec() |
Zitat:
Mich würde interessieren wieso ihr euch dazu entschieden habt - gab es damit Probleme ?
Wie Knight richtig getippt hat konnte das missbraucht werden, wenn Plugin Authoren nachlaessig mit dem exec() Befehl hantieren. Da AM nach dem Prinzip "better safe than sorry" entwickelt wird, und Plugin Authoren nicht unbedingt dafuer bekannt sind, auf diese Dinge selber zu achten, wurde es eben komplett gesperrt. Wie gesagt sollte es keine Probleme geben, da man plugin_exec() verwenden kann. Das sollte man eigentlich schon mimmer getan haben, da es das Rechtesystem aufrechterhaelt.Zitat: PS: Habt ihr schon eine Vorstellung über das Erscheinungsdatum der neuen AM Version ? |
Autor: | SN8P [ 14.04.2002, 00:54 ] |
Betreff des Beitrags: | SYNTAX? |
...Nunja, ich fände es trotzdem mal ganz interessant den Syntax zu erfahren... Wie verwende ich zum Beispiel den Befehl 'admin_psay <target> <msg>' über 'plugin_exec()' ?!? das einzige Beispiel das ich gefunden habe war in plugin_chat und aussagelos... aber wie bereits an anderer Stelle erwähnt, ich bin neu im Geschäft ![]() ![]() |
Autor: | Sir Drink a lot [ 14.04.2002, 01:00 ] |
Betreff des Beitrags: | |
hm...dann muss ich wohl meinen Taskplaner bezüglich dieser Sache nochmal überdenken. |
Autor: | SN8P [ 14.04.2002, 01:24 ] |
Betreff des Beitrags: | |
Zitat: hm...dann muss ich wohl meinen Taskplaner bezüglich dieser Sache nochmal überdenken.
Wie meinst Du das ?!?
|
Autor: | Speedy1 [ 14.04.2002, 01:43 ] |
Betreff des Beitrags: | |
wird dieser Befehl komplett entfernt oder kann ich ihn auch noch so benutzen um in configs AM Befehle auszuführen |
Autor: | daRope [ 14.04.2002, 11:46 ] |
Betreff des Beitrags: | Re: SYNTAX? |
Zitat: ...Nunja, ich fände es trotzdem mal ganz interessant den Syntax zu erfahren...
Die Syntax fnidet sich wie immer in den Inlcudedateien:
Code: native plugin_exec( sCommand[], sArguments[] ); also: plugin_exec("admin_psay", "dau Hallo Dau"); |
Autor: | daRope [ 14.04.2002, 11:47 ] |
Betreff des Beitrags: | |
Zitat: wird dieser Befehl komplett entfernt oder kann ich ihn auch noch so benutzen um in configs AM Befehle auszuführen
Nein, natuerlich wird admi_command nicht vollstaendig entfernt. Schliesslich will man ja von der Serverconsole aus auf die AM Befehle zugreifen koennen. Es geht nur um die Verwendung mit exec().
|
Autor: | Sir Drink a lot [ 14.04.2002, 13:59 ] |
Betreff des Beitrags: | |
Ich bin heute mal wieder etwas schwer von Begriff.... Also: ein exec (admin_command admin_psay dau, Hallo Dau) geht nicht mehr. (Habe die ^" in dem Beispiel weggelassen) gehen denn noch exec(csg_say xxxx) oder andere zugriffe mit exec, die nicht zu AdminMod gehören ? |
Autor: | daRope [ 14.04.2002, 17:07 ] |
Betreff des Beitrags: | |
Jup. Was andere MM Plugins anstellen, geht mich nix an. ![]() |
Autor: | SN8P [ 14.04.2002, 17:15 ] |
Betreff des Beitrags: | Re: SYNTAX? |
Zitat: Zitat: ...Nunja, ich fände es trotzdem mal ganz interessant den Syntax zu erfahren...
Die Syntax fnidet sich wie immer in den Inlcudedateien:
Code: native plugin_exec( sCommand[], sArguments[] ); also: plugin_exec("admin_psay", "dau Hallo Dau"); Als Beweis, das ist dabei rausgekommen: Code: new Param[MAX_TEXT_LENGTH]; ... snprintf(Param, MAX_TEXT_LENGTH, "%s Your console has been activated/npress ^ to to toggle it!", User); plugin_exec("admin_psay", Param); ... |
Autor: | daRope [ 14.04.2002, 17:29 ] |
Betreff des Beitrags: | |
Und, funktioniert das? Ich wage es zu bezweifeln. Schon getestet? |
Autor: | SN8P [ 14.04.2002, 17:39 ] |
Betreff des Beitrags: | |
Zitat: Und, funktioniert das? Ich wage es zu bezweifeln. Schon getestet?
...gehört nicht in diesen Thread -> aber in diesen!
|
Autor: | Sir Drink a lot [ 15.04.2002, 02:27 ] |
Betreff des Beitrags: | |
Also ich muss sagen, dass ich immer noch nicht ganz verstehe, was das mit plugin_exec auf sich hat. Ich will doch adminmod Befehle auch noch automatisch an die User verteilen können. Oder betrifft das ganze nicht den execclient Befehl ? Hm...Bei plugin_exec muss doch der User, der einen Befehl eingibt ja auch die Rechte für den Befehl haben, den plugin_exec ausführt. Oder seh ich das falsch ? In meinem Taskplaner werden z.B. bis zu 10 Befehle mit einer gewissen Wartezeit zueinander aus einem Textfile ausgelesen und dann nacheinander mit exec ausgeführt. das Textfile enthält dann die Befehle z.B. admin_command admin_csay Hallo Leute, 60 admin_command admin_csay Willkommen zum Clanwar, 10 etc. Die Timer werden automatisch bei plugin_init gelesen. Im plugin_chat (meesagemode) ist ja definitiv der User mit Adminrechten vorhanden, der das plugin_exec ausführen darf (oder bei fehlenden Rechten eben nicht). Lasst mich bitte nicht dumm sterben ![]() Gruss, SDal |
Autor: | daRope [ 15.04.2002, 11:09 ] |
Betreff des Beitrags: | |
Zitat:
Ich will doch adminmod Befehle auch noch automatisch an die User verteilen können.
Will ich das?
Zitat:
Oder betrifft das ganze nicht den execclient Befehl ?
Huh? Was hat denn admin_command mit execclient() zu tun? Das macht doch von vornherein keinen Sinn.Zitat:
Hm...Bei plugin_exec muss doch der User, der einen Befehl eingibt ja auch die Rechte für den Befehl haben, den plugin_exec ausführt. Oder seh ich das falsch ?
Korrekt. So soll das auch sein. Eine saubere Trennung der Rechte bedingt, dass ich mir ganz genau ueberlege, wer welche Rechte bekommt und das explizit in meinem Plugin ausprogrammiere.Zitat:
das Textfile enthält dann die Befehle z.B.
Tja, das sieht nach einem Problem aus. Deswegen gibt es ja diesen Thread hier. Ich wuerde mal sagen, Du solltest nicht mit admin_command von hinten ins Auge schiessen, sondern stattdessen Hilfsfunktionen haben, die das gewuenschte uebernehmen. Hier ist doch bleistielsweise der ganze Overhead, der in admin_csay steckt voellig ueberfluessig.
admin_command admin_csay Hallo Leute, 60 admin_command admin_csay Willkommen zum Clanwar, 10 etc. Die Timer werden automatisch bei plugin_init gelesen. |
Autor: | Sir Drink a lot [ 15.04.2002, 13:27 ] |
Betreff des Beitrags: | |
ups...das execclient hatte hier nix damit zu tun. War ich mit den Gedanken bei dem Plugin von Spoocy, da es nicht mit dem plugin_exec bei mir funktioniert hat. Zitat:
Ich will doch adminmod Befehle auch noch automatisch an die User verteilen können.
Das war von mir ganz falsch ausgedrückt. Sorry. Was ich eigentlich sagen will ist, ich will noch manche adminmod Befehle automatisch auf die User anwenden können.(z.B. admin_gag oder admin_llama)Meine derzeitige Erfahrung bei mir ist, das das plugin_exec eben nicht funktioniert, wenn der User, auf den der Befehl angewendet werden soll, keine Adminrechte hat. Siehe dazu den Thread von Spoocy. Zitat:
Du solltest nicht mit admin_command von hinten ins Auge schiessen, sondern stattdessen Hilfsfunktionen haben, die das gewuenschte uebernehmen. Hier ist doch bleistielsweise der ganze Overhead, der in admin_csay steckt voellig ueberfluessig.
Was genau meinst Du mit Overhead....Aber ich hätte das admin_command im Textfile weglassen und es ins Plugin einbauen können. Stimmt. Da war ich dann wohl ein wenig zu faul. ![]() (auch das admin_ kann ja noch weg...Jetzt sehe ich es erst. Naja, muss ich mir demnächst doch mal mehr Mühe machen. Ich optimiere den Code immer zu wenig. Wenn es irgendwie funktioniert, lasse ich es immer so, wie es ist, anstatt über Optimierungsmassnahmen nachzudenken.) Das muss ich dann wirklich nochmal mit plugin_exec testen. |
Autor: | daRope [ 15.04.2002, 15:44 ] |
Betreff des Beitrags: | |
Zitat:
Meine derzeitige Erfahrung bei mir ist, das das plugin_exec eben nicht funktioniert, wenn der User, auf den der Befehl angewendet werden soll, keine Adminrechte hat.
Ich weisz. Das soll so.Zitat:
Was genau meinst Du mit Overhead....
Mit Overhead meine ich den Unterschied zwischen den folgenden beiden Versionen (Vaporcode):Gut: Code: public csay(Timer,Repeat,HLName,HLParam) { new Msg[MAX_TEXT_LENGTH]; convert_string(Msg, HLParam, sizeof(Msg)); centersay(Msg,10,0,255,0); } public plugin_init() { /* irgendwas hier */ set_timer("csay", zeit, 0, Message); return PLUGIN_CONTINUE; }Schlecht: Code: public admin_csay(HLCommand,HLData,HLUserName,UserIndex) { new Color[MAX_DATA_LENGTH]; new Command[MAX_COMMAND_LENGTH]; new Data[MAX_DATA_LENGTH]; new Message[MAX_DATA_LENGTH]; new User[MAX_NAME_LENGTH]; convert_string(HLCommand,Command,MAX_COMMAND_LENGTH); convert_string(HLData,Data,MAX_DATA_LENGTH); convert_string(HLUserName,User,MAX_NAME_LENGTH); strbreak(Data,Color,Message,MAX_DATA_LENGTH); if (streq(Color,"red")==1) { centersay(Message,10,250,10,10); } else if ( streq(Color, "blue")==1) { centersay(Message,10,10,10,250); } else if ( streq(Color, "green")==1) { centersay(Message,10,10,250,10); } else if ( streq(Color, "white")==1) { centersay(Message,10,250,250,250); } else if ( streq(Color, "yellow")==1) { centersay(Message,10,250,250,10); } else if ( streq(Color, "purple")==1) { centersay(Message,10,250,10,250); } else { centersay(Data,10,15,250,10); } log_command(User,Command,Data); return PLUGIN_HANDLED; } public wassagen(Timer,Repeat,HLName,HLParam) { new Msg[MAX_TEXT_LENGTH]; convert_string(Msg, HLParam, sizeof(Msg)); exec("admin_command admin_csay ebbes"); } public plugin_init() { /* irgendwas hier */ set_timer("wassagen", zeit, 0, Message); return PLUGIN_CONTINUE; } |
Seite 1 von 3 | Alle Zeiten sind UTC+01:00 |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |