Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

traçage des utilisateurs

2 réponses
Avatar
olive
Bonjour,

J'envisage de lancer un petit projet qui dépasse un peu mes compétences
techniques actuelles. Soit une médiathèque disposant de trois postes
d'accès à Internet pour le public, tournant sous Ubuntu 10.10.
Légalement, nous devons garder trace du passage de chaque utilisateur et
actuellement, c'est fait à la main sur des registres papier, avec un
utilisateur générique. Je suis bien conscient qu'il y a bien mieux à
faire.

Contrainte : pas de vrai serveur à disposition (l'appli métier est
accessible par le web), et je ne me sens pas d'en gérer un "en
production". Pas de budget non plus.

Le but : tracer les utilisateurs i.e. que chaque connexion (début et
fin) d'un usager soit enregistrée dans un fichier qui s'imprime
automatiquement par exemple en fin de semaine, que nous archiverons. Il
faut que chaque usager puisse se logger indifféremment à chacun des 3
postes, mais il n'est pas nécessaire qu'il ait accès à des fichiers
personnels quelle que soit la machine utilisée.

J'ai cherché un peu sur le web pour voir s'il existe des logiciels
adaptés, mais pas trouvé grand-chose. Voici ce que j'envisage :

- un script permettant de créer un utilisateur (même nom, même mdp) sur
les trois machines publiques, via ssh, à partir d'une quatrième machine
pro celle-ci, sous Ubuntu aussi. Ça, je vois à peu près comment faire,
même s'il me faudrait travailler un peu mon bash.

- il faudrait que la session des Ubuntu "publiques" se ferme après x
minutes d'inactivité (x=2 à 5) pour revenir à l'écran de login. Possible
?

- Il faudrait un fichier de log qui indique qui s'est connecté de telle
heure à telle heure sur une machine, et uniquement les usagers
légitimes, pas les tentatives infructueuses : ça existe ? Ce fichier
serait imprimé à une heure régulière de la semaine, moyennant une tâche
CRON, et effacé pour la semaine suivante.

Voilà pour les bases : ça vous semble réaliste, ou je me plante
complètement dans mon analyse ?

Après, on pourrait raffiner : création d'une interface graphique pour
la création des login/mdp, envoi des fichiers de logs par mail à la
machine pro et création d'un document unique mis en forme sous LaTeX,
mais on verrait ça dans un deuxième temps.

Rien n'est lancé, ce sont des idées en première approche : je suis
preneur de toute remarque ou conseil.



--
Olivier -- "On est comme tous les artistes, on croit à notre produit."
-+-groupe Début de Soirée-+-

2 réponses

Avatar
Fabien LE LEZ
On Wed, 27 Apr 2011 20:37:37 +0200, olive :

que chaque connexion (début et
fin) d'un usager soit enregistrée dans un fichier



Ça, c'est le plus facile : c'est déjà fait.
Toute connexion d'un utilisateur est enregistrée dans
/var/log/auth.log.

Pour afficher le début et la fin de chaque session locale :
grep -E ' session ((opened)|(closed)) for user '
/var/log/auth.log | grep 'login:session'

Ce fichier
serait imprimé à une heure régulière de la semaine, moyennant une tâche
CRON, et effacé pour la semaine suivante.



Empêcher logrotate de se lancer automatiquement (virer le fichier
/etc/cron.daily/logrotate), et le lancer explicitement une fois que le
résultat est imprimé.


un script permettant de créer un utilisateur (même nom, même mdp) sur
les trois machines publiques, via ssh, à partir d'une quatrième machine
pro celle-ci, sous Ubuntu aussi.



C'est une solution. Une autre serait de centraliser les comptes sur
une machine "serveur" (ça peut être n'importe quel PC, en fait) via
LDAP.

Ta solution est plus robuste en cas de panne d'une machine
(puisqu'elle ne dépend pas d'un serveur), mais tu cours le risque de
désynchronisation (toutes les machines n'ont pas les mêmes infos).
Avatar
LENHOF Jean-Yves
Le 27/04/2011 20:57, Fabien LE LEZ a écrit :
On Wed, 27 Apr 2011 20:37:37 +0200, olive:

que chaque connexion (début et
fin) d'un usager soit enregistrée dans un fichier



Ça, c'est le plus facile : c'est déjà fait.
Toute connexion d'un utilisateur est enregistrée dans
/var/log/auth.log.

Pour afficher le début et la fin de chaque session locale :
grep -E ' session ((opened)|(closed)) for user '
/var/log/auth.log | grep 'login:session'



Pourquoi ne pas utiliser la commande last ?

Cdlt,

JYL