Keresés

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

  • Jester01

    veterán

    válasz mkbla #384 üzenetére

    A listexecutables dologra az én megoldásom kb így nézne ki:
    Először egy ciklus a PATH-ban lévő directorykra, azon belül az összes fájlra.
    Fájlonként ellenőrizni, hogy az alábbiak valamelyike teljesül-e:
    - tulajdonos egyezik-e a felhasználóval, és van-e futtatási joga.
    - csoport futtatási jog van, és a felhasználó benne van a csoportban (/etc/group alapján)
    - mindenkinek van rá futtatási joga

    Bekavarhat, ha a PATH-ban relatív útvonal is van (tipikusan a "."). Ez ellen még azt lehet tenni, hogy egy tömbben eltárolni az összes fájlt (miután abszolúttá alakítottad) és az alapján kihagyni a duplákat. Alternatívaként bele lehet tölteni egy sort | uniq csőbe is.

    Az awk script ehhez képest egyszerű. Kell egy tömb ahol felhasználónként összesíted az időket, illetve egy másik, ahol a legutoljára látott bejelentkezési időpontokat tárolod. A sorokon mész szépen végig. Ha login sor jön, akkor azt beírod a bejelentkezős tömbbe. Ha logout sor jön, akkor kiveszed a hozzá tartozó bejelentkezési időt a tömbből és a kiszámított eltelt időt pedig hozzáadod az összesítéshez. A napló végén pedig kiírod az összesített táblázatot.

    Jester

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