Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ubuntu tietokoneissa => Aiheen aloitti: ihti - 08.08.06 - klo:12.50
-
Nettipalveluitahan ei pitäisi ajaa roottina mutta ainakin jotkut pitäisi asentaa esim /var -iin ja sudo:lla. Mikä on paras tapa laittaa näitä käynnistymään automaattisesti koneen käynnistyessä ns "jonkin toisen käyttäjän toimesta" ?
-
Nettipalveluitahan ei pitäisi ajaa roottina mutta ainakin jotkut pitäisi asentaa esim /var -iin ja sudo:lla. Mikä on paras tapa laittaa näitä käynnistymään automaattisesti koneen käynnistyessä ns "jonkin toisen käyttäjän toimesta" ?
Riippuu palvelusta. Monissa (kuten esim apache) on mahdollisuus määrittää minkä nimisellä käyttäjätunnuksella kyseistä palvelua ajetaan.
-
Ei ole apache, vaan esim TeamSpeak..
-
..niin miten se pitäisi tehdä?? Onko jollakin tiedossa jossakin howto? itse en kyllä löytänyt.
-
Ei ole apache, vaan esim TeamSpeak..
Joo tuo apache oli vain esimerkki. Mistä löydän tuon TeamSpeak:in asennus paketin?
-
Ei ole apache, vaan esim TeamSpeak..
Joo tuo apache oli vain esimerkki. Mistä löydän tuon TeamSpeak:in asennus paketin?
Se löytyy täältä:
ftp://ftp.freenet.de/pub/4players/teamspeak.org/releases/ts2_server_rc2_20201.tar.bz2
-
Käynnistysskriptien ajo tapahtuu roottina, eli siitä vaikka sudon/su:n kautta käynnistät kyseisen palvelimen ihan niin kuin roottinakin.
-
Käynnistysskriptien ajo tapahtuu roottina, eli siitä vaikka sudon/su:n kautta käynnistät kyseisen palvelimen ihan niin kuin roottinakin.
Siis tuvallisuuden maksimoimiseksi tässähän on ideana pyörittää palvelua sellaisella käyttäjällä jolla ei ole sallittua ajaa administrointikomentoja. Siis jos käyttää sudoa niin silloinhan se on melkein sama kuin ajaisi niitä roottina, eikö?
-
Käynnistysskriptien ajo tapahtuu roottina, eli siitä vaikka sudon/su:n kautta käynnistät kyseisen palvelimen ihan niin kuin roottinakin.
Siis tuvallisuuden maksimoimiseksi tässähän on ideana pyörittää palvelua sellaisella käyttäjällä jolla ei ole sallittua ajaa administrointikomentoja. Siis jos käyttää sudoa niin silloinhan se on melkein sama kuin ajaisi niitä roottina, eikö?
Se on sama. sudo vain vaihtaa käyttäjää väliaikaisesti. (minun tietääkseni ainakin)
-
Se on sama. sudo vain vaihtaa käyttäjää väliaikaisesti. (minun tietääkseni ainakin)
Jeps, eli sudo -u <käyttäjä> <komento>.
-
Eli itse ainakin asentasin tuon /usr/local kansion alle. Tekisin uuden käyttäjän tuota varten ja antaisin sille oikeudet tuohon kansioon.
Sitten laittaisin /etc/init.d/ kansioon tämän muokatun käynnistys skriptin: http://koti.mbnet.fi/~littleli/teamspeak2-server
ja asentaisin tuon TeamSpeak serverin käynnistymään kun kone käynnistetään komennolla: sudo update-rc.d teamspeak2-server defaults
-
Eli itse ainakin asentasin tuon /usr/local kansion alle. Tekisin uuden käyttäjän tuota varten ja antaisin sille oikeudet tuohon kansioon.
Sitten laittaisin /etc/init.d/ kansioon tämän muokatun käynnistys skriptin: http://koti.mbnet.fi/~littleli/teamspeak2-server
ja asentaisin tuon TeamSpeak serverin käynnistymään kun kone käynnistetään komennolla: sudo update-rc.d teamspeak2-server defaults
Tuossa käynnistys-skriptissäsi on kohta:
if [ "$UID" != "0" ]; then
echo ERROR: You are not root!
exit 1
Tarkoittaako se että teamspeakkia ei käynnistetä ellei tsuser ole admin? -Tarkoitushan on saada TS käyntiin nimenomaan ei-roottina.
Sitten toinen kymysys, että jos käyttää 'Preferences'-'Sesions'-'Startup programs'-listaa niin, että TS käynnistyy automaattisesti vasta sisäänkirjautuessa, niin sehän ei toimi kun komentoa ei anneta samasta hakemistosta käsin. Elikkä saako sinne asetettettua komennon mikä käynnistää TS:n ./teamspe...-tyylillä vai pitäisikö tehdä erillinen skriptitiedosto missä ensin mennään ko hakemistoon? (wintoosan battitiedoston tyyliä)
-
Tuossa käynnistys-skriptissäsi on kohta:
Tarkoittaako se että teamspeakkia ei käynnistetä ellei tsuser ole admin? -Tarkoitushan on saada TS käyntiin nimenomaan ei-roottina.
Ei pääse muut sisään tuohon kuin root, poista tuo IF-lohko niin se toiminee kaikilla käyttäjillä.
else
if [ "$UID" != "0" ]; then
echo ERROR: You are not root!
exit 1
tai vaihtoehtoisesti, vaihda 0:n tilalle halutun käyttäjän UID,
numero näkyy kun komentoriville sanoo echo $UID
jolloin vain ko. käyttäjä saa ajaa skriptiä.
eikäku, korjasin poistettavaa, else pitää poistaa ja fi jättää, jotta 1. if-lohko toimii ;)
-
Eli itse ainakin asentasin tuon /usr/local kansion alle. Tekisin uuden käyttäjän tuota varten ja antaisin sille oikeudet tuohon kansioon.
Sitten laittaisin /etc/init.d/ kansioon tämän muokatun käynnistys skriptin: http://koti.mbnet.fi/~littleli/teamspeak2-server
ja asentaisin tuon TeamSpeak serverin käynnistymään kun kone käynnistetään komennolla: sudo update-rc.d teamspeak2-server defaults
Tuossa käynnistys-skriptissäsi on kohta:
if [ "$UID" != "0" ]; then
echo ERROR: You are not root!
exit 1
Tarkoittaako se että teamspeakkia ei käynnistetä ellei tsuser ole admin? -Tarkoitushan on saada TS käyntiin nimenomaan ei-roottina.
Siis ideanahan tuossa oli se, että tuo sripti pitää ajaa roottina niin kuin yleensäkkin palveluiden käynnistys scriptit. Ja root ajaa sitten tuon komennon käyntiin tsuser käyttäjänä.
( sudo -u $TSUSER $SERVER -PID=$PIDFILE ) Ja tietysti se, että kun root ajaa sudo komennon niin salasanaa ei enää kysytä koska käyttäjä on jo root ;D
Sitten toinen kymysys, että jos käyttää 'Preferences'-'Sesions'-'Startup programs'-listaa niin, että TS käynnistyy automaattisesti vasta sisäänkirjautuessa,
Yleensä serveri palvelut ajetaan ylös koneen käynnistyessä root-käyttäjän toimesta, mutta haluat tuon välttämättä noin ajaa niin poista skriptistä rivit:
if [ "$UID" != "0" ]; then
echo ERROR: You are not root!
exit 1
fi
Ja varmista, että käyttäjällä jolla tuota ajetaan käyntiin on oikeudet käyttää sudoa ja tehdä kaikki muukin mitä skripti vaatii. Tosin nyt sudo komento kysyy salasanaa, joten se pitäisi pystyä jotenkin syöttämään skriptille.
niin sehän ei toimi kun komentoa ei anneta samasta hakemistosta käsin. Elikkä saako sinne asetettettua komennon mikä käynnistää TS:n ./teamspe...-tyylillä vai pitäisikö tehdä erillinen skriptitiedosto missä ensin mennään ko hakemistoon? (wintoosan battitiedoston tyyliä)
rivi: SERVER=/usr/local/tss2_rc2/server_linux
tekee sen, että tuo skripti tiedää mistä tuota server_linux komentoa pitää etsiä. Eli tuohon polkuun pitää tietysti laittaa se polku jonne tuon softan olet laittanut.