in

Comment modifier les données utilisateur avec chfn et usermod sous Linux

Fatmawati Achmad Zaenuri / Shutterstock

Il y a plus dans un compte d’utilisateur qu’un nom d’utilisateur. Découvrez comment définir et modifier toutes les métadonnées associées à un compte utilisateur Linux à partir de la ligne de commande.

Qu’est-ce qu’il y a dans un nom?

Si vous utilisez un ordinateur de type Linux ou Unix, vous aurez un compte utilisateur. Le nom donné au compte est le nom de votre compte utilisateur. C’est le nom que vous utilisez pour vous connecter. C’est aussi (par défaut) le nom de votre groupe de connexion et le nom de votre répertoire personnel. Ils utilisent tous le même identifiant.

Il existe un autre ensemble d’informations qui peuvent être stockées pour chaque compte utilisateur. Des données du monde réel telles que le nom complet de la personne, son numéro de bureau et son numéro de téléphone professionnel, par exemple, peuvent être définies et associées. En effet, des extraits d’informations totalement arbitraires peuvent être associés à des comptes d’utilisateurs.

En termes pratiques, cela sera plus utile pour les administrateurs système qui s’occupent d’ordinateurs sur lesquels de nombreux comptes d’utilisateurs sont configurés. Mais même pour l’ordinateur Linux mono-utilisateur, il est toujours intéressant de savoir ce qui se passe sous le capot.

Le champ GECOS

À une certaine époque, les pionniers d’Unix n’avaient pas d’imprimante propre. Ils ont dû spouler leurs travaux d’impression vers un General Electric mainframe qui exécutait le Système d’exploitation complet de General Electric (GECOS). Pour ce faire, les utilisateurs des systèmes Unix devaient stocker et utiliser les informations d’identification d’un compte sur le système GECOS.

Le champ GECOS a été créé pour stocker ces informations d’identification. Cette exigence de niche est depuis longtemps passée dans l’histoire, et le champ GECOS a été réaffecté pour stocker d’autres données liées au propriétaire du compte utilisateur. Il peut avoir un nouvel emploi, mais il conserve son ancien nom. Il est toujours appelé le champ GECOS.

Le champ est stocké dans le /etc/passwd fichier, ainsi que d’autres informations concernant le compte utilisateur:

  • Le nom d’utilisateur du compte.
  • L’ID utilisateur.
  • L’ID du groupe.
  • Chemin d’accès au répertoire de base du compte d’utilisateur.
  • Le shell qui est démarré lorsque l’utilisateur se connecte.

C’est là que le doigt commande et le pinky commande récupérer les informations qu’ils affichent.

La commande chfn

le chfn (modifier les informations du doigt) vous permet de définir et modifier les informations stockées dans le champ GECOS. Les informations sont stockées sous forme de liste séparée par des virgules dans le champ.

le chfn La commande était déjà présente sur Ubuntu 18.04.1 et Manjaro 18.1.0. Il devait être installé sur Fedora 31. Utilisez cette commande pour l’installer:

sudo dnf install util-linux-user

sudo dnf installe util-linux-user dans une fenêtre de terminal

Voyons quoi finger peut en savoir plus sur le propriétaire du compte utilisateur «dave». Pour obtenir le maximum d’informations, nous utiliserons le -l (format long) option:

finger dave -l

doigt dave -l dans une fenêtre de terminal

Voici ce qu’il a pu trouver:

Sortie de finger dave -l dans une fenêtre de terminal

Il récupère le nom d’utilisateur du compte, le répertoire de base et le shell par défaut. Ceux-ci sont tous liés à l’utilisateur. Ils ne font pas référence à la personne réelle qui utilise ce compte. Nous pouvons utiliser le chfn commande pour stocker des informations sur la personne réelle.

chfn dave

chfn dave dans une fenêtre de terminal

En utilisant chfn de cette manière démarre un processus court et interactif. Vous êtes invité à saisir une valeur de données pour chaque élément d’information que le champ GECOS peut contenir. La valeur actuelle de chaque valeur de données est affichée entre parenthèses []. Si vous souhaitez conserver les données actuelles, vous pouvez appuyer sur la touche «Entrée» et la valeur entre parenthèses sera conservée.

Le processus interactif chfn dans une fenêtre de terminal

Les informations que nous avons saisies étaient:

  • Numéro de chambre: 512
  • Téléphone de travail: 555-4567
  • Téléphone fixe: 555-5432

Session chfn terminée dans une fenêtre de terminal

Vérifions ça finger récupère ces nouvelles informations:

finger dave -l

doigt dave -l dans une fenêtre de terminal

Oui. Mais vous avez peut-être remarqué que cela ne vous demandait pas de changer le nom complet. Cela ne le fera que si vous utilisez sudo. Mais nous n’avons pas à passer par le tout chfn session à nouveau, juste parce que nous avons oublié d’utiliser sudo. Nous pouvons modifier chacune des valeurs de données individuellement.

Modification des valeurs de données individuelles

Nous pouvons définir le nom complet du propriétaire du compte utilisateur en utilisant le -f (nom complet), avec sudo.

sudo chfn -f "Dave McKay" dave

sudo chfn -f "Dave McKay" fenêtre de terminal dave ina

Et si nous vérifions une fois de plus avec finger:

Sortie du doigt dans une fenêtre de terminal

Nous pouvons voir que le nom complet a été ajouté.

Il existe d’autres options pour modifier le numéro de chambre, le numéro de téléphone personnel et le numéro de téléphone professionnel. Pour changer le numéro de chambre (bureau), utilisez le -r (numéro de chambre) option:

sudo chfn -r 633 dave

sudo chfn -r 633 dave dans une fenêtre de terminal

Notez que sur certaines distributions, vous pouvez utiliser le -o (numéro de bureau) au lieu de l’option -r option. Plus à ce sujet sous peu. Pour l’instant, pour voir les options de votre version de chfn, utilisation:

man chfn

Pour modifier le numéro de téléphone du bureau, utilisez le -w (téléphone professionnel) option:

sudo chfn -w 555-1122 dave

sudo chfn -w 555-1122 dave dans une fenêtre de terminal

Et enfin, pour changer le numéro de téléphone du domicile, utilisez le -h Option (numéro de téléphone du domicile):

sudo chfn -h 555-6576 dave

sudo chfn -h 555-6576 dave dans une fenêtre de terminal

Utilisons finger à nouveau pour voir si toutes ces modifications ont été acceptées:

finger dave -l

doigt dave -l dans une fenêtre de terminal

Succès. Toutes ces commandes ont fonctionné et les valeurs des données ont été mises à jour.

Utilisation de chfn sur d’autres comptes d’utilisateurs

Tant pis pour changer nos propres informations, qu’en est-il de changer les informations GECOS pour les autres utilisateurs? C’est tout aussi simple. Tu dois utiliser sudo quand vous le faites, mais c’est la seule différence. Vérifions quelles données sont définies pour le compte utilisateur mary:

finger mary -l

doigt mary -l dans une fenêtre de terminal

Les informations par défaut habituelles sont définies pour ce compte utilisateur. Ajoutons aux informations:

sudo chfn mary

sudo chfn mary dans une fenêtre de terminal

Nous allons exécuter la même session que précédemment, en étant invité à entrer une valeur de données pour chaque information pouvant être stockée. Et parce que nous avons utilisé sudo , on nous demande la valeur complète des données du nom.

Session terminée pour sudo chfn mary dans une fenêtre de terminal

Attendez un instant, quel est ce dernier élément, appelé « Autre? »

il n’est pas pris en charge par toutes les versions de chfn, et vous ne le voyez que si vous utilisez sudo, c’est pourquoi nous ne l’avons pas vu plus tôt lorsque nous n’avons (délibérément) pas utilisé sudo avec:

chfn dave

La valeur de données «Autre» peut contenir tout ce que vous voulez. Il n’a aucune utilisation prescrite ou prévue.

Versions de chfn qui prennent en charge le champ «Autre» fournissent également le -o (autre) option pour modifier cette valeur directement. C’est à cause du conflit entre -o pour «numéro de bureau» et -o pour «autre» que certains systèmes utilisent -r pour «numéro de chambre».

Nous pouvons voir les données stockées pour le compte utilisateur Mary dans le /etc/paswd fichier, en utilisant less:

less /etc/passwd

lass / etc / passwd dans une fenêtre de terminal

Sur les systèmes qui le prennent en charge (vérifiez le man page correspondant à votre version de chfn ), vous pouvez définir le champ «autre» directement à l’aide du -o (autre option:

sudo chfn -o "HTG Freelancer" dave

sudo chfn -o "Indépendant HTG" Dave dans une fenêtre de terminal

Et nous pouvons vérifier les données du compte utilisateur dave en utilisant le less commander:

less /etc/passwd

moins / etc / p <span data-mce-type =[asswddansunefenêtredeterminal »width= »646″height= »382″/>[asswdinaterminalwindow”width=”646″height=”382″/>

Cela soulève une question évidente. Si votre version de chfn ne prend pas en charge le champ «Autre», comment le modifier? Nous pouvons le faire avec le usermod commander.

La commande usermod

le usermod la commande vous permet de modifier les aspects d’un compte utilisateur par des actions telles que l’ajout ou la suppression du compte d’utilisateur des groupes et la modification de leur shell par défaut. Il peut également être utilisé pour manipuler directement le champ GECOS.

Regardons de plus près la ligne dans le /etc/passwd fichier pour le compte utilisateur mary. Nous utiliserons grep pour isoler cette ligne pour nous. Cela fonctionnera car les noms d’utilisateur doivent être uniques. Il ne peut y avoir qu’un seul compte utilisateur appelé mary.

grep mary /etc/passwd

grep mary / etc / passwd dans une fenêtre de terminal

Les champs dans le etc/passwd fichier sont affichés. Un colon « :”Est ​​utilisé comme séparateur de champ. de gauche à droite, les champs sont:

  • Le nom d’utilisateur du compte.
  • Un «x» indiquant le mot de passe de ce compte utilisateur est conservé crypté dans le /etc/shadow fichier.
  • L’ID utilisateur du compte utilisateur mary.
  • ID de groupe pour le compte utilisateur mary.
  • Le champ GECOS.
  • Chemin d’accès au répertoire de base du compte utilisateur mary.
  • Le shell qui est lancé lorsque le propriétaire du compte mary se connecte.

Une virgule «,» est utilisée comme séparateur pour les valeurs de données dans le champ GECOS. Les valeurs dans le champ GECOS sont, de gauche à droite:

  • Nom complet.
  • Numéro de chambre (ou bureau).
  • Numéro de téléphone professionnel.
  • Numéro de téléphone à la maison.
  • Les autres informations.

Notez que le usermod La commande définit l’ensemble du champ GECOS sur la nouvelle valeur que vous fournissez. Si vous ne fournissez que le nom complet de la personne, la seule chose dans le champ GECOS sera le nom complet. Cela signifie que vous devez fournir toutes les valeurs de données existantes que vous souhaitez conserver.

Voici un exemple. L’utilisateur Mary a été promue et elle va déménager au quatrième étage. Elle a un nouveau numéro de bureau, un nouveau numéro de téléphone professionnel, et nous allons ajouter son deuxième prénom. La valeur de son champ «Autre» va également changer. Bien que son numéro de téléphone à la maison ne change pas, nous devons le fournir dans la chaîne pour usermod.

Nous devons utiliser le -c (comment) et nous devons exécuter la commande avec sudo.

sudo usermod -c "Mary Carol Quinn,405,5559654,555-7704,Linux Advocate" mary

sudo usermod -c "Mary Carol Quinn, 405,5559654,555-7704, défenseur de Linux" Mary dans une fenêtre de terminal

En utilisant grep pour rendre compte du contenu de la /etc/passwd fichier pour mary, nous montre que les nouvelles valeurs ont été ajoutées.

grep mary /etc/passwd

grep mary / etc / passwd dans une fenêtre de terminal

Tout est flux, rien ne demeure

Des données inexactes sont sans valeur. Lorsque les informations sur les personnes changent (déménagement de bureau, changement de nom, titre de rôle), vous pouvez facilement mettre à jour leurs métadonnées pour refléter la position actuelle.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Utilisation de Server 2008 R2 comme système d'exploitation de bureau: son (partie 3)

Utilisation de Server 2008 R2 comme système d’exploitation de bureau: son (partie 3)

Pourquoi le pare-feu Windows Defender bloque-t-il certaines fonctionnalités de l'application?

Pourquoi le pare-feu Windows Defender bloque-t-il certaines fonctionnalités de l’application?