Bližší specifikace úlohy
Finger umožńuje získávat informace o
uživatelích systému i o uživatelích celé síťě. Pomocí služby finger lze
získat informace o lokálním uživateli, o jiném počítači např. "@decsys",
informace o uživateli vzdáleného počítače např. john@decsys, nebo informace
o lokalním počítači -neuvede se žádný parametr.
Gramatika dotazu ma tvar:
Pak je dotaz odeslán serveru funkcí write(). Po přijetí odpovědi (opakované voláni read() ve smyčce) je přijatý řetězec zobrazen.
Soubor utmp poskytuje informace o tom, kdo je aktuálně přihlášen do systému. Je to vlastně posloupnost nasledujících struktur:
struct utmp { short ut_type; /* type of login */ pid_t ut_pid; /* pid of login process */ char ut_line[UT_LINESIZE]; /* device name of tty - "/dev/" */ char ut_id[4]; /* init id or abbrev. ttyname */ char ut_user[UT_NAMESIZE]; /* user name */ char ut_host[UT_HOSTSIZE]; /* hostname for remote login */ struct exit_status ut_exit; /* The exit status of a process marked as DEAD_PROCESS. */ long ut_session; /* session ID, used for windowing*/ struct timeval ut_tv; /* time entry was made. */ int32_t ut_addr_v6[4]; /* IP address of remote host. */ char pad[20]; /* Reserved for future use. */ }V našem případě pracujeme s položkou ut_user -uživatelské jméno a položkou ut_line -jméno tty. Soubor passwd je textový soubor, který obsahuje seznam uživatelů systému a hesel.
Každý jeden záznam, má následující formát:
login_name:passwd:UID:GID:user_name:directory:shell Popis jednotlivch pol: login_name přihlašovací jméno uživatele systému password zašifrované heslo uživatele UID identifikace uživatele (user ID) GID identifikace skupiny (group ID) user_name (volitelná) poznámka (často celé jméno uživatele) directory domovský adresář uživatele ($HOME) shell program, který je spuštěn po přihlášení (jestlžie je prázdný, použije se /bin/sh).V našem případě pracujeme s položkou login name, user_name, directory, shell.