Conseils utiles

Utilisateurs Linux - Ajouter, modifier, supprimer

Pin
Send
Share
Send
Send


Linux étant un système multi-utilisateur, l’utilisateur est donc un concept clé pour organiser l’ensemble du système d’accès sous Linux. Lorsqu'un utilisateur se connecte au système (passe par la procédure d'autorisation, par exemple, en entrant le nom et le mot de passe du système), il est identifié par compte, dans lequel le système stocke des informations sur chaque utilisateur: son nom de système et d'autres informations nécessaires pour travailler avec lui. C'est avec les comptes, et non avec les utilisateurs eux-mêmes, que le système fonctionne. Ce qui suit est une liste de ces informations.

Créer et supprimer un utilisateur sous Linux - useradd

La commande Useradd est utilisée pour ajouter des utilisateurs, et ils sont supprimés à l'aide de userdel. Créons deux comptes, nous continuerons à travailler avec l'un et supprimons le second.

Avant d'ajouter un compte sur un serveur inconnu, commencez par examiner les paramètres par défaut des nouveaux utilisateurs. useradd utilise le modèle spécifié dans le fichier / etc / default / useradd. Voyons ce que nous avons là:

Ce qui est important pour nous ici:

  • HOME = / home - le répertoire dans lequel le dossier personnel de l'utilisateur sera créé, il s'agit généralement de / home
  • INACTIVE = -1 - le nombre de jours après lequel le compte sera verrouillé pour toujours après l'expiration du mot de passe. -1 signifie ici que l'opportunité n'est pas utilisée.
  • EXPIRE = - date à laquelle l'utilisateur sera bloqué. Maintenant vide, alors jamais.
  • SHELL = / bin / bash - quel shell sera utilisé par l'utilisateur.
  • SKEL = / etc / skel - le dossier dans lequel se trouvent les fichiers qui seront copiés dans le répertoire de base du nouvel utilisateur.

En fait, tout nous convient, créons un compte:

-m indique que vous devez créer un dossier utilisateur dans / home s'il ne s'y trouve pas déjà.
Et créez immédiatement le second:

Pour changer, en utilisant le commutateur -s, j’ai indiqué que le shell n’était pas bash, mais sh. A -c définit un commentaire pour l'utilisateur utilisé, généralement sous le nom complet de l'utilisateur.

Quelles clés useradd comprend-il encore:
-b - définit le répertoire de base dans lequel le dossier de base de l'utilisateur sera créé. Par défaut / home
-d - définit le nom du répertoire de base. Par défaut, le nom correspond au nom d'utilisateur
-e Date à laquelle l'utilisateur est bloqué. Définir dans le format AAAA-MM-JJ. Désactivé par défaut. Correspond à EXPIRE dans le modèle / etc / default / useradd,
-f - correspond à INACTIF dans le modèle, comme déjà mentionné, la date d'expiration du mot de passe avant le blocage,
-g - définit le groupe principal pour le nouvel utilisateur. Le GID ou le nom du groupe est indiqué. Si le paramètre n'est pas spécifié, le nom du groupe sera le même que le nom d'utilisateur,
-G - une liste de groupes supplémentaires pour l'utilisateur en cours de création,
-k est le chemin du répertoire du modèle. Correspond à SKEL dans le modèle,
-u - pour définir l'utilisateur UID manuellement.

Identifiant d'utilisateur (UID)

Liaisons Linux nom du système c identifiant utilisateur dans le système - UID (ID utilisateur). UID Est un entier positif par lequel le système suit les utilisateurs 1. Habituellement, ce numéro est automatiquement sélectionné lors de l'enregistrement d'un compte, mais il ne peut pas être complètement arbitraire. Linux a quelques conventions concernant les types d'identifiants d'utilisateurs d'une plage donnée pouvant être émis. En particulier UID “0” à “100” sont réservés pour pseudo utilisateurs 2 .

Identifiant de groupe (GID)

En plus de l'ID utilisateur, le compte est associé à identifiant de groupe. Groupes d'utilisateurs utilisé pour organiser l'accès de plusieurs utilisateurs à certaines ressources. Le groupe, comme l'utilisateur, a un nom et un numéro d'identification - Gid (ID de groupe). Sous Linux, chaque utilisateur doit appartenir à au moins un groupe - groupe par défaut. Lors de la création d'un compte utilisateur, un groupe est généralement créé, dont le nom coïncide avec nom du système 3, c'est ce groupe qui sera utilisé comme groupe par défaut pour cet utilisateur. Un utilisateur peut entrer plus d'un groupe, mais seul le numéro de groupe par défaut est indiqué dans le compte. Les groupes vous permettent de contrôler l'accès de plusieurs utilisateurs à diverses ressources.

Nom complet

Outre nom du système le compte contient et nom complet (nom et prénom) de la personne utilisant ce compte. Bien entendu, l'utilisateur peut spécifier n'importe quoi en tant que prénom et nom. Un nom complet est nécessaire, non pas tant pour le système que pour les utilisateurs, afin de pouvoir déterminer à qui appartient le compte.

Exemple de création d'un utilisateur avec des privilèges sudo

Connectez-vous au serveur en tant que root:

ssh root @ adresse_ip_serveur

Entrez la commande adduser Pour créer un nouveau compte dans le système:

adduser nom d'utilisateur

Définissez et confirmez le mot de passe du nouvel utilisateur en suivant les instructions à l'écran:

Si le mot de passe est correctement mis à jour, le système affichera un message:

Suivez les instructions à l'écran pour saisir des informations sur le nouvel utilisateur. Vous pouvez accepter les valeurs par défaut en laissant les champs de saisie vides.

Entrez une nouvelle valeur ou appuyez sur ENTREE pour définir les valeurs par défaut.

Ensuite, le système vous demandera de confirmer que toutes les données ont été entrées correctement:

Appuyez sur la touche Y pour confirmer que les données saisies sont correctes.

Utiliser la commande Usermod Pour ajouter un utilisateur au groupe sudo:

usermod -aG sudo nom d'utilisateur

Par défaut, dans Ubuntu, les membres du groupe SUDO ont des privilèges SUDO.

Utiliser la commande su pour accéder au nouveau compte d'utilisateur:

su - nom d'utilisateur

En tant que nouvel utilisateur, assurez-vous que vous pouvez utiliser les droits Sudo en tapant sudo avant la commande que vous exécutez avec les privilèges de superutilisateur:

sudo command_to_run

Par exemple, vous pouvez afficher le contenu du répertoire / root, qui est généralement accessible uniquement au super-utilisateur:

sudo ls -la / root

Lorsque vous utilisez Sudo dans une session pour la première fois, il vous sera demandé de saisir le mot de passe du compte utilisateur. Entrez le mot de passe pour continuer:

Si l'utilisateur se trouve dans le groupe correspondant et que le mot de passe est entré correctement, la commande commençant par sudo doit être exécutée avec les privilèges de superutilisateur.

Modifier les paramètres du compte d'utilisateur

Utiliser la commande chfn Vous pouvez entrer ou modifier les informations du compte utilisateur (nom complet, numéro de téléphone professionnel, coordonnées professionnelles, etc., nom d'utilisateur - nom d'utilisateur):

chfn -f nom_complet -o office -p work_phone -h home_phone -u -v nom d'utilisateur

Pour définir un mot de passe, utilisez la commande passwd:

nom d'utilisateur passwd

À la suite de la commande, il nous sera demandé de saisir un nouveau mot de passe et de le répéter.

Si nous voulons donner à l'utilisateur la possibilité de changer le mot de passe lors de la première connexion, vous devez entrer la commande suivante:

changer -d 0 nom d'utilisateur

Afficher les comptes d'utilisateurs

Toutes les informations du compte utilisateur sont stockées dans le fichier / etc / passwd.

Pour voir la liste des utilisateurs, vous devez entrer la commande:

cat / etc / passwd

La sortie peut ressembler à ceci:

Cette ligne a le format suivant:

compte: mot de passe: UID: GID: GECOS: répertoire: shell

compte - nom d'utilisateur
mot de passe - mot de passe utilisateur crypté
UID - numéro d'identification de l'utilisateur
Gid - numéro d'identification du groupe d'utilisateurs principal
Gecos - un champ facultatif utilisé pour indiquer des informations supplémentaires sur l'utilisateur (par exemple, le nom complet de l'utilisateur)
répertoire - répertoire personnel de l'utilisateur ($ HOME)
coquille - shell utilisateur (généralement / bin / sh)

Pour afficher la liste des utilisateurs qui se trouvent actuellement dans le système, utilisez la commande qui ou w.

Résultat de la commande qui ressemble à ceci:

Résultat de la commande w ressemble à ceci:

Gestion de compte d'utilisateur

Les comptes d'utilisateur Linux peuvent être gérés de trois manières équivalentes. Tout d'abord, vous pouvez utiliser les outils graphiques fournis par votre distribution. L'apparence et le fonctionnement de ces outils dépendent de la distribution que vous utilisez. Si vous êtes un utilisateur inexpérimenté de votre système Linux domestique, utilisez l’outil graphique fourni par votre distribution. Cette approche est garantie pour éviter les problèmes.

Une autre option consiste à utiliser des outils de ligne de commande tels que useradd, usermod, gpasswd, passwd et autres. Les administrateurs de serveur sont plus susceptibles d'utiliser ces outils, car ils leur sont familiers et sont également fournis tels quels dans le cadre de diverses distributions. Ce chapitre se concentrera sur ces mêmes outils en ligne de commande.

Une troisième façon assez radicale de gérer les comptes d'utilisateurs consiste à modifier directement les fichiers de configuration locaux à l'aide de l'éditeur de texte vi (ou vipw / vigr). N'essayez pas de le faire lorsque vous utilisez des systèmes en exploitation commerciale, si vous ne possédez pas les connaissances appropriées!

Fichier / etc / passwd

Comme vous pouvez le constater, ce fichier contient des données sous forme de tableau à sept colonnes séparées par deux points. Les colonnes contiennent le nom d'utilisateur, le caractère x, l'ID utilisateur, l'identifiant du groupe d'utilisateurs principal, la description du compte d'utilisateur, le chemin d'accès au répertoire de base de l'utilisateur et le chemin du fichier exécutable du shell utilisé pour connecter l'utilisateur au système.

Répertoire de base

Les fichiers de tous les utilisateurs sur Linux sont stockés séparément, chaque utilisateur a son propre répertoire de basedans lequel il peut stocker ses données. L'accès d'autres utilisateurs au répertoire de base de l'utilisateur peut être restreint. Les informations sur le répertoire de base doivent être présentes dans le compte, car c'est de lui que l'utilisateur qui se connecte au système commence à fonctionner.

Shell de connexion

Le moyen le plus important d’interagir avec un système Linux est ligne de commande, qui permet à l’utilisateur de dialoguer avec le système: lui envoyer des commandes et recevoir ses réponses. Un programme spécial sert à cet effet - shell de commande (ou interpréteur de ligne de commande), en anglais - shell. Le shell initial (shell de connexion) est lancé lorsqu'un utilisateur se connecte en mode texte (par exemple, sur une console virtuelle). Étant donné que plusieurs shells sont disponibles sous Linux, le compte indique lequel des shells doit être exécuté pour cet utilisateur. Sauf si vous spécifiez spécifiquement le shell initial lors de la création du compte, celui-ci sera attribué par défaut. Il s'agira probablement de bash.

Toutes les informations de compte répertoriées sont stockées dans le fichier / etc / passwd. Des informations sur un compte d'utilisateur spécifique peuvent être obtenues à l'aide de l'utilitaire getent 4:

Le premier paramètre, passwd, est le nom de la base de données dans laquelle effectuer la recherche, il correspond au nom du fichier de configuration correspondant. Le second paramètre, testeur, est le nom du compte utilisateur (nom du système). getent affiche la ligne / etc / passwd où le compte est décrit: il contient le nom du système, le mot de passe («ici» est indiqué par la lettre «x» car le mot de passe est caché ailleurs, voir ci-dessous), UID, GID , nom complet, répertoire de base et shell initial.

Sous Linux, le mot de passe de l'utilisateur n'est pas explicitement stocké nulle part, mais uniquement dans celui crypté. Dans les systèmes modernes, on utilise généralement les «mots de passe masqués», qui sont stockés séparément des autres informations sur le compte, et vous permettent également d'affecter des restrictions supplémentaires, en particulier la «date d'expiration» du mot de passe. En fonction de la gravité de la politique de sécurité, les mots de passe utilisateur chiffrés peuvent être stockés dans un fichier / etc / shadow commun (de manière moins stricte) ou dans un fichier shadow distinct pour chaque utilisateur. ALT Linux utilise le schéma tcb par défaut, qui implémente une politique plus stricte. Pour afficher les informations du fichier reflet, des privilèges de superutilisateur sont requis. Pour ce faire, utilisez la commande getent passwd tester. Vous pouvez en savoir plus sur les fonctionnalités des mots de passe shadow dans les manuels shadow (5) et tcb (5).

Les informations sur tous les groupes d'utilisateurs du système sont également stockées séparément. Le fichier / etc / group est conçu à cet effet. Des informations sur un groupe spécifique peuvent être obtenues à l'aide du même utilitaire getent:

L'entrée dans le fichier / etc / group est très simple: vient d'abord le nom du groupe (comme le nom du compte, puis le champ du mot de passe (ici encore «x», mais les mots de passe du groupe sont très rarement utilisés), GID, une liste de noms de compte séparés par des virgules (noms d'utilisateur) inclus dans ce groupe Tout utilisateur peut obtenir une liste des noms des groupes dans lesquels il est membre de la commande groups, ainsi que des informations plus détaillées sur son compte ou sur un autre compte à l'aide de la commande id nom d'utilisateur . L'appartenance à un groupe n'a de sens que sur un point: les droits d'accès, car pour chaque fichier, l'utilisateur-propriétaire est défini, mais également le propriétaire du groupe.

Création d'utilisateur

Pour créer un utilisateur Linux à part entière, vous devez effectuer plusieurs actions relativement indépendantes:

  • créer une entrée dans / etc / passwd, où donner au compte un nom unique, un UID, etc.,
  • créer le répertoire personnel de l'utilisateur, lui donner accès à son répertoire personnel (en faire le propriétaire du répertoire),
  • mettre dans le répertoire de base le contenu standard (généralement les fichiers de configuration), extrait de / etc / skel,
  • modifier les fichiers de configuration système, en particulier, créer un référentiel pour le courrier entrant pour un utilisateur donné (/ var / spool / mail / tester).

Toutes ces actions peuvent être effectuées manuellement, cependant, cela est très gênant et vous pouvez oublier quelque chose. Pour simplifier le processus, l’utilitaire useradd est utilisé (on l’appelle traditionnellement adduser), ce qui, bien sûr, nécessitera des privilèges d’administrateur. Dans le cas le plus simple, deux étapes suffiront:

Tout d'abord, useradd ajoute un compte (nom d'utilisateur est le seul paramètre, dans notre exemple - test), le remplit avec les valeurs par défaut et apporte les modifications nécessaires au système. En utilisant des paramètres supplémentaires lors de l'appel de useradd, vous pouvez spécifier explicitement une valeur pour un champ de compte particulier. Cet utilitaire vous permet également de modifier les paramètres de création d'utilisateur par défaut. Les détails peuvent être trouvés dans le manuel useradd (8). L'utilitaire passwd, appelé avec les privilèges de superutilisateur, vous permet d'attribuer n'importe quel mot de passe à cet utilisateur. Dans ce cas, les informations sur le mot de passe précédent de cet utilisateur (le cas échéant) seront complètement perdues. passwd, causé par un utilisateur régulier (sans paramètres), lui permet de changer son propre mot de passe, mais pour cela, vous devrez entrer le mot de passe de l'utilisateur actuel.

Il existe des utilitaires useradd similaires pour modifier les paramètres d'un compte existant (usermod) et supprimer des utilisateurs (userdel). L'utilisateur peut également modifier lui-même certaines informations non critiques de son compte. En particulier, pour installer votre nom complet et quelques autres champs d’information du compte sont l’utilitaire chfn (1) du paquet shadow-change, change coquille initiale L'utilitaire chsh (1) vous aidera (il vous permettra de sélectionner un seul des shells listés dans / etc / shells) dans le même paquet. Veuillez noter que dans ALT Linux, un utilisateur a le droit de modifier son propre compte uniquement si le mode d'accès approprié est défini: la commande control chsh doit renvoyer public, comme pour control chfn. Le superutilisateur peut définir l'accès requis avec la commande control chsh public (de la même manière pour chfn).

L’opération la plus courante pour travailler avec des groupes - ajouter un utilisateur à un groupe - s’effectue facilement en éditant simplement le fichier / etc / group. Il suffit d’ouvrir ce fichier dans n’importe quel éditeur de texte (bien sûr, avec les privilèges de superutilisateur), de rechercher la ligne commençant par le nom du groupe souhaité et d’ajouter le nom de l’utilisateur souhaité à la fin de cette ligne par une virgule). Pour gérer les groupes, il existe un ensemble d’utilitaires groupadd (8), groupdel (8), groupmod (8). Vous trouverez des informations détaillées sur leur utilisation dans les manuels correspondants.

Cela peut être important, par exemple, dans une telle situation: un compte d'utilisateur portant le nom test a été supprimé du système, puis ajouté à nouveau. Toutefois, d’un point de vue système, il s’agit d’un utilisateur différent, car il possède un UID différent.

2 En règle générale, Linux attribue des UID aux utilisateurs normaux à partir de «500» ou «1000».

3 Normalement, la valeur numérique du GID coïncide dans ce cas avec la valeur de l'UID.

4Cet utilitaire est également utile pour obtenir des informations sur d'autres ressources système, voir getent --help.

Pratique: gérer les comptes d'utilisateurs

1. Créez un compte utilisateur avec le nom serena et la description (ou le commentaire) "Serena Williams", ainsi que le répertoire de base de l'utilisateur. Effectuer les actions nécessaires au sein d'une équipe.

2. Créez un compte utilisateur avec le nom venus, indiquant la nécessité d'utiliser le shell bash et la description de "Venus Williams", ainsi que le répertoire de base de l'utilisateur avec une seule commande.

3. Vérifiez que les deux utilisateurs ont les entrées correctes dans les fichiers / etc / passwd, / etc / shadow et / etc / group.

4. Проверьте корректность создания домашних директорий пользователей.

5. Создайте учетную запись пользователя с именем einstime и утилитой /bin/time в качестве стандартной командной оболочки.

6. Что случится, если вы войдете в систему под именем пользователя einstime ? Можете ли вы сделать предположение о реальной ситуации, в которой было бы полезно заменить стандартную командную оболочку пользователя на приложение?

7. Создайте файл с именем welcome.txt и убедитесь в том, что каждый новый пользователь будет обнаруживать данный файл в своей домашней директории.

8. Проверьте корректность размещения созданного файла в файловой системе, создав (и удалив) тестовую учетную запись пользователя.

9. Changez le shell par défaut pour vous connecter à serena avec le shell / bin / bash. Effectuez les vérifications nécessaires avant et après le changement de shell.

La procédure correcte pour effectuer la tâche pratique: gérer les comptes d'utilisateurs

1. Créez un compte utilisateur avec le nom serena et la description (ou le commentaire) "Serena Williams", ainsi que le répertoire de base de l'utilisateur. Effectuer les actions nécessaires au sein d'une équipe.

2. Créez un compte utilisateur avec le nom venus, indiquant la nécessité d'utiliser le shell bash et la description de "Venus Williams", ainsi que le répertoire de base de l'utilisateur avec une seule commande.

3. Vérifiez que les deux utilisateurs ont les entrées correctes dans les fichiers / etc / passwd, / etc / shadow et / etc / group.

4. Vérifiez la création correcte des répertoires de départ de l'utilisateur.

5. Créez un compte d'utilisateur nommé einstime et l'utilitaire / bin / time en tant que shell standard.

6. Que se passe-t-il si vous vous connectez en tant que einstime? Pouvez-vous faire l'hypothèse d'une situation réelle dans laquelle il serait utile de remplacer le shell utilisateur standard par une application?

Un tel remplacement du shell de commande standard peut être utile si l'utilisateur n'a besoin d'accéder qu'à une seule application du serveur. Immédiatement après être entré dans le système, l'utilisateur a la possibilité de travailler avec l'application et, une fois l'application terminée, le système se déconnecte automatiquement.

7. Créez un fichier appelé welcome.txt et assurez-vous que chaque nouvel utilisateur trouvera ce fichier dans son répertoire de base.

8. Vérifiez l'emplacement du fichier créé dans le système de fichiers en créant (et en supprimant) un compte d'utilisateur test.

9. Modifiez le shell par défaut pour vous connecter à serena en tant que shell / bin / bash. Effectuez les vérifications nécessaires avant et après le changement de shell.

Regarde la vidéo: Bash Linux #2 - Gestion des utilisateurs (Mars 2021).

Pin
Send
Share
Send
Send