Portál AbcLinuxu, 10. května 2025 06:55

Dotaz: Editace wtmp souboru

2.1.2009 21:23 Pavel Scheiner
Editace wtmp souboru
Přečteno: 269×
Odpovědět | Admin

Dobry den, napsal jsem si v C aplikaci na editaci souboru wtmp, ta funguje asi takto:

./wtmclean -u root

... vymaze veskere zaznamy tykajici se roota z wtmp souboru. Problem, je ze kdyz nyni dam prikaz last, tak ten na konci vypise:

wtmp begins Thu Jan  1 01:00:00 1970

misto puvodnoho data. Nevite proc k tomuto dochazi nebo jak vratit puvodni datum? Soubor edituju takto:

// reads record from u/wtmp file
    while (fread((char *)&uwtmp_tmp, sizeof(uwtmp_tmp), 1, uwtmp_file) > 0)
    {
        // is that record concerning specified user?
        if (strcmp(uwtmp_tmp.ut_name, user) == 0)
        {
            // rewind back one structure
            fseek(uwtmp_file, -sizeof(uwtmp_tmp), SEEK_CUR);
            // fill our tmp struct with zeros
            bzero(&uwtmp_tmp, sizeof(uwtmp_tmp));
            // rewrite record
            fwrite((char *)&uwtmp_tmp, sizeof(uwtmp_tmp), 1, uwtmp_file);
            count++;
        }
    }
 
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

2.1.2009 22:23 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Editace wtmp souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Um ... zapíšeš vynulovanú štruktúru z premennej uwtmp_tmp - a v nej je ut_tv položka - ak je vynulovaná, tak zodpovedá času "Jan 1 00:00:00 1970" plus časový posun pre time-zonu - takže tipujem, že odtiaľ to ide.

Ešte 3 veci musím okomentovať:
2.1.2009 22:57 Pavel Scheiner
Rozbalit Rozbalit vše Re: Editace wtmp souboru

Ano to presne delam, ja ale prepisi napr pouze jednu tuto strukturu. Takovychto struktur je tam vice. Proc by se tedy zrovna hledelo na to datum u struktury, kterou jsem prave prepsal? Neni proste na nejake definovane pozici v tom souboru wtmp ono datum ulozeno?

Soubor mam otevreny jako "r+", nejsem si vedom zadnych komplikaci co by to melo zpusobit. fwrite je normalni binarni zapis - s koncem souboru nic nedela.

Ano zaznamy nemazu, ale prepisuju. Je to jednodussi nez kdybych struturu zcela smazal a zbytek souboru posunul o sizeof(struct utmp) nahoru a svuj ucel to plni.

chmod -i alespon u me na systemu hlasi neplatny option, zkutecne jste chtel napsat toto?

3.1.2009 01:23 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Editace wtmp souboru
Proc by se tedy zrovna hledelo na to datum u struktury, kterou jsem prave prepsal?

Možno sa len zoberie hodnota z prvého záznamu v poradí - ten asi "last" považuje za najstarší, nie? Skús tam zapísať nejaký reálny časový údaj a uvidíme čo to spraví.
Ano zaznamy nemazu, ale prepisuju. Je to jednodussi
Nie je potom last z toho trocha vedľa?
chmod -i alespon u me na systemu hlasi neplatny option, zkutecne jste chtel napsat toto?
Sorry. Mal som na mysli chattr a 'immutable flag'.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.