login, logout - Écrire les entrées utmp et wtmp
System utilities library (
libutil,
-lutil)
#include <utmp.h>
void login(const struct utmp *ut);
int logout(const char *ut_line);
Le fichier utmp enregistre qui utilise actuellement le système. Le
fichier wtmp enregistre toutes les connexions (Ndt : login) et
déconnexions (Ndt : logout). Consultez
utmp(5).
La fonction
login() prend la structure
utmp fournie (
ut) et
l'écrit dans les fichiers utmp et wtmp.
La fonction
logout() efface l'entrée du fichier utmp.
Plus précisément,
login() prend l'argument structure
ut, remplit le champ
ut->ut_type (s'il existe) avec la valeur
USER_PROCESS, et remplit le champ
ut->ut_pid (s'il existe)
avec le PID du processus appelant. Elle tente ensuite de remplir le champ
ut->ut_line. Elle prend le premier parmi l'entrée standard (
stdin), la sortie standard (
stdout) et la sortie d'erreur
(
stderr) qui soit un terminal (tty) et enregistre dans ce champ le
chemin correspondant, amputé d'un possible
/dev/. Elle
écrit ensuite la structure dans le fichier utmp. Si aucun terminal
(tty) n'est trouvé, le champ est renseigné avec
« ??? » et la structure n'est pas écrite
dans le fichier utmp. Après cela, la structure est écrite dans
le fichier wtmp.
La fonction
logout() cherche dans le fichier utmp une entrée
correspondant à l'argument
ut_line. Si un enregistrement est
trouvé, il est mis à jour par une mise à zéro des
champs
ut_name et
ut_host, une mise à jour du champ
d'horodatage
ut_tv et un renseignement du champ
ut_type (s'il
existe) à la valeur
DEAD_PROCESS.
La fonction
logout() renvoie 1 si l'entrée a été
correctement écrite dans la base de données, ou zéro en
cas d'erreur.
- /var/run/utmp
- base de données de comptabilité utilisateur,
configurée par _PATH_UTMP dans <paths.h>
- /var/log/wtmp
- fichier de journalisation de comptabilité
utilisateur, configuré par _PATH_WTMP dans
<paths.h>
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface |
Attribut |
Valeur |
login(), logout() |
Sécurité des threads |
MT-Unsafe race:utent sig:ALRM timer |
Dans la table ci-dessus,
utent dans
race:utent veut dire que si
une des fonctions
setutent(3),
getutent(3) ou
endutent(3)
est utilisée en parallèle dans différents fils
d'exécution (thread) d'un programme, alors des situations de
concurrences de données peuvent se produire.
login() et
logout() appellent ces fonctions, nous utilisons donc race:utent pour
le rappeler aux utilisateurs.
Absent de POSIX.1. Présent sur les systèmes BSD.
Notez que le membre
ut_user de la structure
utmp est appelé
ut_name dans BSD. C'est pourquoi
ut_name est défini comme
un alias de
ut_user dans
<utmp.h>.
getutent(3),
utmp(5)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]>, David Prévot <
[email protected]>,
Jean-Baptiste Holcroft <
[email protected]> et Grégoire
Scano <
[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter
à la
GNU
General Public License version 3 concernant les conditions de copie
et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
[email protected]