Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ubuntu tietokoneissa => Aiheen aloitti: ihti - 08.08.06 - klo:12.50

Otsikko: Palveluiden käynnistys ei-roottina
Kirjoitti: 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" ?
Otsikko: Re: Palveluiden käynnistys ei-roottina
Kirjoitti: LittleLion - 08.08.06 - klo:13.52
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.
Otsikko: Re: Palveluiden käynnistys ei-roottina
Kirjoitti: ihti - 08.08.06 - klo:17.03
Ei ole apache, vaan esim TeamSpeak..
Otsikko: Re: Palveluiden käynnistys ei-roottina
Kirjoitti: ihti - 09.08.06 - klo:17.33
..niin miten se pitäisi tehdä?? Onko jollakin tiedossa jossakin howto? itse en kyllä löytänyt.
Otsikko: Re: Palveluiden käynnistys ei-roottina
Kirjoitti: LittleLion - 11.08.06 - klo:09.18
Ei ole apache, vaan esim TeamSpeak..

Joo tuo apache oli vain esimerkki. Mistä löydän tuon TeamSpeak:in asennus paketin?
Otsikko: Re: Palveluiden käynnistys ei-roottina
Kirjoitti: ihti - 11.08.06 - klo:11.19
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
Otsikko: Re: Palveluiden käynnistys ei-roottina
Kirjoitti: teprrr - 11.08.06 - klo:12.28
Käynnistysskriptien ajo tapahtuu roottina, eli siitä vaikka sudon/su:n kautta käynnistät kyseisen palvelimen ihan niin kuin roottinakin.
Otsikko: Re: Palveluiden käynnistys ei-roottina
Kirjoitti: ihti - 11.08.06 - klo:21.40
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ö?
Otsikko: Re: Palveluiden käynnistys ei-roottina
Kirjoitti: Tuplanolla - 12.08.06 - klo:23.28
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)
Otsikko: Re: Palveluiden käynnistys ei-roottina
Kirjoitti: teprrr - 13.08.06 - klo:21.35
Se on sama. sudo vain vaihtaa käyttäjää väliaikaisesti. (minun tietääkseni ainakin)
Jeps, eli sudo -u <käyttäjä> <komento>.
Otsikko: Re: Palveluiden käynnistys ei-roottina
Kirjoitti: LittleLion - 14.08.06 - klo:07.57
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
Otsikko: Re: Palveluiden käynnistys ei-roottina
Kirjoitti: ihti - 14.08.06 - klo:18.04
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:
Koodia: [Valitse]
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ä)
Otsikko: Re: Palveluiden käynnistys ei-roottina
Kirjoitti: raimo - 14.08.06 - klo:18.35
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ä.
Koodia: [Valitse]
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 ;)
Otsikko: Re: Palveluiden käynnistys ei-roottina
Kirjoitti: LittleLion - 15.08.06 - klo:16.11
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:
Koodia: [Valitse]
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


Lainaus
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:
Koodia: [Valitse]
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.


Lainaus
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.