Provided by: manpages-ru-dev_4.27.0-1_all bug

НАИМЕНОВАНИЕ

       login, logout - добавление записей utmp и wtmp

БИБЛИОТЕКА

       System utilities library (libutil, -lutil)

ОБЗОР

       #include <utmp.h>

       void login(const struct utmp *ut);
       int logout(const char *ut_line);

ОПИСАНИЕ

       В  файл  utmp  записываются  все,  кто в данный момент пользуется системой. В файле wtmp записываются все
       входы и выходы пользователей. См utmp(5).

       Функция login() принимает указанные struct utmp, ut и записывает их в файлы utmp и wtmp.

       Функция logout() очищает запись в файле utmp.

   Особенности GNU
       Если быть точнее, функция login() получает структуру ut в качестве аргумента, заполняет поле  ut->ut_type
       (если  такое  поле  есть) значением USER_PROCESS и поле ut->ut_pid (если такое поле есть) идентификатором
       вызывающего процесса (PID). После этого она пытается заполнить поле  ut->ut_line.  Функция  берёт  первый
       stdin,  stdout,  stderr,  являющийся  терминалом,  и сохраняет соответствующий путь (за исключением /dev/
       спереди) в это поле, после чего записывает структуру в файл utmp. В случае, если имя терминала  не  будет
       обнаружено,  данное  поле  будет  заполнено «???», а структура не будет записана в файл utmp. После этого
       структура будет записана в файл wtmp.

       Функция logout() ищет в файле utmp запись, соответствующую аргументу ut_line. Если запись находится,  она
       обновляется заполнением нулям полей ut_name и ut_host, обновляется временная отметка в поле ut_tv, а поле
       ut_type (если такое поле есть) устанавливается в DEAD_PROCESS.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       Функция  logout()  возвращает  1,  если  запись  была  успешно записана в базу данных, и 0, если возникла
       ошибка.

ФАЙЛЫ

       /var/run/utmp
              база учётных записей пользователей, настраивается через _PATH_UTMP в <paths.h>

       /var/log/wtmp
              файл журнала учёта пользователей, настраивается через _PATH_WTMP в <paths.h>

АТРИБУТЫ

       Описание терминов данного раздела смотрите в attributes(7).
       ┌───────────────────┬──────────────────────┬────────────────────────────────────────────────────────────┐
       │ ИнтерфейсАтрибутЗначение                                                   │
       ├───────────────────┼──────────────────────┼────────────────────────────────────────────────────────────┤
       │ login(), logout() │ Безвредность в нитях │ MT-Unsafe race:utent sig:ALRM timer                        │
       └───────────────────┴──────────────────────┴────────────────────────────────────────────────────────────┘

       В приведённой выше  таблице  utent  в  race:utent  означает,  что  если  любая  из  функций  setutent(3),
       getutent(3)  или  endutent(3) используется одновременно в нескольких нитях программы, то может возникнуть
       состязательность по данным.  Эти  функции  вызываются  из  login()  и  logout(),  поэтому  мы  используем
       race:utent для напоминания.

ВЕРСИИ

       The  member  ut_user  of struct utmp is called ut_name in BSD.  Therefore, ut_name is defined as an alias
       for ut_user in <utmp.h>.

СТАНДАРТЫ

       BSD.

СМОТРИТЕ ТАКЖЕ

       getutent(3), utmp(5)

ПЕРЕВОД

       Русский перевод этой страницы руководства разработал(и) Artyom  Kunyov  <artkun@guitarplayer.ru>,  Azamat
       Hackimov   <azamat.hackimov@gmail.com>,   Dmitry   Bolkhovskikh  <d20052005@yandex.ru>,  Katrin  Kutepova
       <blackkatelv@gmail.com>, Konstantin Shvaykovskiy <kot.shv@gmail.com>, Yuri  Kozlov  <yuray@komyakino.ru>,
       Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

       Этот  перевод является свободной программной документацией; он распространяется на условиях общедоступной
       лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html  версии  3  или
       более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

       Если  вы  обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом
       разработчику(ам)  по  его(их)  адресу(ам)  электронной  почты  или  по   адресу   списка рассылки русских
       переводчиков.

Справочные страницы Linux 6.9.1                   2 мая 2024 г.                                         login(3)