Skip to main content

Unix Command Utmpin käyttö Linuxissa

Linux/Mac Terminal Tutorial: How To Use The rsync Command - Sync Files Locally and Remotely (Kesäkuu 2026)

Linux/Mac Terminal Tutorial: How To Use The rsync Command - Sync Files Locally and Remotely (Kesäkuu 2026)
Anonim

utmp tiedoston avulla voit löytää tietoja siitä, kuka käyttää järjestelmää tällä hetkellä. Järjestelmää voi käyttää useampia käyttäjiä, koska kaikki ohjelmat eivät käytä utmp-kirjautumista.

Varoitus: utmp ei voida kirjoittaa, koska monet järjestelmäohjelmat (typerästi) riippuvat sen eheydestä. Voi vaurioittaa järjestelmän lokitiedostoja ja muuttaa järjestelmätiedostoja, jos poistututmpjokaiselle käyttäjälle.

Tiedosto on joukko merkintöjä, joilla on seuraava rakenne, joka on ilmoitettu sisällytettävässä tiedostossa (huomaa, että tämä on vain yksi useista määritelmistä, yksityiskohdat riippuvat libc-versiosta):

#define UT_UNKNOWN 0 #define RUN_LVL 1 #define BOOT_TIME 2 #define NEW_TIME 3 #define OLD_TIME 4 #define INIT_PROCESS 5 #define LOGIN_PROCESS 6 #define USER_PROCESS 7 #define DEAD_PROCESS 8 #define TILINPÄÄTÖS 9 #define UT_LINESIZE 12 #define UT_NAMESIZE 32 #define UT_HOSTSIZE 256 struct exit_status {lyhyt int e_termination; / * prosessin lopetustila. * / short int e_exit; / * prosessin poistumistila. * /}; struct utmp {short ut_type; / * kirjautumistyyppi * / pid_t ut_pid; / * pid kirjautumisprosessista * / char ut_line UT_LINESIZE; / * tty - "/ dev /" * / char ut_id laitteen nimi 4; / * init id tai lyhenne. ttyname * / char ut_user UT_NAMESIZE; / * käyttäjätunnus * / char ut_host UT_HOSTSIZE; / * palvelimen nimi kauko-kirjautumiseen * / struct exit_status ut_exit; / * DEAD_PROCESS-merkinnän prosessin poistumistila. * / pitkä ut_session; / * istunto ID, jota käytetään ikkunointiin * / struct timeval ut_tv; / * aika merkittiin. * / int32_t ut_addr_v6 4; / * Etäisännän IP-osoite. * / char pad 20; / * Varattu myöhempää käyttöä varten. * /}; / * Taaksepäin yhteensopivuus hakata. * / #define ut_name ut_user #ifndef _NO_UT_TIME #define ut_time ut_tv.tv_sec #endif #define ut_xtime ut_tv.tv_sec #define ut_addr ut_addr_v6 0

Tämä rakenne antaa käyttäjän päätelaitteeseen liittyvän erityistiedoston, käyttäjän kirjautumistunnuksen ja kirjautumisajan muodossa olevan nimen.aika(2). String-kentät päättyvät'' jos ne ovat lyhyempiä kuin kentän koko.

Ensimmäiset luodut tulokset ovat peräisin sen sisällä (8) käsittely inittabiin (5). Ennen kuin merkintä käsitellään, sen sisällä (8) puhdistaa utmp asettamallaut_type ettäDEAD_PROCESS, selvitysut_user, ut_host, jaut_time jossa on nolla tavua kunkin tietueen osaltaut_type ei oleDEAD_PROCESS taiRUN_LVL ja jossa ei ole prosessia PID: n kanssaut_pid olemassa. Jos tyhjää kirjaa ei tarvitaut_id voidaan löytää, init luo uuden. Se asettaaut_id alkaen inittab,ut_pid jaut_time nykyisiin arvoihin jaut_type ettäINIT_PROCESS.

Getty (8) sijoittaa tulon pit, muutoksetut_type ettäLOGIN_PROCESS, muutoksetut_time, asetetaanut_line, ja odottaa yhteyden muodostamista. Kirjaudu sisään (8), kun käyttäjä on todennut, muuttuuut_type ettäUSER_PROCESS, muutoksetut_time, ja asettaaut_host jaut_addr. Riippuen Getty (8) ja Kirjaudu sisään (8), tietueet voidaan sijoittaaut_line sen sijasta, että suositeltavaut_pid.

Kun sen sisällä (8) havaitsee, että prosessi on poistunut, se paikallistaa sen utmp-merkinnänut_pid, asetetaanut_type ettäDEAD_PROCESS, ja tyhjeneeut_user, ut_host jaut_time nolla tavulla.

xterm (1) ja muut pääteemulaattorit tuottavat suoraan aUSER_PROCESS tallentaa ja tuottaaut_id käyttämällä kahta viimeistä kirjainta/ Dev / ttyp % C tai käyttämälläp % d varten/ Dev / pts / % d . Jos he löytävät aDEAD_PROCESS tämän id, ne kierrättää sitä, muuten ne luo uuden merkinnän. Jos he voivat, he merkitsevät senDEAD_PROCESS kun poistutaan käytöstä ja on suositeltavaa, että ne poistetaan käytöstä ut_line,ut_time, ut_user, jaut_host yhtä hyvin.

xdm (8) ei pitäisi luoda utmp-tallennetta, koska ei ole määritettyä päätelaitetta. Salli sen luominen johtaa virheisiin, kuten "sormi: ei voi stat /dev/machine.dom". Sen pitäisi luoda wtmp-merkinnät, aivan kuten ftpd (8).

telnetd (8) säädetään aLOGIN_PROCESS ja jättää loput Kirjaudu sisään (8) tavalliseen tapaan. Kun telnet-istunto päättyy, telnetd (8) puhdistaa ulostyönnetty päällä kuvatulla tavalla.

wtmp tiedosto tallentaa kaikki sisäänkirjautumiset ja kirjautumiset. Sen muoto on täsmälleen samautmp paitsi että nollanimeä koskeva nimi ilmoittaa uloskirjautumisen liittyvälle päätteelle. Lisäksi terminaalin nimi'~'käyttäjänimellä"sammuttaa" tai"Reboot" osoittaa järjestelmän sammuttamisen tai uudelleenkäynnistyksen ja päätelaitteiden parin'|'/'}' kirjaa vanhan / uuden järjestelmän ajan, jolloin Treffi (1) muuttaa sitä.wtmp ylläpitää Kirjaudu sisään (1), sen sisällä (1) ja joitain versioita Getty (1). Kumpikaan näistä ohjelmista ei luo tiedostoa, joten jos se poistetaan, tallennustila ei ole käytössä.