abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 17:33 | Nová verze

    Byla vydána nová stabilní verze 7.6 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 140. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    dnes 16:22 | Nová verze

    Byla vydána verze 1.90.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    dnes 16:11 | Nová verze

    GNUnet (Wikipedie) byl vydán v nové major verzi 0.25.0. Jedná se o framework pro decentralizované peer-to-peer síťování, na kterém je postavena řada aplikací.

    Ladislav Hagara | Komentářů: 0
    dnes 12:11 | Nová verze

    Byla vydána nová major verze 7.0 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Nově je postavena je na Debianu 13 (Trixie) a GNOME 48 (Bengaluru). Další novinky v příslušném seznamu.

    Ladislav Hagara | Komentářů: 0
    dnes 04:44 | IT novinky

    Společnost Meta na dvoudenní konferenci Meta Connect 2025 představuje své novinky. První den byly představeny nové AI brýle: Ray-Ban Meta (Gen 2), sportovní Oakley Meta Vanguard a především Meta Ray-Ban Display s integrovaným displejem a EMG náramkem pro ovládání.

    Ladislav Hagara | Komentářů: 0
    dnes 01:11 | Nová verze

    Po půl roce vývoje od vydání verze 48 bylo vydáno GNOME 49 s kódovým názvem Brescia (Mastodon). S přehrávačem videí Showtime místo Totemu a prohlížečem dokumentů Papers místo Evince. Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře.

    Ladislav Hagara | Komentářů: 11
    včera 16:22 | Nová verze

    Open source softwarový stack ROCm (Wikipedie) pro vývoj AI a HPC na GPU od AMD byl vydán ve verzi 7.0.0. Přidána byla podpora AMD Instinct MI355X a MI350X.

    Ladislav Hagara | Komentářů: 0
    včera 15:22 | Nová verze

    Byla vydána nová verze 258 správce systému a služeb systemd (GitHub).

    Ladislav Hagara | Komentářů: 6
    včera 15:11 | Nová verze

    Byla vydána Java 25 / JDK 25. Nových vlastností (JEP - JDK Enhancement Proposal) je 18. Jedná se o LTS verzi.

    Ladislav Hagara | Komentářů: 0
    včera 14:44 | Humor

    Věra Pohlová před 26 lety: „Tyhle aféry každého jenom otravují. Já bych všechny ty internety a počítače zakázala“. Jde o odpověď na anketní otázku deníku Metro vydaného 17. září 1999 na téma zneužití údajů o sporožirových účtech klientů České spořitelny.

    Ladislav Hagara | Komentářů: 9
    Jaké řešení používáte k vývoji / práci?
     (41%)
     (56%)
     (3%)
     (9%)
     (13%)
     (6%)
     (13%)
     (6%)
     (16%)
    Celkem 32 hlasů
     Komentářů: 4, poslední dnes 19:18
    Rozcestník

    Dotaz: ioperm c++

    15.5.2012 07:43 ubka7617
    ioperm c++
    Přečteno: 288×

    Dobry den. mam program v cecku ktory povoluje pristup na hardware pod rootom cez ioperm,

    potom cet setgid a setuid nastavim procesu aby bezal pod non-root uzivatelom

    execvp( argv[1], &argv[1] ); cez toto pustim program

    Problem je v tom ze ked pustim program priamo ako uzivatel tak mi funguje do doby kym nemusi pristupovat na hardware pc, potom padne.

    Ked ten program pustim cez toto tak mi nedokaze logovat vypise mi permision denied aj ked bezi pod rovnakymi pravami ako ked by bol spusteni priamo ako uzivatel.

    Neviete mi niekdo poradit ?

    if ( ioperm(0x160, 1, 1)) {
    cout << "Neuspesne nastavenie prav" << endl;
    return 1;
    }

    if( ( pwd = getpwnam( "user" ) ) == NULL ) {                // citanie uid meno shell a podobne o uzivatelovi
    printf( "Chyba pri citani udajov u uzivatelovi! \n" );

    return 1;
    }

    uid = pwd->pw_uid;
    gid = pwd->pw_gid;

    setgid(gid);

    setuid(uid);

    execvp( argv[1], &argv[1] );

    Dakujem

    Odpovědi

    pavlix avatar 15.5.2012 09:11 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: ioperm c++
    ioperm() sets the port access permission bits for the calling process for num bytes starting from port address from to the value turn_on. If turn_on is nonzero, the calling process must be privileged (CAP_SYS_RAWIO).
    http://www.kernel.org/doc/man-pages/online/pages/man2/ioperm.2.html

    Možná jsem špatně pochopil tvůj popis problému, ale bohužel je příliš zmatený a vágní. Ale tady se píše, že ti to fungovat ani z definice nemůže.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    15.5.2012 09:35 ubka7617
    Rozbalit Rozbalit vše Re: ioperm c++

    tak ono to funguje ale program ktory je v execvp sa pusti s neakymi inymi pravami aj ked ps -Af ukazuje ze bei pod definovanym uzivatelom.

    15.5.2012 09:45 ubka7617
    Rozbalit Rozbalit vše Re: ioperm c++

    execvp( argv[1], &argv[1] ); cez toto pustim program - myslene dalsi program ktory komunikuje priamo s HW co bez predchydzajuceho ioperm nefunguje.

    Pustim program ktroy mam v cecku a z neho po nastaveni prav a prislusneho uid a gid spustim dalsi program ktory uz bezi dalej.

    pavlix avatar 15.5.2012 17:04 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: ioperm c++
    Vůbec nerozumím, co se tím snažíš vyjádřit.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    15.5.2012 10:01 chochi | skóre: 29 | Praha
    Rozbalit Rozbalit vše Re: ioperm c++
    Ahoj, nepotrebuje ten volany proces nejake promenne prostredi? To byva asi nejcastejsi problem pri pouziti setuid a execve. Pokud to spoustis pod rootem tak ma promene prostredi roota. Pokud ten druhy prakaz pustis z terminalu primo pod uzivatelem user pak ma jeho promene prostredi.
    Dale me napada, jestli nepotrebuje ten druhy program nejake parametry (v prikladu se nic nepredava).

    Moznost jak najit co selhalo je asi nejlepsi pres strace - ten primo ukaze syscally s navratovou hodnotou a bude vided co vratilo chybu.
    15.5.2012 13:14 ubka7617
    Rozbalit Rozbalit vše Re: ioperm c++

    ten druhy program berie paramtere z parametrov toho prveho pri spusteni argv[1], &argv[1]

    15.5.2012 16:09 chochi | skóre: 29 | Praha
    Rozbalit Rozbalit vše Re: ioperm c++
    A jo, nekam jsem jspatne precetl execvp - takze tim odpada jedna moznost.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.