Keresés

Hirdetés

Új hozzászólás Aktív témák

  • kovaax

    őstag

    válasz ViZion #12549 üzenetére

    Szerk.: Ez marhára nem kezdő topikos hozzászólás, de mindegy...

    Alapvetően az a baj, hogy az Ubuntuban "nem jól, nem szabályosan" használják a sudo-t.

    A sudo arra van kitalálva, hogy az egyik júzer tudjon meghatározott dolgokat futtatni más júzer nevében, mégpedig úgy, hogy csakis és kizárólag az engedélyezett dolgokat tudja futtatni.

    Vegyünk egy életszerű példát:
    Van egy cég, ahol a hivatalos fájltranszfer mq-val van megoldva. Van egy alkalmazás, ami szerver oldalon egy orákli adatbázis, kliens oldalon meg valami vastag kliens van. Ha az alkalmazás valami adatot akar elküldeni más szervernek (alkalmazásnak), akkor az adatot az orákli júzer hozza létre a szerveren, de az mq júzer akarja küldeni. Ebben az esetben az orákli előállítja mondjuk egy fájlba a szükséges adatokat, majd meghív egy scriptet, amiben a fájlokat még lehet mondjuk összecsomagolni, tömörgetni, majd sudo-val berakja a kjúba.
    Így fog kinézni a sudoers:
    oracle ALL=(mq) NOPASSWD: /valahol/mq/parancsamiküld

    És ez lesz az orákli scriptjében:
    #!/bin/sh
    #összecsomagolom az adatot
    gzip -9 $1
    #elküldöm az adatot
    sudo -u mq /valahol/mq/parancsamiküld $1.gz

    Ebben az esetben a orákli júzer csak és kizárólag ezt az egyetlen parancsot tudja indítani az mq júzer nevében, és a jelszavát sem kell hozzá ismernie (persze ismerheti, de mivel egy script fog futni a háttérben, nem tudjuk neki bepötyögni).

    A su viszont arra való, hogy átváltsunk egy másik userre, de ahhoz kell ismernünk az adott júzer jelszavát (ha nem vagyunk root-ok, természetesen). Ha én a fenti konfigurációban én vagyok az orákli, de nem ismerem a root jelszavát, viszont az mq-ét igen, és van valami gebasz az mq-val, akkor bejelentkezek orákliként, átmegyek mq-ba, és úgy fogom elvégezni a feladatot:
    $ id
    uid=174(oracle) gid=40()
    su - mq
    Password:
    $ id
    uid=154(mq) gid=55()
    $ cd /valahol/mq/log
    $ more parancsamiküld.log
    $ stb.
    $ exit
    $ id
    uid=174(oracle) gid=40()

    [ Szerkesztve ]

    -=- There's no place like /home -=-

Új hozzászólás Aktív témák