Anzeige:
Ergebnis 1 bis 13 von 13

Thema: Prozess im Kontext eines anderen Users starten

  1. #1
    ArchLinux
    Registriert seit
    Dec 2003
    Beiträge
    57

    Lightbulb Prozess im Kontext eines anderen Users starten

    Hallo,
    wie kann ich, z.B. als root, einen beliebigen Prozess (genauer genommen einen Teamspeak-Server) als anderer User laufen lassen?
    Geht das irgendwie mittels suid o.ä.?

    Dankbar für alle Antworten,
    searinox

  2. #2
    affenkopp
    Registriert seit
    Aug 2003
    Ort
    62.80.113.200#linuxforen.de
    Beiträge
    2.689
    Bei Servern gibts da noch einiges zu beachten, aber du kannst das sowohl mit suid als auch mit su lösen

    EDIT: Löschen bitte, hab zu früh abgeschickt
    Geändert von Hun (02.11.04 um 17:29 Uhr)
    GPG-KeyID: 0xF9C481FD

  3. #3
    affenkopp
    Registriert seit
    Aug 2003
    Ort
    62.80.113.200#linuxforen.de
    Beiträge
    2.689
    Bei Servern gibts da noch einiges zu beachten, aber du kannst das sowohl mit suid als auch mit su lösen

    für suid: man chmod
    für su: su user -c bla
    GPG-KeyID: 0xF9C481FD

  4. #4
    ArchLinux
    Registriert seit
    Dec 2003
    Beiträge
    57
    Zitat Zitat von Hun
    Bei Servern gibts da noch einiges zu beachten, aber du kannst das sowohl mit suid als auch mit su lösen
    Was genau ist denn zu beachten?

  5. #5
    Registrierter Benutzer Avatar von Terran Marine
    Registriert seit
    Mar 2003
    Ort
    Hanau
    Beiträge
    1.406
    Nabend,

    geht einfach per su -c Befehl User

    Gruß
    Terran

    Forum Fachinformatiker.de
    Deutschlands erste Fachinformatiker-Community (seit 1999)

    LPIC 1 zertifiziert :)

  6. #6
    affenkopp
    Registriert seit
    Aug 2003
    Ort
    62.80.113.200#linuxforen.de
    Beiträge
    2.689
    Zum Bleistift dass man normalerweise als user keine server starten kann
    GPG-KeyID: 0xF9C481FD

  7. #7
    Registrierter Benutzer Avatar von HirschHeisseIch
    Registriert seit
    Nov 2002
    Beiträge
    3.276
    Zitat Zitat von Hun
    Zum Bleistift dass man normalerweise als user keine server starten kann
    Normalerweise kann man als User Server starten, wenn der Port auf dem der Server lauschen soll > 1024 ist
    RTFM you have to, young padawan.

  8. #8
    affenkopp
    Registriert seit
    Aug 2003
    Ort
    62.80.113.200#linuxforen.de
    Beiträge
    2.689
    Das stimmt

    Bei teamspeak weiß ichs net, aber zumindest die daemons die ich üblicherweise laufen hab sind alle im bereich 1-500

    Und bei um die 30000 die ganzen browser und so zeugs
    GPG-KeyID: 0xF9C481FD

  9. #9
    ArchLinux
    Registriert seit
    Dec 2003
    Beiträge
    57

    Geht so nicht

    Hm,
    ich habe es jetzt mit beiden Vorschlägen versucht, keine hat soweit funktioniert.
    Hier meine Vorgehensweise:

    - Neuen User tss2 angelegt
    - Neue Gruppe tss2 angelegt und user der Gruppe hinzugefügt
    zuerst mit suid versucht:

    Code:
    # chown tss2:tss2 teamspeak2-server_startscript
    # chmod u+s teamspeak2-server_startscript
    Dann Startversuch:

    Code:
    # ./teamspeak2-server_startscript start
    ps aux ergibt:

    Code:
    root     18046  0.0  0.1 18640 1796 pts/15   S    17:00   0:00 /opt/tss2_rc2/server_linux -PID=tsserver2.pid
    der server läuft also unter dem root-account.

    2. Versuch mit su

    Code:
    # su tss2 -c teamspeak2-server_startscript start
    Ergebnis: keinerlei ausgabe, nichts wird gestartet.

    Was mache ich immer noch falsch?
    Danke für jede Hilfe,
    Searinox

  10. #10
    affenkopp
    Registriert seit
    Aug 2003
    Ort
    62.80.113.200#linuxforen.de
    Beiträge
    2.689
    schau dir mal das startscript genauer an, vielleicht besteht das auf rootrechten
    GPG-KeyID: 0xF9C481FD

  11. #11
    ArchLinux
    Registriert seit
    Dec 2003
    Beiträge
    57
    Hier das startscript:

    Code:
    #! /bin/bash
    # Copyright (c) 2004 TeamSpeak team   All rights reserved.
    #
    # Author: pwk.linuxfan 2004
    #
    
    SERVER=/opt/tss2_rc2/server_linux
    
    case "$1" in
    	start)
    		if [ -e tsserver2.pid ]; then
    			echo "tsserver2.pid already exists...server already started ?";
    			echo "If you are sure the server is not running, delete tsserver2.pid"
    			exit 1
    		else
    			if [ "$UID" = "0" ]; then
    				echo WARNING ! For security reasons we advise: DO NOT RUN THE SERVER AS ROOT
    				for c in $(seq 1 10); do
    					echo -n "!"
    					sleep 1
    				done
    				echo !
    			fi
    			echo "starting the teamspeak2 server"
    			if [ -e $SERVER ]; then
    				if [ ! -x $SERVER ]; then
    					echo "server_linux is not executable, trying to set it"
    					chmod u+x $SERVER
    				fi
    				if [ -x $SERVER ]; then
    					$SERVER -PID=tsserver2.pid
    				else
    					echo "server_linux is not executable, fix this"
    					exit 4
    				fi
    			else
    				echo "Couldnt find server_linux"
    				exit 5
    			fi
    		fi
    	;;
        stop)
    		if [ -e tsserver2.pid ]; then
    			echo -n "stopping the teamspeak2 server"
    			if ( kill -TERM `cat tsserver2.pid` ); then
    				for c in $(seq 1 300); do
    					if [ -e tsserver2.pid ]; then
    						echo -n "."
    						sleep 1
    					fi
    				done
    			fi
    			if [ -e tsserver2.pid ]; then
    				echo "server does not shutdown cleanly - killing"
    				kill -KILL `cat tsserver2.pid`
    				rm tsserver2.pid
    				sleep 5
    			else
    				echo "done"
    			fi
    		else
    			echo "tsserver2.pid is missing, no started server ?"
    			exit 7
    		fi
    	;;
    	restart)
    		$0 stop && $0 start || exit 1
    	;;
    	status)
    		if [ -e tsserver2.pid ]; then
    			echo "the server seems to be running"
    			exit 0
    		else
    			echo "the server seems to be stopped"
    			exit 3
    		fi
    	;;
    	passwords)
    		if [ -e server.log ]; then
    			date=$(cat server.log | grep "admin account info: username: admin" | tail -n 1 | sed "s/^\([0-9]\+-[0-9]\+-[0-9]\+ [0-9]\+:[0-9]\+:[0-9]\+\).*$/\1/")
    			spass=$(cat server.log | grep "superadmin account info: username: superadmin" | tail -n 1 | sed "s/^.*username: superadmin password: \([a-z0-9]\+\).*$/\1/")
    			pass=$(cat server.log | grep "admin account info: username: admin" | tail -n 1 | sed "s/^.*username: admin password: \([a-z0-9]\+\).*$/\1/")
    			echo "Following passwords were generated on $date"
    			echo "superadmin = \"$spass\""
    			echo "admin      = \"$pass\""
    		else
    			echo "server.log not found, maybe you did not start the server yet ?" 
    			exit 1
    		fi
    	;;
    	*)
    		echo "Usage: $0 {start|stop|restart|status|passwords}"
    		exit 2
    esac
    exit 0
    Ich bin kein Bash-Guru, aber für mich siehts eher so aus, als würde das Script ziemlich gerne als nicht-root ausgeführt werden.
    Vor allem wegen dieser Meldung:

    Code:
    WARNING ! For security reasons we advise: DO NOT RUN THE SERVER AS ROOT
    Sonst noch Ideen, wie ich es zum laufen bekommen könnte?
    Danke,
    Searinox

  12. #12
    affenkopp
    Registriert seit
    Aug 2003
    Ort
    62.80.113.200#linuxforen.de
    Beiträge
    2.689
    starts halt mal einfach als user und schau ob's sich beschwert
    GPG-KeyID: 0xF9C481FD

  13. #13
    ArchLinux
    Registriert seit
    Dec 2003
    Beiträge
    57

    Gelöst, Juchu :)

    Habe es jetzt hinbekommen, indem ich den teamspeak-user gelöscht und von Hand (statt mit webmin) neu angelegt habe.
    Jetzt funktioniert su ausgezeichnet.
    Scheint irgendwas mit der user-config gewesen zu sein

    Danke nochmal an alle

Ähnliche Themen

  1. Deus Ex: Fehler beim Start
    Von Diablo im Forum Emulatoren für Spiele
    Antworten: 11
    Letzter Beitrag: 31.05.04, 18:36
  2. problem mit isdn unter fedora core/planet ccrma kernel
    Von MarcusLiebig im Forum System installieren und konfigurieren
    Antworten: 0
    Letzter Beitrag: 07.02.04, 13:04
  3. Samba SMB Daemon startet nach SuSE-Update
    Von Carry-2 im Forum Linux in heterogenen Netzen
    Antworten: 10
    Letzter Beitrag: 05.10.03, 10:58
  4. KMail-Verzeichnis müllt zu.
    Von Thomas Mitzkat im Forum Anwendungen Allgemein, Software
    Antworten: 5
    Letzter Beitrag: 30.08.03, 12:04
  5. ./configure
    Von Gold Digger im Forum Kompilieren von Kernel und Sourcen
    Antworten: 8
    Letzter Beitrag: 24.08.03, 12:23

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •