TIPP X programok indítása 'sudo'-val
A Gentoo Linux Wiki wikiből
A sudo program alapbeállításai mellet, ha egy grafikus programot akarunk indítani, valami ilyesmi hibaüzenetet kapunk:
| Kód: sudo Xprogram |
Xprogram: Cannot open display |
Ezzel nem is lenne semmi gond, nem baj az, ha a sudoerek nem tudnak grafikus programot futtatni, általában erre nincs is szükség.
Néha azonban jól tud jönni, én pl. root-tail-lel íratom ki a desktopra néhány logfile tartalmát, ahol rögtön fel is merül a probléma, mert némelyik csak a saját csoportja által olvasható (root). A root-tail viszont használja az X-et...
A probléma körüljárására több megoldás van, mindegyikhez az /etc/sudoers filet kell picit szerkeszteni. Ehhez a visudo parancs használandó (rootként).
Ne tévesszen meg senkit a parancs neve, a Gentoo azt a szövegszerkesztőt fogja használni, ami az /etc/rc.conf 'EDITOR' változójában meg van adva
A lényeges részek:
| File: /etc/sudoers |
... # Reset environment by default Defaults env_reset # Uncomment to allow people in group wheel to export variables # Defaults:%wheel !env_reset # Allow people in group users to export specific variables # Defaults:%users env_keep=TZ ... |
Az első sor a sudo parancs kiadásakor töröl minden környezeti változót, köztük a 'DISPLAY'-t is, ami nekünk fontos lenne.
- A legbrutálisabb, de nem éppen legjobb megoldás tehát, ha egyszerűen kommentezzük ezt a sort.
- A másik, biztonsági szempontból lényegesen megbízhatóbb lehetőség a második sorban rejlik. Itt beállíthatjuk, melyik csoport tagjai 'vihessék' tovább a változóikat magukat a sudoval. A fenti példában a 'wheel' csoport tagjainak engedélyezzük ezt, de megtehetjük bármelyik másikkal is, persze ne felejtsük el a kommentkaraktert törölni!
- A legkörülményesebb, de legbiztonságosabb módszer, ha mindent egyesével engedélyezünk. Jelen esetben (DISPLAY változó) például az alábbi sorokkal megengedjük a 'users' csoport felhasználóinak, hogy ezt a változót sudo-val is használhassák:
| File: /etc/sudoers |
... Defaults:%users env_keep=DISPLAY ... |
Ugyan így alkalmazhatjuk a fentieket egyes felhasználókra, de ekkor a '%' karaktert vegyük le a név elől.
FONTOS: a visudo paranccsal alkalmazott változások csak akkor lépnek életbe, ha kilépünk belőle, azaz az /etc/sudoers filet nem elég csak menteni.
