Ubuntu Server sur Linux, les choix à poser avant l'installation
Ubuntu Server est un bon choix pour héberger des services Linux stables, à condition de préparer la version LTS, l'accès SSH, les mises à jour, le pare-feu et les sauvegardes.
Informatique
Pour lister les utilisateurs Linux, évitez de commencer par un script compliqué. Dans la plupart des cas, une commande suffit pour afficher les comptes connus du système, puis une seconde pour distinguer les comptes humains, les comptes système et les utilisateurs réellement connectés.
La nuance compte : un utilisateur déclaré n’est pas forcément connecté, et un compte présent dans /etc/passwd n’est pas toujours un compte humain.
Utilisez d’abord getent passwd pour afficher les comptes utilisateurs connus par Linux. Cette commande interroge la base système configurée, pas seulement le fichier local. Pour afficher uniquement les noms, utilisez getent passwd | cut -d: -f1. Pour les sessions ouvertes, utilisez plutôt who ou w.
| Besoin | Commande | Ce que vous obtenez |
|---|---|---|
| Tous les comptes connus | getent passwd | Comptes locaux et sources NSS configurées |
| Noms uniquement | getent passwd | cut -d: -f1 | Liste simple des identifiants |
| Comptes locaux | cat /etc/passwd | Contenu du fichier local |
| Utilisateurs connectés | who ou w | Sessions actuellement ouvertes |
| Comptes avec shell | awk -F: '$7 !~ /nologin|false/ {print $1}' /etc/passwd | Comptes pouvant potentiellement ouvrir une session shell |
Chaque ligne de /etc/passwd contient des champs séparés par deux-points : nom du compte, marqueur de mot de passe, UID, GID, commentaire, répertoire personnel et shell. Le mot de passe réel n’est normalement pas stocké ici, mais dans /etc/shadow, lisible seulement par les droits adaptés.
Exemple simplifié : alice:x:1001:1001:Alice:/home/alice:/bin/bash. Ici, alice est le nom du compte, 1001 son UID, /home/alice son dossier personnel et /bin/bash son shell. Ces champs aident à repérer le type de compte, mais ils ne suffisent pas à décider qu’un compte est légitime ou suspect.
Pour approfondir ce point, consultez Zorin OS : Pourquoi cette distribution Linux, qui traite plus précisément de zorin os : pourquoi cette distribution linux séduit-elle tant les utilisateurs de windows ?.
Sur un poste isolé, /etc/passwd donne souvent une image correcte des comptes locaux. Sur un serveur d’entreprise, ce n’est pas toujours assez. La machine peut interroger un annuaire LDAP, SSSD, NIS ou Active Directory via la configuration NSS. Dans ce cas, cat /etc/passwd ne montre qu’une partie du paysage.
C’est précisément pour cela que getent passwd est préférable en premier réflexe. La commande respecte la configuration du système et renvoie les comptes que Linux sait résoudre. Pour un audit, cette différence évite de passer à côté d’utilisateurs centralisés.
Sur beaucoup de distributions, les comptes utilisateurs commencent autour de l’UID 1000, tandis que les comptes système utilisent des UID plus bas. C’est un repère pratique, pas une loi universelle. Certaines entreprises utilisent des seuils différents, des comptes de service dédiés ou une gestion centralisée.
getent passwd | awk -F: '$3 >= 1000 {print $1, $3, $6, $7}'
Cette commande affiche les comptes dont l’UID est supérieur ou égal à 1000, avec leur UID, leur répertoire personnel et leur shell. Elle donne un bon premier tri, mais vérifiez toujours la politique locale avant d’en déduire qu’un compte est humain.
Une liste d’utilisateurs devient vraiment utile quand elle est croisée avec les groupes. Sur Debian ou Ubuntu, vérifiez par exemple les membres du groupe sudo. Sur d’autres distributions, regardez aussi wheel ou les règles présentes dans /etc/sudoers et /etc/sudoers.d. Le but n’est pas de modifier tout de suite, mais de repérer qui peut élever ses privilèges.
getent group sudo
getent group wheel
Si un compte inconnu apparaît dans ces groupes, notez-le et vérifiez son usage : propriétaire, dernière connexion, clés SSH, processus associés et tickets internes. Un compte administrateur oublié est plus critique qu’un simple compte système sans shell.
Pour savoir qui est actuellement connecté, utilisez who. Pour une vue plus détaillée, w ajoute l’activité, le terminal et la charge. Ces commandes ne remplacent pas la liste des comptes : elles indiquent seulement les sessions ouvertes au moment où vous les lancez.
who : utile pour voir les sessions actives.w : plus bavard, avec activité et charge.last : utile pour consulter l’historique des connexions récentes.Lister les utilisateurs est une étape de diagnostic, pas une décision de suppression.
Le risque classique consiste à nettoyer trop vite. Un compte backup, postgres, www-data ou deploy peut être indispensable à un service. La bonne méthode consiste à documenter, vérifier l’usage, puis désactiver prudemment si le compte n’a plus de raison d’exister.
Pour un audit rapide, commencez par exporter la liste brute, puis annotez les comptes inconnus. Regroupez-les en trois familles : comptes humains, comptes de service et comptes système. Ensuite seulement, regardez les groupes sensibles, les shells autorisés, les répertoires personnels et les connexions récentes.
getent passwd.sudo ou wheel.who, w et l’historique avec last.Cette approche évite les deux erreurs opposées : ignorer un compte réellement risqué ou casser un service en supprimant un compte technique indispensable. La traçabilité compte autant que la commande.
Commencez par getent passwd, filtrez ensuite les UID élevés, puis vérifiez les sessions avec who ou w. Si vous auditez un serveur de production, ajoutez une revue des groupes sensibles, des clés SSH et des comptes de service. Une liste d’utilisateurs n’est utile que si elle mène à une décision documentée.
Gardez une règle simple : afficher la liste est sans risque, mais agir sur les comptes ne l’est pas. Avant de désactiver ou supprimer, vérifiez l’impact.
Les points clés sur linux commands permettent de préciser linux commands utiles avant d’agir en terminal.
À lire aussi