Kleiner Problem mit Linux Scripten

Talian

better more than a little
Hallo,

ich habe meine Server nun vollständig mit FreeBSD umgestellt, und nun ein Problem mit einigen Scripten die unter Linux tadellos liefen. Ein Kunde von mir der auf meinem Server ein Forum betreibt braucht für seine Dienste eine Linux Bash für Scripte. Die Scripte dienen dazu um User zu Blocken die beim Spielen mit Counter Strike Source bescheißen.

Wie muss ich die Rechte verteilen damit die Scripte ausgeführt werden können? Oder reicht es dem User nur Wheel zu geben?

Die gesamten Scripte fangen mit #!bin/sh an, und beim Start des Programms kommt folgende Fehlermeldung:

-su: ./update_server_block_protected: /bin/bash: Defekter Interpreter: Datei oder Verzeichnis nicht gefunden

Wenn ich mit sh starte, startet zwar etwas bleibt aber leider hängen.

Ich hoffe auf schnelle Hilfe, und ich hoffe das mir überhaupt geholfen werden kann! ^^

MfG

Tali

PS. Ich habe mit leider in der Überschrift mit einem kleines Rechtschreibfehler vertan, kann das bitte ein Mod. verbessern.
 
Nun, das Skript scheint bash im Verzeichnis /bin zu vermissen. Vorausgesetzt, du hast bash unter FreeBSD installiert, sollte es in /usr/local/bin zu finden sein...
 
Nun, das Skript scheint bash im Verzeichnis /bin zu vermissen. Vorausgesetzt, du hast bash unter FreeBSD installiert, sollte es in /usr/local/bin zu finden sein...

Ja, ich habe Bash für einen User installiert, und auch per chsh angepasst.

Also muss ich den Scripten nur den Pfad mitteilen, und ohne was an den Rechten ändern zu müssen?

MfG

Tali
 
Keine Ahnung, ich würde mal probieren, ob das dann mit dem angepassten Pfad funktioniert.
Alternativ könntest du auch mal "#!/bin/sh" in die Skripts schreiben. Das ist ja die normale Shell unter FreeBSD. Es kommt eben drauf an, was das Skript macht und ob irgendwelche speziellen Befehle benutzt werden...
 
Keine Ahnung, ich würde mal probieren, ob das dann mit dem angepassten Pfad funktioniert.
Alternativ könntest du auch mal "#!/bin/sh" in die Skripts schreiben. Das ist ja die normale Shell unter FreeBSD. Es kommt eben drauf an, was das Skript macht und ob irgendwelche speziellen Befehle benutzt werden...

Nein, die Scripte benötigen keine Root Rechte, da würde ich mich auch gegen wehren. Ich denke die Scripte müssen einfach nur angepasst werden.

Danke für die schnelle Hilfe.

MfG

Tali
 
Du kannst entweder den Kampf gegen die Windmühlen führen oder aufgeben und nen Symlink auf /usr/local/bin/bash in /bin legen.
 
Code:
sed s'/\!\#\/bin\/bash/\#\!\/usr\/bin\/env\ bash/'g LINUXBASHSCRIPT
Funktioniert natürlich nur, wenn auch eine bash irgendwo im Pfad installiert ist, dann ist aber egal, ob die bash in /bin/bash, oder /usr/local/bin/bash liegt.
 
Code:
sed s'/\!\#\/bin\/bash/\#\!\/usr\/bin\/env\ bash/'g LINUXBASHSCRIPT
Funktioniert natürlich nur, wenn auch eine bash irgendwo im Pfad installiert ist, dann ist aber egal, ob die bash in /bin/bash, oder /usr/local/bin/bash liegt.

...und wenn dies das einzige Problem dabei ist.

Es ist ja so, dass "unter LINUX" noch gar nichts sagt. Ich meine, wenn diese Scripts auf einer Plattform, auf einem bestimmten GNU/Linux gelaufen sind und dabei in der bash abgearbeitet wurden, dann muss das nicht bedeuten, dass sie auf einem anderen GNU/Linux ebenfalls funktionieren, geschweige denn auf einem vollkommen anderen System. Oft sind die Pfade zu Tools sehr verschieden, manchmal gibt es die gewünschten Tools noch/gar nicht auf dem System und dann können sie auch noch unterschiedlich funktionieren.
All das in einem Script vorab zu testen ist eine ziemliche Arbeit, ein Aufwand der meist nicht gerechtfertigt ist und einfacher passt man wohl meist das Script an das neue System an.
Denke ich mal so als unbedarfter Zuschauer bei solchen Sachen.

Also, für einen produktiven Betrieb wäre ich extrem vorsichtig damit NUR einen Link zu setzen oder den Pfad zur bash in den Scripten anzupassen. Da würde ich erst genauer hinsehen.
 
Weiterer kleiner Fallstrick: bei kommerziellen Linux Spielen wird manchmal mit md5sum überprüft. FreeBSD verwendet hingegen md5.
In den Ports gibt es sysutils/coreutils, die enthalten unter anderem gmd5sum. Bitte das "g" beachten, das als GNU Präfix steht.
 
Weiterer kleiner Fallstrick: bei kommerziellen Linux Spielen wird manchmal mit md5sum überprüft. FreeBSD verwendet hingegen md5.
In den Ports gibt es sysutils/coreutils, die enthalten unter anderem gmd5sum. Bitte das "g" beachten, das als GNU Präfix steht.

Hallo, und danke für den Hinweis.

Wir hosten auf diesem Server keine Spiele sondern betreiben ein AntiCheat Forum, auf unserem Server läuft eine Datenbank in der Spieler eingetragen und gesperrt werden, wer sich das Smac Tool für CSS für seinen Server holt ist geschützt durch unseren Server. Wir versuchen Europaweit ein weiteres Anti Cheat Netz aufzubauen

Link ====> Smacbans.com.
 
Zurück
Oben