Le programme login s'occupe d'authentifier l'utilisateur (en s'assurant que le nom de l'utilisateur et le mot de passe correspondent), et de mettre en place un environnement initial pour celui-ci en positionnant les permissions pour la ligne série et en lançant le shell.
Une partie de la configuration initiale consiste à afficher le contenu du fichier /etc/motd (raccourci signifiant << message of the day >>) et à vérifier le courrier électronique. Ces tâches peuvent être désactivées en créant un fichier .hushlogin dans le répertoire de l'utilisateur.
Si le fichier /etc/nologin existe, les logins sont désactivés. Ce fichier est généralement créé par shutdown et consorts. login vérifie la présence de ce fichier et refusera d'accepter un login s'il existe. S'il existe, login affiche son contenu sur le terminal avant de se terminer.
login fait un rapport de toutes les tentatives de login qui ont échoué dans un fichier de diagnostique système (via syslog). Il rapporte aussi tous les logins de root. Ces deux rapports peuvent être utiles pour pister les intrus.
Les personnes loggées sont listées dans /var/run/utmp. Ce fichier n'est valide que jusqu'au redémarrage ou l'arrêt du système ; il est remis à zéro lors du démarrage. Il liste chaque utilisateur et le terminal (ou la connexion réseau) qu'il utilise, ainsi que d'autres informations utiles. Les commandes who, w et similaires consultent utmp pour voir qui est loggé.
Tous les logins réussis sont enregistrés dans /var/log/wtmp. Ce fichier grossit sans limite, il doit donc être nettoyé régulièrement, par exemple en utilisant une tâche cron hebdomadaire7.1. La commande last parcourt wtmp.
utmp et wtmp sont dans un format binaire (voir la page utmp du manuel en ligne) ; il n'est pas pratique de les examiner sans programmes spéciaux.