Hirdetés
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Parci: Milyen mosógépet vegyek?
- Gurulunk, WAZE?!
- Brogyi: CTEK akkumulátor töltő és másolatai
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- bambano: Bambanő háza tája
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
Aktív témák
-
WN31RD
addikt
Kipróbáltam, és tényleg nem megy... :((( :F
Nyomoztam kicsit a kernel forrásban (2.6-os) a probléma után, és úgy tűnik, a ''kernel capabilities'' funkció okozza a gondot. Ugyanis nem csak az ioperm()-hez, hanem a /dev/port megnyitásához is szükséges a CAP_SYS_RAWIO, ld.: kernel forrás drivers/char/mem.c, open_port().
Ha a default capabilites nincsen aktiválva (capability kernel modul), akkor a root processzeknek megvan minden capability, a többinek pedig semmi, és ezen nem lehet változtatni, ld. kernel forrás security/dummy.c, dummy_capable().
Megoldási javaslatok (nem próbáltam ki):
a. root-ként induljon a processz, aztán dobálja el a privilégiumait, amint megnyitotta a /dev/port-ot
b. root-ként induljon egy kisegítő processz, ami mondjuk egy socket-en keresztül átad egy file descriptor-t a /dev/port-ra
c. kapcsold be a linux capabilites-t, és - pl. a PAM segítségével - add meg a CAP_SYS_RAWIO-t a kérdéses júzernek
d. piszkálj bele a kernelbe valamelyik helyen, amit említettem
Érdekelne a kipróbált, működő megoldás, ha majd meglesz. :) -
FastCatch
csendes tag
A kódrészlet, amin a hiba keletkezik:
bool OpenIOChannel()
{
Ports = open (''/dev/port'', O_RDWR | O_NDELAY );
return ( Ports > 0 );
}
Egy debugger-rel megnézve, az open -1-re állítja a Ports-ot, ha nem root
vagyok és az errno 1.
???
Vicces módon különben a kmem group-nak az egyetlen tagja az a user,akit
felvettem, a root nincs benne...
Sőt, ha a /dev/port-ra mindenkinek rw jogot adok (chmod a+rw /dev/port), akkor
_sem_ fut le a kód. Na ezt már végképp nem értem.
***
SZERK: a kód beillesztése nem sikerült...
[Szerkesztve] -
WN31RD
addikt
-
WN31RD
addikt
Ha a /dev-be bele tud menni a júzer, és listázni tudja a tartalmát, márpedig tudja (r-x jogok), az elég. Onnantól kezdve már az egyes file-okhoz (pl. /dev/port) rendelt jogok számítanak.
Elvileg elég, ha a júzer tagja egy olyan csoportnak, amelyik írni tud a device-ba. Nem tudom, mi kellene még, de biztos nem a /dev jogaival van baj.
A csoporthoz való hozzáadás után csináltál egy ki-be jelentkezést a júzerrel? -
FastCatch
csendes tag
Azzal kezdtem, hogy kísérletképpen hozzátettem a usert a kmem csoporthoz, de ez nem látszik elégnek. Szerint az is baj, hogy a /dev-et a root-on kívül mindenki csak olvashatja -- vagy ez hülyeség? Akkor csináljam azt, hogy felveszek ahhoz (is) egy új csoportot és beleteszem a root-ot, meg a usert?
FC -
FastCatch
csendes tag
Sziasztok!
Az a kérdésem, hogy hogyan lenne legcélszerübb elérni, hogy egy userx nevű user tudja _írni_ a /dev/port-ot. nem t'om mi az általános, ezért leírom:
[CODE]
drwxr-xr-x root root /dev
crw-rw---- root kmem /dev/port
[/CODE]
nekem az kell, hogy a userx tudja írni/olvasni a /dev/port-ot, a root értelemszerűen maradjon meg jogaiban, de a többi usernek nem akarnék feleslegesen jogokat osztogatni (úgy olyan eccerű lenne, hogy nem kérdeznék :P).
Előre is kösz,
FC
Aktív témák
Hirdetés
- Dell Latitude 3510 15,6", i5 10210U, 8-16GB RAM, SSD, jó akku, számla, garancia
- Xiaomi Redmi 14C / 4/128GB / Kártyafüggetlen / 12Hó Garancia
- Telefon felvásárlás!! Samsung Galaxy S25, Samsung Galaxy S25 Plus, Samsung Galaxy S25 Ultra
- ÁRGARANCIA! Épített KomPhone Ryzen 5 5600X 16/32/64GB RAM RTX 5050 8GB GAMER PC termékbeszámítással
- HIBÁTLAN iPhone 11 128GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS4411, 100% Akksi
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs

