- Melyik tápegységet vegyem?
- A Samsung elkezdte árulni új Micro LED tévéit
- Mini-ITX
- TCL LCD és LED TV-k
- Vezetékes FÜLhallgatók
- Computex 2024: dedikált NPU-val menedzselné a VGA-t a PowerColor
- Milyen TV-t vegyek?
- Bluetooth hangszórók
- AMD Navi Radeon™ RX 6xxx sorozat
- Bambu Lab X1/X1C, P1P-P1S és A1 mini tulajok
Hirdetés
-
Olcsó USB WiFi AC adapter
lo Egy olcsó WiFi AC USB adapter jó szolgálatot jelenthet, ha az új router csak elvileg támogatja a 2,4 GHz-es átvitelt.
-
Újabb államok perelik az Apple-t, mert sok pénzt szed ki a vevőkből
it Négy újabb amerikai állam csatlakozott az USA Apple ellen indított, monopolellenes peréhez.
-
Végre pontos megjelenési dátumot kapott a Visions of Mana
gp A készítők tisztázták azt is, hogy PlayStation 4-re megjelenik-e a végső kiadás.
Aktív témák
-
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,
FCMiért van, hogy a vezetõknek nagy az ellenállásuk?
-
WN31RD
addikt
Csinálj egy új csoportot, pl. dev-port, változtasd meg a /dev/port csoportját az új csoportra, és vedd fel a csoport tagjai közé a kérdéses júzert.
''... we as consumers want our content free (as in Freedom) and if we don't get it, we'll take our content free (as in beer).''
-
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?
FCMiért van, hogy a vezetõknek nagy az ellenállásuk?
-
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?''... we as consumers want our content free (as in Freedom) and if we don't get it, we'll take our content free (as in beer).''
-
WN31RD
addikt
Teljesen biztos, hogy a /dev/port-ot használja az a program, és csak azt? Nem lehet, hogy valami más (is) kell neki? A portokat másképp is el lehet érni, pl. az ioperm(), stb. módszerrel, és ahhoz bizony kell a root jog (legalábbis indításkor).
[Szerkesztve]''... we as consumers want our content free (as in Freedom) and if we don't get it, we'll take our content free (as in beer).''
-
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]Miért van, hogy a vezetõknek nagy az ellenállásuk?
-
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. :)''... we as consumers want our content free (as in Freedom) and if we don't get it, we'll take our content free (as in beer).''
Aktív témák
- Melyik tápegységet vegyem?
- Kávé kezdőknek - amatőr koffeinisták anonim klubja
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- A Samsung elkezdte árulni új Micro LED tévéit
- Politika
- Linux kezdőknek
- Kedvenc zene a mai napra
- Mini-ITX
- The Elder Scrolls V: Skyrim
- Red Dead Redemption 2 (PC)
- További aktív témák...
- Bitdefender Total Security 3év/3eszköz! - "Tökéletes védelem most kedvező áron..."
- Bontatlan - BATTLEFIELD 1 Collectors Edition - Játékszoftver nélkül
- Windows, Office licencek a legolcsóbban, egyenesen a Microsoft-tól - 2990 Ft-tól!
- Windows 10/11 Home/Pro , Office OEM/Retail kulcsok
- Megmaradt - Eredeti Humble, Choice - Steam kulcsok
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen