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

НАИМЕНОВАНИЕ
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)