Laboratorija za računarsku tehniku

Softverske teme => Operativni sistemi => GNU/Linux => Temu započeo: maxogm 07.04.2008, 12:09

Naslov: Problem IP kamera...
Poruka od: maxogm 07.04.2008, 12:09
Pozdrav, imam jedan problem.
Na jednom računaru hoću da omogućim da preko web-a korisnici mogu da upravljaju uređajem koji je prikačen na paralelni port. Elektronika i program koji vrše upravljanje istim već postoje, problem je u tome što korisnici nemaju pravo da koriste paralelni port. Računar radi pod CentOS 5 operativnim sistemom.  ;D
Naslov: Re: Problem IP kamera...
Poruka od: holodoc 07.04.2008, 12:14
Citat: maxogm  07.04.2008, 12:09
Pozdrav, imam jedan problem.
Na jednom računaru hoću da omogućim da preko web-a korisnici mogu da upravljaju uređajem koji je prikačen na paralelni port. Elektronika i program koji vrše upravljanje istim već postoje, problem je u tome što korisnici nemaju pravo da koriste paralelni port. Računar radi pod CentOS 5 operativnim sistemom.  ;D
Jesi li probao da dodeliš pravo korisniku apache da koristi tty grupu? Ne znam šta bi još drugo moglo da bude u pitanju. U svakom slučaju Google je tvoj prijatelj :) Ako naletim na nešto napisaću :)
Naslov: Re: Problem IP kamera...
Poruka od: Siniša Ranđić 07.04.2008, 12:55
Ovaj problem je postojao i kada je sistem razvijan, ali je rešen dozvoljavanjem upisa na neki direktorijum (?). Morao bih da se podsetim, jer sam ja tada našao rešenje.
Naslov: Re: Problem IP kamera...
Poruka od: Marko Аcović 07.04.2008, 21:04
Poz Maxo,

ja sam svojevremno uspeo da resim taj problem kad sam razvijao program za upravljanje web kamerom u javi. Problem je isto bio pristup paralelnom portu. Zbog javine virtuelne masine i WinXP (kod starijih Windows-a to nije problem, samo kod Nt baziranih) nisam uspeo da pristupim portu. Pretrazivajuci po netu, nasao sam neki programcic (mislim da je pisan u c ili c++) koji usera prebacuje iz obicnog korisnickog moda u privilegovan mode. Posle toga sam lako pristupio portu. Mislim da imam jos taj programcic ali bih morao da pogledam. Znam da nije najsrecnije resenje ali meni je radilo. ;)
Naslov: Re: Problem IP kamera...
Poruka od: holodoc 07.04.2008, 21:20
Citat: marko_gm  07.04.2008, 21:04
Poz Maxo,

ja sam svojevremno uspeo da resim taj problem kad sam razvijao program za upravljanje web kamerom u javi. Problem je isto bio pristup paralelnom portu. Zbog javine virtuelne masine i WinXP (kod starijih Windows-a to nije problem, samo kod Nt baziranih) nisam uspeo da pristupim portu. Pretrazivajuci po netu, nasao sam neki programcic (mislim da je pisan u c ili c++) koji usera prebacuje iz obicnog korisnickog moda u privilegovan mode. Posle toga sam lako pristupio portu. Mislim da imam jos taj programcic ali bih morao da pogledam. Znam da nije najsrecnije resenje ali meni je radilo. ;)
Čekaj... Šta podrazumevaš pod prelaskom u kernel režim rada  ??? Pitam zato što po meni problem leži u dozvolama za pristup. Dakle apsolutno je nemoguće da ako ja postavim sve dozvole (čak i SetUID root-a nad apache korisnikom) da ja ne mogu da pokrenem najobičniji program.
Naslov: Re: Problem IP kamera...
Poruka od: Marko Аcović 08.04.2008, 00:04
Problem je u tome sto NT Windows-i ima ju to ogranicenje da ne dozvoljavaju olak pristup portovima racunara, sto je bio slucaj sa ranijim verzijama. Imas u osnovi dva rezima rada: korisnicki i privilegovani. Po default-u si u korisnickom rezimu. E,sad, ja sam na netu nasao neki programcic kako da zaobidjem problem. Naime, taj programcic prebacuje iz korisnickog u privilegovani rezim i omogucava mi pristup paralelnom portu. Evo ti programcic sa uputstvom u attach-u pa vidi da li ti odgovara.

Pozz :)
Naslov: Re: Problem IP kamera...
Poruka od: holodoc 08.04.2008, 00:44
Zaboravih da pomenem  ;D

Nije...
(http://www.arktis.no/Produkter/SketchUp/Teknisk_data/filestore/windows-logo.jpg)
nego...
(http://farm3.static.flickr.com/2375/1775224711_0554e28c28_o.jpg)
Naslov: Re: Problem IP kamera...
Poruka od: Marko Аcović 08.04.2008, 14:00
Ok. Znaci Linux. ;) Kazite mi u cemu programirate kad vas ne pusta da pristupite LPT-u?
Naslov: Re: Problem IP kamera...
Poruka od: maxogm 08.04.2008, 19:58
Ma imamo napisan gotov program u C-u (ono sto je Uros radio za diplomski), problem je do privilegija korisnika u Operativnom sistemu. Kad program pokrenes kao root korisnik sve radi OK.
Naslov: Re: Problem IP kamera...
Poruka od: Marko Аcović 08.04.2008, 22:58
Probaj, ako vec nisi, da vidis kako se pod linuxom prelazi iz klasicnog user moda u privilegovani.
Naslov: Re: Problem IP kamera...
Poruka od: maxogm 09.04.2008, 14:14
Ma nemogu da idem u privilegovani, sa neta kad se pristupa radis kao korisnik apache. Znaci samo na neki nacin treba korisniku apache da dozvolim da koristi paralelni port.
Naslov: Re: Problem IP kamera...
Poruka od: Marko Аcović 09.04.2008, 19:58
Malo sam ti potrazio po netu i nasao sam nesto. To je neka biblioteka za programiranje LPT-a pod Linuxom. Evo linka:
http://parapin.sourceforge.net/ (http://parapin.sourceforge.net/)
Pored njega, pogledaj jos i http://parashell.sourceforge.net/ (http://parashell.sourceforge.net/)

Nadam se da ce biti od koristi.

Pozz 8)
Naslov: Re: Problem IP kamera...
Poruka od: holodoc 09.04.2008, 23:09
Citat: marko_gm  09.04.2008, 19:58
Malo sam ti potrazio po netu i nasao sam nesto. To je neka biblioteka za programiranje LPT-a pod Linuxom. Evo linka:
http://parapin.sourceforge.net/ (http://parapin.sourceforge.net/)
Pored njega, pogledaj jos i http://parashell.sourceforge.net/ (http://parashell.sourceforge.net/)

Nadam se da ce biti od koristi.

Pozz 8)

Do malopre sam pokušavao sa raznim test primerima da zaobiđem problem sa ozvolama i jednostavno šta god da uradim dobijam zabranu pristupa aresi 0x378. U suštini ne postoji problem sa prenošenjem klasičnih dozvola sve dok kod ne dođe do ioparam-a koji traži jednostavno root dozvole. Ni setuid-ovanje ne pomaže. E sad... I ja sam naleteo na pomenutu skriptu ali iskreno već mi se smučilo do sada da eksperimentišem ali ću sutra sigurno probati da kompajliram   i taj parashell a nakon toga ću da probam na Fedori da vidim da li ona pravi probleme slične vrste ili se to samo CentOS samo malo šali sa nama :)
Naslov: Re: Problem IP kamera...
Poruka od: holodoc 09.04.2008, 23:25
Sad sam upravo pogledao kod ovog parashell-a. Nažalost skoro potpuno isti algoritam...

ioperm -> outb...  :(
Naslov: Re: Problem IP kamera...
Poruka od: Siniša Ranđić 10.04.2008, 00:13
Našao sam ovaj link možda može da pomogne
http://community.freepascal.org:10000/bboards/message?message_id=115604&forum_id=24083
Naslov: Re: Problem IP kamera...
Poruka od: maxogm 10.04.2008, 13:02
Citat: rasin  10.04.2008, 00:13
http://community.freepascal.org:10000/bboards/message?message_id=115604&forum_id=24083 (http://community.freepascal.org:10000/bboards/message?message_id=115604&forum_id=24083)

Na ovom linku a i na zvaničnom sajtu:
http://www.epanorama.net/circuits/parallel_output.html (http://www.epanorama.net/circuits/parallel_output.html)
svuda piše da morate program izvršavati kao root korisnik. Što znači jedino preostaje da postavimo da korisnik koji pristupa sa weba radi kao root...
Ali pitanje koliko je to pametno  ??? Ustvari uopšte nije pametno  :) Pretpostavljam da je ovo bilo urađeno kada je kamera radila.
Naslov: Re: Problem IP kamera...
Poruka od: holodoc 10.04.2008, 18:51
Drago nam je da vas obavestimo da je problem konačno rešen :D

Zahvaljujući samo jednoj jedinoj liniji u terminalu Linux-a mi smo izgubili nedelju dana vremena i dobili na kvalitetu sede kose  ;D

Naime, sve što smo radili je bilo okej izuzev što smo prevideli da grupi koja ima prava da pristupa paralelnom portu nismo eksplicitno dozvolili da bude korišćena od strane SetUID-ovanih korisnika. Drugim rečima, dozvolili smo lptout-programu da bude korišćen od strane ne-root korisnika ali nažalost nismo dozvolili i grupi koja predstavlja paralelni port da bude korišćen od strane SetUID-ovanih korisnika.... Bar mislimo da je tako  ::)

Dakle... Source je prikačen uz ovu poruku (lptout.c)

Postupak je sledeći.

[root@localhost ~]# cd /var/www/cgi-bin/lptout
[root@localhost lptout]# gcc -O l.c -o lpt_test
lptout.c   lptout.c~
[root@localhost lptout]# gcc -O lptout.c -o lptout
[root@localhost lptout]# chmod +s lpt
lptout     lptout.c   lptout.c~
[root@localhost lptout]# chmod +s lptout
[root@localhost lptout]# ls -o lptout
-rwsr-sr-x 1 root 7716 Apr 10 13:26 lptout*
[root@localhost lptout]#


Kada se pusti kao ne-root...

[guest@localhost guest]$ cd /var/www/cgi-bin/
[guest@localhost lptout]$ ./lptout 232
[guest@localhost lptout]$ ./lptout
Error: Wrong number of arguments. This program needs one argument which is number between 0 and 255.
[guest@localhost lptout]$


Problematična linija je bila u redu:
chmod +s lpt
Naša pretpostavka je da se ovde grupi lpt dozvoljava da njeni članovi pristupaju paralelnom portu... Kažem pretpostavljam :)