programok futtatásának korlátozása x alatt

Fórumok

programok futtatásának korlátozása x alatt

Hozzászólások

Üdv!

Köszönöm mindenkinek a tippeket! Mindkettő működik, kipróbáltam! :D Az egyszerűség kedvéért a limits.conf-ot csinálgattam.
A scriptes megoldásnál csak egy gond volt, legalábbis nálam suse-ban: Ha van olyan felhasználó, aki nem igazán használt még gépet, akkor sokat kattint a létrehozott ikonra egyszerre, akkor kiakad.

Egyébként kis magyarázaz miért kellett: Ezek folyosón lévő gépek, amelyeket a diákok használhatják, de csak internetezésre.
Az összvissz 1 böngésző szintén azért kellett, mert a legtöbb embert nem érdekli mennyi böngésző van megnyitva (vagy csak ezzel poénkodik) és nyit egy újat, egésszen addig, amíg lefagy a gép.

Szóval köszönöm a segítséget :!: :!:

[quote:68f4c2a570="Hijaszu"]Otletesnek otletes - viszont nem garantalja senki, hogy egy konkurens processz nem inditja el pont abban az idopillanatban a firefoxot, amikor 755 a jogosultsaga :) (Es nem oldja meg, hogy ne masik firefoxot inditson a felhasznalo, ha telepit fel egyet.)
A valos eletben altalaban mindig mukodni fog egyebkent a megoldas, de jol leterhelt gepen ki lehet jatszani - es ugye a gepet barki leterhelheti.
Szerintem ha ezt mindenkeppen meg kell oldani, akkor a legegyszerubb megmodositani a program main() fvjet es letiltani, az indulast, ha mar fut. Bar ha ilyen jellegu modositasokra adja valaki a fejet eloszor jobban teszi, ha letiltja a forditoprogramokat a felhasznalok szamara, mert onnantol szabad a palya.

Szia!

Valóban ki lehet játszani, de lehet finomítani is a megoldást. Szerintem ha bármilyen ilyen jellegű korlátozást be akarsz vezetni a felhasználók felé, akkor az az alap, hogy noexec flag-gel csatolod a /home filerendszert. Ugyebár a main() átírása is pont ott bukik meg, hogy főhősünk elindít egy másik firefox-ot.

Üdv.: Tomyellow

[quote:10e82d9a3c="vmage"]Üdv!

Köszönöm mindenkinek a tippeket! Mindkettő működik, kipróbáltam! :D Az egyszerűség kedvéért a limits.conf-ot csinálgattam.
A scriptes megoldásnál csak egy gond volt, legalábbis nálam suse-ban: Ha van olyan felhasználó, aki nem igazán használt még gépet, akkor sokat kattint a létrehozott ikonra egyszerre, akkor kiakad.

Egyébként kis magyarázaz miért kellett: Ezek folyosón lévő gépek, amelyeket a diákok használhatják, de csak internetezésre.
Az összvissz 1 böngésző szintén azért kellett, mert a legtöbb embert nem érdekli mennyi böngésző van megnyitva (vagy csak ezzel poénkodik) és nyit egy újat, egésszen addig, amíg lefagy a gép.

Szóval köszönöm a segítséget :!: :!:

Ha errol van szo, akkor en egyszeruen a xsessions-t irnam at, ugy, hogy oszvissz egy firefox van benne :-) Akkor csak azt tud.

Zsiraf

[quote:ed27987fed="tomyellow"]
...
Majd a wrapper scriptre kell egy suid bit és kész. Ja és természetesen a firefox indítása elé egy sudo - $USER.
...
Üdv.: Tomyellow

Ha jol tudom, szkripteken nincs hatasa a suid bitnek, ahoz a shell is suid kene legyen, ha egyaltalan ertelmezni akarna...

Otletesnek otletes - viszont nem garantalja senki, hogy egy konkurens processz nem inditja el pont abban az idopillanatban a firefoxot, amikor 755 a jogosultsaga :) (Es nem oldja meg, hogy ne masik firefoxot inditson a felhasznalo, ha telepit fel egyet.)
A valos eletben altalaban mindig mukodni fog egyebkent a megoldas, de jol leterhelt gepen ki lehet jatszani - es ugye a gepet barki leterhelheti.
Szerintem ha ezt mindenkeppen meg kell oldani, akkor a legegyszerubb megmodositani a program main() fvjet es letiltani, az indulast, ha mar fut. Bar ha ilyen jellegu modositasokra adja valaki a fejet eloszor jobban teszi, ha letiltja a forditoprogramokat a felhasznalok szamara, mert onnantol szabad a palya.

Üdv!

Elnézést, ha nagyon amatőr a kérdés! X alatt (kde ha erre is szükség van) szeretném korlátozni azt, hogy egy adott programot hányszor lehessen elindítani. Pl. Monjuk a Firefoxot csak egy ablakban lehessen használni.

Ezt hogyan tudnám megcsinálni? Programcsomag kell hozzá, vagy ez alapból benne van a linuxban? Lehetőleg suse-n kellene.

A segítséget előre is köszönöm!

[quote:fbd69537ce="vmage"]Üdv!

Elnézést, ha nagyon amatőr a kérdés! X alatt (kde ha erre is szükség van) szeretném korlátozni azt, hogy egy adott programot hányszor lehessen elindítani. Pl. Monjuk a Firefoxot csak egy ablakban lehessen használni.

Ezt hogyan tudnám megcsinálni? Programcsomag kell hozzá, vagy ez alapból benne van a linuxban? Lehetőleg suse-n kellene.

A segítséget előre is köszönöm!

Szia!

Nem tudok ilyen programcsomagról, de sima shell-scripttel meg lehet csinálni.
Csinálsz egy shell-scriptet a kedvenc szövegszerkesztőddel.
pl.: firefox-wrapper.sh
Ebbe beleírod, hogy:

[code:1:fbd69537ce]
#!/bin/bash
if [[ `ps -u $USER | grep firefox | grep -v grep` ]]; then
echo "Ez már fut egy példányban";
else /usr/bin/firefox;
fi
[/code:1:fbd69537ce]

És akkor csak egy példányban tud futni.
Na akkor részletesen:
1. sor: megadja, hogy a scriptet mivel kell értelmezni. Az értéke #! és utánna a which bash parancs értéke.
2. sor: a ps -u $USER kilistázza az adott felhasználó process-eit. Az első grep ebben keres a firefox karakterláncra, a második grep a process-listában szereplő első grepet szűri ki. A fordított aposztrof magyar billentyűzeten <ALTGR>+7, ez azt jelenti, hogy a köztük lévő rész az egy parancs, és egyben kell kiértékelni.
3. sor: Az echo egy karakterláncot ír a képernyőre.
4. sor: Elindítja a firefox-ot. Ide a which firefox, vagy which mozilla-firefox értékét kell írni.

Ezek után ezt a file-t kell futtatni a firefox helyett. Persze az echo csak terminálon fog eredményt produkálni, ha ikonnal indítod, akkor csak annyit fogsz észrevenni, hogy nem indul el a második példány.

Ha valami nem világos, kérdezz bátran!

Üdv.: Tomyellow

Hmm, de ezt eleg egyszeruen meg lehet kerulni azzal hogy nem a scriptet inditja el a felhasznalo hanem a firefoxot magat. Legalabbis gondolom ez is problema feltetelezven azt hogy nem sajat magat akarja korlatozni ezzel, hanem vkit aki az o gepet hasznalja(legalabbis en csak igy latnam ertelmet).

a firefox az pont egy rossz pelda, ugyanis abbol csak 1 peldany fut mindig. Ha mar egy fut es beirod hogy firefox akkor a mar futo peldanybol nyit meg 1 ablakot.

persze lehet rosszul erem a kerdest :oops:

Igazabol azt, hogy egy program hany peldanyban induljon el maximalisan, azt az adott program kozremukodese nelkul nehez korlatozni.

Megkerulheto reszmegoldasok mindig vannak. Pl.: crontabbol percenkent megnezed, hogy hany db. adott nevu program fut (lsd. egyik fentebbi hozzaszolast) es kilodozod a felesleget. Ez pl. az ellen nem ved, hogyha a user feletlepiti ugyan azt csak mas neven. Szoval macska-eger harc.

Persze ha valamelyik windowmanager-nek van ilyen szolgaltatasa, akkor azzal lehet kezdeni valamit, en ilyenrol nem tudok, de soha sem kerestem.

Szia,

Igazabol nem nagyon lehet szerintem ilyet csinalni. Nem is igazan latom ertelmet. Ha azt szeretned elerni, hogy pl a mozilla nem igazan reagal jol arra, hogy mar fut egy peldany es te masikat inditasz, akkor nyilvan senkise akarja megkerulni majd a dolgot. Egyebkent minek akarnad hasznalhatatlanabba tenni a rendszert?
Ha pedig azt szeretned elkerulni, hogy egy felhasznalo tul sok mindent futtat, miert nem a ra kioszthato CPU teljesitmenyt kvotazod (emlekezetem szerint ugyanugy lehet azt is mint a merevlemez partiociok es egyeb eroforrasok hasznalatat)?

Hijaszu

Na, van meg egy agresszio amit el lehet kovetni a userek ellen. Debian (de talan mas alatt is) /etc/security/limits.conf. Ebben a fileban be lehet allitani, hogy pl. egy adott usernek _osszesen_ hany porcesse futhasson egyszerre. Erre az nproc valo. Tehat a kovetkezo sor:

bela hard nrproc 2

a bela nevu felhasznalot eleg nehez helyzetbe hozza ugyanis egyszerre pl. 1 db shellje futhat es abban 1 db process (pl. tud pine-al levelet olvasni es kesz).

Hát akkor hackeljünk egy kicsit.
A wrapper-script 2. sora legyen egy chmod 755 firefox, a firefox & jellel háttérben legyen indítva, és utánna legyen visszaütve a firefox 744-es jogosultségra. Majd a wrapper scriptre kell egy suid bit és kész. Ja és természetesen a firefox indítása elé egy sudo - $USER.

Mondjuk el lehetne mélyedni a PAM doksiban, nem tartom kizártnak, hogy van benne erre megoldás.

Üdv.: Tomyellow