DS412+ und Teamspeak 3

borg2k

Benutzer
Mitglied seit
08. Mai 2012
Beiträge
1.789
Punkte für Reaktionen
0
Punkte
0
Na dann herzlich Willkommen hier im Forum. :)
 

Wolfman_II

Benutzer
Mitglied seit
14. Apr 2009
Beiträge
98
Punkte für Reaktionen
2
Punkte
8
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.
 

Piffer

Benutzer
Mitglied seit
10. Okt 2011
Beiträge
43
Punkte für Reaktionen
1
Punkte
8
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!
 

Wolfman_II

Benutzer
Mitglied seit
14. Apr 2009
Beiträge
98
Punkte für Reaktionen
2
Punkte
8
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.
 

Piffer

Benutzer
Mitglied seit
10. Okt 2011
Beiträge
43
Punkte für Reaktionen
1
Punkte
8
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:

Wolfman_II

Benutzer
Mitglied seit
14. Apr 2009
Beiträge
98
Punkte für Reaktionen
2
Punkte
8
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.
 

sking93

Benutzer
Mitglied seit
23. Nov 2012
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
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.
 

borg2k

Benutzer
Mitglied seit
08. Mai 2012
Beiträge
1.789
Punkte für Reaktionen
0
Punkte
0
Das der Download bei dir nicht geht muss an dir liegen, bei mir klappt der Download weiterhin.
 

belfour

Benutzer
Mitglied seit
29. Nov 2012
Beiträge
77
Punkte für Reaktionen
0
Punkte
0
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
 

borg2k

Benutzer
Mitglied seit
08. Mai 2012
Beiträge
1.789
Punkte für Reaktionen
0
Punkte
0
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.
 

belfour

Benutzer
Mitglied seit
29. Nov 2012
Beiträge
77
Punkte für Reaktionen
0
Punkte
0
Zickig ist gut ^^ Ich probiere es weiterhin, Windows & Mac. Irgendwann muss es ja klappen ^^
 

borg2k

Benutzer
Mitglied seit
08. Mai 2012
Beiträge
1.789
Punkte für Reaktionen
0
Punkte
0
ansonsten gib mir deine email-adresse per PM, dann schicke ich dir das File ist nur 4,4 MB groß.
 

borg2k

Benutzer
Mitglied seit
08. Mai 2012
Beiträge
1.789
Punkte für Reaktionen
0
Punkte
0
Mail ist raus.
 

belfour

Benutzer
Mitglied seit
29. Nov 2012
Beiträge
77
Punkte für Reaktionen
0
Punkte
0
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.
 

borg2k

Benutzer
Mitglied seit
08. Mai 2012
Beiträge
1.789
Punkte für Reaktionen
0
Punkte
0
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.
 

belfour

Benutzer
Mitglied seit
29. Nov 2012
Beiträge
77
Punkte für Reaktionen
0
Punkte
0
Die portweiterleitung habe ich schon gemacht. Aber die ddns Adresse ist ja mit Buchstaben. Also Blabla.synology.me

Funktioniert das denn im ts clienten?
 

borg2k

Benutzer
Mitglied seit
08. Mai 2012
Beiträge
1.789
Punkte für Reaktionen
0
Punkte
0
klar warum denn nicht, gibt doch auch kommerzielle TS-Server mit URL statt IP.
 


 

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