Ein neues Thema erstellen  Auf das Thema antworten  [ 14 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Per passwordeingabe adminrechte
BeitragVerfasst: 08.10.2004, 22:16 

Registriert: 08.10.2004, 22:09
Beiträge: 11
Halli hallo,
ich mochte einen lan- cw server ans laufen bringen. Jeweils einer soll adminrechte bekommen wenn er ein pw eingibt. Kann mir jemand weiterhelfen, das das nur per pw eingabe klappt. Also name egal ip egal wonid sowieso egal ....wäre nice
dakeschön


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 08.10.2004, 22:38 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
Hmmm, wenn ich das richtig verstanden habe, müsste da was in Richtung admin_highlander und Regex-Nutzung in der users.ini rauskommen.

Könntest Du mal ein Beispiel geben?

_________________
Der schwarze Ritter triumphiert immer...
WING-Clan


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 09.10.2004, 12:42 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
hm... :)

es gibt also ein globales Passwort und wer es als erster eingibt, der ist dann Admin?

Also eine Plugin-Idee:

1. users.ini ist am Anfang leer
2. nach globaler Passworteingabe wird der Spielername/IP:zufällig generiertes Password:131071 in die users.ini eingetragen
3. ein reload wird durchgeführt
4. ein admin_login "zufällig generiertes Password" wird bei dem Spieler durchgeführt. Spieler ist Admin.
5. verlässt der Spieler den Server, wird die users.ini wieder geleert und eine Freigabe für ein neuen login durchgeführt.

Leider ist das mit dem Spielernamen so eine Sache...Bei Namensänderung im Spiel sind die Rechte wieder weg und er muss erneut ein login ausführen. (Er darf als einzigster den login erneut durchführen!)

Ich probiere es doch mal mit der IP des Spielers.

*Mit der IP klappt es auf jeden Fall*

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 09.10.2004, 12:52 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
Also der Spieler, der als erster login test in der Konsole eingibt, wird in die users.ini geschrieben.

Über Sinn/Unsinn des Plugins kann jetzt diskutiert werden :)
Code:
/*
Command: login (ACCESS_ALL)
1. get users_file
2. login global password
2.1 create random password
2.2 write IP:random password:131071 to users.ini
2.3 reload()
2.4 execute admin_login "random password" by client
*/

#include <string>
#include <admin>
#include <adminlib>

#define ACCESS_CONSOLE 131072

new g_Version[MAX_TEXT_LENGTH]="0.8";

new g_GlobalPassword[MAX_TEXT_LENGTH];

new g_UsersIni[MAX_TEXT_LENGTH];
new g_UsersPassword[10];
new g_login;
new g_User[MAX_PLAYERS];

public plugin_init() {
	plugin_registerinfo("Became Admin","Enter only global password to become admin",g_Version);
	plugin_registercmd("login","login",ACCESS_ALL,"login <global password>: became admin");
	getstrvar("users_file",g_UsersIni,MAX_TEXT_LENGTH);
	get_vaultdata("GLOBAL_PASSWORD",g_GlobalPassword,MAX_TEXT_LENGTH);
	
	//command can only be used from server console
	plugin_registercmd("change_login","change_login",ACCESS_CONSOLE,"change_login <new global password>: change global password");
	return PLUGIN_CONTINUE;
}

public change_login(HLCommand,HLData,HLUserName,UserIndex) {
	new Data[MAX_DATA_LENGTH];
	new Text[MAX_TEXT_LENGTH];
	convert_string(HLData,Data,MAX_DATA_LENGTH);
	set_vaultdata("GLOBAL_PASSWORD",Data);
	snprintf(Text,MAX_DATA_LENGTH,"[ADMIN LOGIN] Changed global password '%s' to '%s'",g_GlobalPassword,Data);
	log(Text);
	remove_admin();
	strcpy(g_GlobalPassword,Data,MAX_TEXT_LENGTH);
	return PLUGIN_HANDLED;
}

public login(HLCommand,HLData,HLUserName,UserIndex) {
	if(!g_login || g_User[UserIndex]){
		new Data[MAX_DATA_LENGTH];
		new User[MAX_NAME_LENGTH];
		new IP[MAX_NAME_LENGTH];
		convert_string(HLData,Data,MAX_DATA_LENGTH);
		if(strcmp(Data,g_GlobalPassword)==0){
			convert_string(HLUserName,User,MAX_NAME_LENGTH);
			get_userIP(User,IP,MAX_NAME_LENGTH);
			resetfile(g_UsersIni);
			snprintf(g_UsersPassword,10,"%i%i%i%i%i",random(9),random(9),random(9),random(9),random(9));
			snprintf(Data,MAX_DATA_LENGTH,"%s:%s:131071",IP,g_UsersPassword);
			writefile(g_UsersIni,Data,-1);
			g_User[UserIndex]=1;
			g_login=1;
			reload();
			snprintf(Data,MAX_TEXT_LENGTH,"admin_login ^"%s^"",g_UsersPassword);
			execclient(User,Data);
		}else{
			selfmessage("[ADMIN LOGIN] Sorry. Wrong password!");
		}
	}else{
		selfmessage("[ADMIN LOGIN] Sorry. Someone else became admin!");
	}
	return PLUGIN_HANDLED;
}

public plugin_disconnect(HLUserName,UserIndex) {
	remove_admin();
	return PLUGIN_CONTINUE;
}
	
public plugin_connect(HLUserName,HLIP, UserIndex) {
	remove_admin();
	return PLUGIN_CONTINUE;
}
		
remove_admin(){
	new i;
	new maxplayers=maxplayercount();
	for(i=1;i<=maxplayers;i++){
		if(g_User[i]){
			g_login=0;
			g_User[i]=0;
			resetfile(g_UsersIni);
			reload();
		}
	}
}

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Zuletzt geändert von Sir Drink a lot am 09.10.2004, 13:56, insgesamt 3-mal geändert.

Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 09.10.2004, 13:16 

Registriert: 08.10.2004, 22:09
Beiträge: 11
vielen dank für eure ultraschnelle hilfe. ich will das ganze mal an einem bespiel verdeutlichen
Auf einer lan soll ein clanwar auf einem vom lanveranstalter gestellen server ausgetragen werden. Ein Spieler aus dem match soll als admin fungieren und die für nen cw wichtigen befehle ausführen drüfen die da wären restart round, map, csay
allerdings will ich nicht auf dem server vorher die rechte für den spieler erstellen, sondern ihm nur ien pw geben womit er dann automatisch die richtigen rechte bekommt.
das ganze soll auf einem 1.5 linux server laufen

ich hätte das vielleicht vorher schon so beschreiben sollen :roll:


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 09.10.2004, 13:32 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
ok. das Plugin oben ermittelt und trägt alles automatisch in die users.ini ein, wenn ein Spieler das Passwort mit login passwort in der Konsole eingibt und verifiziert ihn dann auch automatisch als Admin.

Er muss nur das login password auf jeder Map einmal in der Konsole ausführen.

Ok. Jetzt müsste man noch für den Server-Admin einen Befehl hinterlegen, damit er das globale Passwort auch ändern kann.

So..jetzt habe ich einen Befehl change_login <new password> eingebaut. Dieser Befehl kann aber nur direkt am Server in der Console ausgeführt werden. admin_cmd change_login "neues globales Password"

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 09.10.2004, 13:53 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
use_regex auf 1 stellen.

In users.ini:
.*:<Passwort>:<benötigte Accesslevel>

z.B. für den CW-Creator
.*:cwpass:256

Bitte mal ausprobieren. Das müsste eigentlich so funktionieren.

_________________
Der schwarze Ritter triumphiert immer...
WING-Clan


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 09.10.2004, 14:35 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
stimmt. Warum kompliziert, wenn es auch einfach geht :)
Das Regex funktioniert.
Im Accesslevel bitte nicht Reserved Nickname verwenden.
und admin_highlander auf 1 in der adminmod.cfg setzen

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 09.10.2004, 15:53 

Registriert: 08.10.2004, 22:09
Beiträge: 11
jetzt hab ich das problem das ich egal mit welchem name in den server joine gekickt werde weil der name reserviert ist


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 09.10.2004, 15:56 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
Zitat:
Im Accesslevel bitte nicht Reserved Nickname verwenden.
16384 darf in der Addition der Level nicht verwendet werden

Und der Befehl, um sich dann einzuloggen ist: admin_login <password aus der users.ini>

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 09.10.2004, 16:30 

Registriert: 08.10.2004, 22:09
Beiträge: 11
also ich habe da eingetragen .*:(password):66
geht auch alles wunderbar. Nur wenn ich jetzt noch einen nutzer anlege dann kommt wieder die message mit dem nickname reserved auch wenn der kein nick protect hat


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 09.10.2004, 16:45 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
Die zusätzlichen Nutzer müssen VOR dem .* Eintrag in die users.ini geschrieben werden.

_________________
Der schwarze Ritter triumphiert immer...
WING-Clan


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 09.10.2004, 17:16 

Registriert: 08.10.2004, 22:09
Beiträge: 11
ok war ne schwere geburt aber jetzt geht alles
vielen dank :)


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 09.10.2004, 17:55 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
NP. Schön, dass es jetzt klappt.
Ungewöhnliche Konfigurationen funktionieren meist nicht auf Anhieb. :)

_________________
Der schwarze Ritter triumphiert immer...
WING-Clan


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 14 Beiträge ] 


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de
Original Design von "[ Half-Life Admin Mod © Alfred Reynolds 2000-2003 ] - [ site design by Jägermeister ]"