Minska blogas

Fun fun fun...

Žinutės | Blogas | Mintys | Elektronika | Technologijos | Politika | Oro stebėjimas | Filmai ir serialai | Knygos | Apie

X serverio Gentoo suid USE vėliavėlė

Gentoo yra nuostabi GNU distribucija. Čia visas programas galima susikompiliuoti ir tai leidžia įgalinti arba neįgalinti tam tikras programų galimybes. Tai daroma su USE vėliavėlėmis (USE flags).

Vakar peržiūrėjau kelių paketų USE vėliavėles, kai kurias programas iš vis ištryniau. Viena iš programų, kurios USE vėliavėles pakeičiau buvo X serveris. Šiandien visas programas perkompiliavau ir perkrovus kompiuterį negalėjau įjungti X serverio. Kaip ir aišku, kur susimoviau, bet noriu visas detales paaiškinti plačiau.

Visų pirma - kaip sužinoti, kokias USE vėliavėles turi kokia nors programa. Tai galima pasižiūrėti internete, bet, manau, patogiau su equery programa. Ją galima įdiegti kartu su kitais įrankiais: sudo emerge --ask app-portage/gentoolkit. Naudotis equery galima terminale įvedus equery uses paketo_pavadinimas.

equery uses xorg-server rezultatai

Ši komanda išveda visas galimas programinio paketo USE vėliavėles, jų paaiškinimus (tačiau vis tiek viskas labai techniška ir reikia turėti supratimą apie ką kalbama), bei ar tos vėliavėlės yra nurodytos (pliusiukai ties U raide) ir ar tos vėliavėlės yra įdiegtos (pliusiukai ties I raide).

USE vėliavėles konkrečiai programai galima nurodyti /etc/portage/package.use/ direktorijoje sukuriant failus su programos paketo pavadinimu ir pačiomis vėliavėlėmis. Pavyzdžiui, mano /etc/portage/package.use/ direktorijoje yra failas pavadinimu xorg-server. Jame yra štai kas: "x11-base/xorg-server -dmx -doc glamor -ipv6 -kdrive -minimal -static-libs suid -systemd -tslib udev -unwind -wayland -xephyr -xnest xorg xvfb". Prie daugumos vėliavėlių yra "-", o tai reiškia, kad tų funkcijų aš nenoriu.

Vakar atsisakiau šiek tiek per daug funkcijų, o šiandien perkrovus kompiuterį negalėjau įjungti šito X serverio.

X serveris, jei kas nežino, tai programa, kuri leidžia atvaizduoti grafinius elementus. Be jo tenka naudotis tekstine konsole, kurioje be teksto nieko kaip ir neatvaizduosi (šiaip įmanoma ir vaizdo įrašus žiūrėti, bet jau čia viskios nepadorybės, kurias tik tokie drąsus kaip aš bando). X serveris leidžia paleisti įvairias darbalaukio aplinkas ar langų valdiklius, kuriuose galima patogiai valdyti įvairias grafines programas kaip Firefox naršyklė, GIMP ar Audacity.

Bėda bandant įjungti X serverį gali būti baisus dalykas prie konsolės nepratusiam naudotojui. Aš susidūriau su tokia klaida: "xf86OpenConsole:Cannot open virtual console 7 (permission denied)".

Akivaizdu, kad kažkodėl X serveris nebeturi tinkamų leidimų prieiti prie 7 virtualios konsolės. Kaip ir aišku, kad pridirbau kažką su tomis USE vėliavėlemis, nes nieko daugiau neliečiau. Su equery pasižiūrėjau kokias vėliavas turi xorg-server paketas ir pamačiau suid vėliavą, prie kurios parašyta "Enable setuid root program, with potential security risks". setuid yra sutrumpinimas frazės "set user ID upon execution". O naudotojo ID ir nusako, kokius leidimus turės programa. Ir štai pasirodo prie šios USE vėliavėlės buvau padėjęs minusą. Nuėmiau jį ir perkompiliavau xorg-server su tokia komanda: emerge --ask --newuse xorg-server.

Perkrovus kompiuterį, prisijungus ir paleidus X serverį su startx, X serveris užsikrovė ir pasileido mano i3 langų valdiklis. Viskas tvarkoje.

Matyt, ne daug kas susidurs su tokia problema, tačiau gal kada šis įrašas kam nors pravers.


Irašo komentarai

Komentarus siųskite man elektroniniu paštu, adresu: mindaugas per minska taškas lt.

Laiške nurodykite įrašo pavadinimą ir ar norite, kad jūsų komentaras būtų paviešintas.