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
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
Voici ce qu’il a pu trouver:
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
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.
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
Vérifions ça finger
récupère ces nouvelles informations:
finger dave -l
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
Et si nous vérifions une fois de plus avec finger
:
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
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
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
Utilisons finger
à nouveau pour voir si toutes ces modifications ont été acceptées:
finger dave -l
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
Les informations par défaut habituelles sont définies pour ce compte utilisateur. Ajoutons aux informations:
sudo chfn mary
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.
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
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
Et nous pouvons vérifier les données du compte utilisateur dave en utilisant le less
commander:
less /etc/passwd
[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
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
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
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.