DS412+ und Teamspeak 3

Status
Für weitere Antworten geschlossen.
Na dann herzlich Willkommen hier im Forum. :)
 
Ich antworte mir zu meiner Frage mal selbst. Nachdem ich einige Zeit herumexperimentiert habe, bin ich auf des Rätels Lösung gekommen. Der Grund warum der TS3 Server trotz Aufruf mit SU $USER nicht starten wollte lag an zwei Dingen:

Erstens muss auf der Konsole eine kleine Vorarbeit geleistet werden. Die Installation des .spk Paketes wird intern durch den User root durchgeführt. Das hat zur Folge, dass die Programmverzeichnisse unter '/var/packages/TS3-Server/target/teamspeak3-server_linux-x86' auch dem User root gehören. Damit der Server durch einen unprivelegierten Benutzer gestartet werden kann, müssen die Besitzverhältnisse des Verzeichnis 'teamspeak3-server_linux-x86' rekursiv geändert werden:
Rich (BBCode):
chown -R USER:GROUP teamspeak3-server_linux-x86

Zweitens hatte ich vergessen, dass der unpriveligierte User nach Aufruf von SU $USER ja in seiner eigenen Umgebung und demzufolge in seinem Homeverzeichnis startet. In dem Standard Start-Stop-Skript erfolgt aber der CD-Befehl zum Wechsel in das TS-Verzeichnis bereits vor dem Startbefehl, so dass der unpriveligierte User das Binary nicht finden konnte. Man muss also dem Startbefehl auch noch einen CD-Befehl mitgeben:
Rich (BBCode):
su -c "cd $DIR && $DIR/ts3server_startscript.sh start $1" - $USER
$USER ist durch den Namen des unpriveligierten Benutzers zu ersetzen.

Durch diesen Aufruf startet der TS3-Server nun mit einem unprivelegierten Benutzer.
Aus Sicherheitsgründen ist das aus meiner Sicht ein deutlicher Mehrwert.
 
Ich antworte mir zu meiner Frage mal selbst. Nachdem ich einige Zeit herumexperimentiert habe, bin ich auf des Rätels Lösung gekommen. Der Grund warum der TS3 Server trotz Aufruf mit SU $USER nicht starten wollte lag an zwei Dingen:

Erstens muss auf der Konsole eine kleine Vorarbeit geleistet werden. Die Installation des .spk Paketes wird intern durch den User root durchgeführt. Das hat zur Folge, dass die Programmverzeichnisse unter '/var/packages/TS3-Server/target/teamspeak3-server_linux-x86' auch dem User root gehören. Damit der Server durch einen unprivelegierten Benutzer gestartet werden kann, müssen die Besitzverhältnisse des Verzeichnis 'teamspeak3-server_linux-x86' rekursiv geändert werden:
Rich (BBCode):
chown -R USER:GROUP teamspeak3-server_linux-x86

Zweitens hatte ich vergessen, dass der unpriveligierte User nach Aufruf von SU $USER ja in seiner eigenen Umgebung und demzufolge in seinem Homeverzeichnis startet. In dem Standard Start-Stop-Skript erfolgt aber der CD-Befehl zum Wechsel in das TS-Verzeichnis bereits vor dem Startbefehl, so dass der unpriveligierte User das Binary nicht finden konnte. Man muss also dem Startbefehl auch noch einen CD-Befehl mitgeben:
Rich (BBCode):
su -c "cd $DIR && $DIR/ts3server_startscript.sh start $1" - $USER
$USER ist durch den Namen des unpriveligierten Benutzers zu ersetzen.

Durch diesen Aufruf startet der TS3-Server nun mit einem unprivelegierten Benutzer.
Aus Sicherheitsgründen ist das aus meiner Sicht ein deutlicher Mehrwert.

Kannst Du das bitte genauer ausführen? Finde die Idee gut, aber ich bin nicht sicher wo genau ich Deinen Code eingeben muss.
Ich lege also einen neuen Nutzer an und gebe diesem möglichst keine Rechte (also nur für sein home). Gebe ihm dann über telnet/ssh Besitzerrechte (Deine erste Codezeile) und was mache ich mit der zweiten Zeile? Gebe ich die in das start-stop skript ein und wenn ja wo oder ganz woanders? Danke schonmal!
 
Ja, dazu musst du das start-stop-skript bearbeiten. Das Original Skript sieht ja folgendermaßen aus:

Rich (BBCode):
#!/bin/sh
###BEGIN INIT INFO########################
#
# start-stop-status
# Starts, stops the TS3 server and
# reports status to the package manager
#
###END INIT INFO##########################


DIR="/var/packages/TS3-Server/target/teamspeak3-server_linux-amd64"
cd "$DIR"

case $1 in
  start)
   "$DIR/ts3server_startscript.sh" start &
    exit $?
  ;;
  stop)
    "$DIR/ts3server_startscript.sh" stop &
    exit $?
  ;;
  status)
    if [ -e "$DIR/ts3server.pid" ]; then
      if ( kill -0 $(cat "$DIR/ts3server.pid") 2> /dev/null ); then
        exit 0  # Server is running
      else
        exit 1  # Server seems to have died
      fi
    else
      exit 2  # No server running (ts3server.pid is missing)
    fi
  ;;
  log)
    cat logs/*.log > /tmp/ts3.log
    echo "/tmp/ts3.log";
    exit 0
  ;;
  *)
    exit 0
  ;;
esac

Die Zeile die den Server startet lautet:
Rich (BBCode):
"$DIR/ts3server_startscript.sh" start &

Diese Zeile habe ich durch die Zeile
Rich (BBCode):
su -c "cd $DIR && $DIR/ts3server_startscript.sh start $1" - $USER
ersetzt ($USER musst du wie gesagt durch deinen eigenen Benutzer ersetzen) und daraus dann das .spk-Paket gebaut.
 
Super danke!

Jetzt hab ich allerdings auch das Problem, dass ich das Paket nicht mehr ausführen kann.
Ich habe das start-stop-skript mit vi editiert und denke auch das das geklappt hat.
Ich denke, dass ich bei der Zeile davor schon einen Fehler gemacht habe.
Muss ich das USER:GROUP durch etwas ersetzen?

2012-11-17 12 22 18.png

Habe das mit dem teamspeakuser gemacht und jetzt gehört der nicht mehr root.
Wahrscheinlich kann ich das deswegen nicht starten.
Wie kann ich das rückgängig machen und was muss ich tatsächlich dort eingeben?

thx 4 help! :)


edit: So habe jetzt statt USER:GROUP wieder root eingesetzt. Danach stand da als Besitzer root 1000.
Habe das Paket von borg2k genommen, entpackt, die Zeile im script geändert und wieder als spk gespeichert.
Anschließend den alten ts3 server deinstalliert und das neue Paket installiert. Funktioniert!
Die Rechte sehen jetzt so aus: 2012-11-17 12 59 42.png Kann ich irgendwie überprüfen ob das jetzt auch wirklich geklappt hat. Ich habe irgendwie das Gefühl, dass da was mit den Rechten noch nicht stimmt, aber da habe ich leider zu wenig Ahnung von.
 
Zuletzt bearbeitet:
Wenn der User bei dir 'teamspeakuser' heißt, dann musst du die Rechte mit einem
Rich (BBCode):
chown -R teamspeakuser:users teamspeak3-server_linux-x86
auf das Verzeichnis teamspeak3-server_linux-x86 setzen. Das Verzeichnis und alle Unterdateien gehören danach dem User 'teamspeakuser' und der Gruppe 'users'. Benutzer und Gruppe 1000 ist falsch.
 
Super danke Dir! Ich glaube jetzt funktioniert alles! :)
 
Hallo

Wolte auch TS3 auf meiner DS 412+ installieren. Habe die 2 Änderungen vorgenommen von borg2k, kann das Paket jetzt auch installieren jedoch bekommen ich danach immer noch die Fehlermeldung ungültiges Dateiformat.

Und kann die Datei von borg2k nicht herunterladen kommt immer Proxy Error.
 
Das der Download bei dir nicht geht muss an dir liegen, bei mir klappt der Download weiterhin.
 
Jetzt geht er auch und funktioniert auch auf der ds vielen dank :)
 
borg2k version

Hi. Wäre es möglich das borg2k den link zu seiner Datei noch mal posten kann, denn der link funktioniert leider nicht mehr.
thx
 
geht auch weiterhin, nur atm scheinen die Synology Server (gofile.me) über die Verbindung zu meiner DS aufgebaut wird ein bisschen zickig zu sein, bei mir hats ebend bei 1 von 3 versuchen geklappt.
 
Zickig ist gut ^^ Ich probiere es weiterhin, Windows & Mac. Irgendwann muss es ja klappen ^^
 
ansonsten gib mir deine email-adresse per PM, dann schicke ich dir das File ist nur 4,4 MB groß.
 
Mail ist raus.
 
Funktioniert wunderbar. Danke nochmal! Was muss ich denn meinen Freunden geben damit die sich von außerhalb (übers Internet) einlogen können? Klar ich könnte ihnen jeden mal mein Ip geben, aber da ich ja dies mydns dienst von synology aktiviert habe müsste das doch auch einfacher gehen, oder nicht? Also eine stetige ip sozusagen.
 
also erstmal musst du eine Portweiterleitung im Router konfigurieren und dann deine DDNS adresse inkl. Port deinen Freunden mitteilen, dass müsste es im groben gewesen sein.

ist eigentlich wie bei allen Diensten das gleiche Schema.
 
Die portweiterleitung habe ich schon gemacht. Aber die ddns Adresse ist ja mit Buchstaben. Also Blabla.synology.me

Funktioniert das denn im ts clienten?
 
klar warum denn nicht, gibt doch auch kommerzielle TS-Server mit URL statt IP.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat