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.

Személyes eszközök