Ajouter un utilisateur à ubuntu. Ubuntu Server - droits d'utilisateur administratif. Accès SSH par les utilisateurs bloqués

Comme le montre la réponse du lecteur, la question de la séparation des droits administratifs dans Ubuntu est encore obscure pour la plupart des administrateurs novices, nous avons donc décidé de clarifier ce problème avec ce matériel. Par conséquent, si vous ne savez pas en quoi su diffère de sudo, où la racine était cachée, etc., etc., il est temps de commencer à étudier notre article.

Commençons par une petite digression. Le système de droits administratifs Linux est enraciné dans le système d'exploitation Unix et a donc beaucoup en commun avec d'autres systèmes de type Unix : BSD, Solaris, MacOS. Dans le même temps, différentes distributions ont leur propre implémentation spécifique de points individuels, nous donnerons donc des exemples spécifiques concernant la famille Ubuntu, mais connaître les règles générales vous permettra de comprendre facilement l'environnement de tout autre système d'exploitation de type Unix.

L'utilisateur dispose de tous les droits d'administration sous Linux. racine, dont les droits ne peuvent pas être limités, le travail quotidien au nom de cet utilisateur est donc hautement indésirable : les actions imprudentes de l'utilisateur peuvent endommager le système, et compromettre ce compte donnera à l'attaquant un accès illimité au système.

Par conséquent, Linux a un schéma différent, tous les utilisateurs, y compris les administrateurs, travaillent sous un compte limité et utilisent l'un des mécanismes d'élévation pour effectuer des actions administratives. Pour ce faire, vous pouvez élever les droits à l'aide de l'utilitaire sudo ou connectez-vous en tant que superutilisateur (root "a) sans terminer la session en cours à l'aide de la commande su. Beaucoup confondent à tort ces deux mécanismes, nous allons donc les analyser plus en détail.

Commande su vous permet de vous connecter en tant qu'un autre utilisateur (pas nécessairement root) sans mettre fin à la session en cours. Donc la commande :

Su Petrov

vous permettra de vous connecter en tant qu'utilisateur petrov, l'environnement de l'utilisateur (dossier personnel) sera également modifié pour appartenir à cet utilisateur.

Commande su sans spécifier de nom d'utilisateur vous permet de vous connecter avec un compte racine"a. Cependant, cette méthode présente un inconvénient important - pour vous connecter au nom d'un autre utilisateur, vous devez connaître son mot de passe. Si vous avez plusieurs administrateurs, chacun d'eux connaîtra le mot de passe du superutilisateur et vous ne pourrez pas restreindre leurs droits.

De plus, ce n'est pas sûr, connaître le mot de passe du superutilisateur et la possibilité de se connecter sous son nom en cas de compromission peut entraîner une perte totale de contrôle sur le système.

Que se passe-t-il si nous essayons d'élever les droits dans Ubuntu de cette manière ? Nous ne réussirons pas car nous ne connaissons pas le mot de passe de l'utilisateur racine, en même temps, personne ne nous empêche de nous connecter sous un autre utilisateur.

"Attendez!" - un autre utilisateur dira : - "Mais le premier utilisateur créé, que nous spécifions lors de l'installation, n'obtient-il pas les droits root ?" En effet, les tâches administratives ne peuvent être effectuées qu'au nom de l'utilisateur créé lors de l'installation, si vous essayez de le faire cela au nom d'un autre utilisateur, nous subirons un échec.

Ici, nous nous rapprochons du deuxième mécanisme d'élévation - l'utilitaire sudo. Cependant, avant de procéder à son étude, il convient de clarifier: les droits de superutilisateur (root) dans Ubuntu appartiennent au compte root, qui est désactivé par défaut. Par conséquent, élevez les droits avec la commande su ne semble pas possible.

Le principal mécanisme d'élévation dans Ubuntu est l'utilitaire sudo. Cet utilitaire vous permet d'élever les droits au niveau superutilisateur pour la commande en cours d'exécution, alors que vous n'avez pas besoin de connaître le mot de passe superutilisateur, l'utilisateur doit saisir son propre mot de passe. Après cela, l'utilitaire vérifiera si l'utilisateur donné a le droit d'exécuter la commande donnée sur l'hôte donné avec les droits de superutilisateur et, en cas de réussite des vérifications, l'exécutera.

C'est important! La principale différence suà partir de sudo sert à quoi su vous permet de changer l'utilisateur actuel en root, ce qui nécessite un compte superutilisateur actif dans le système et la connaissance de son mot de passe, sudo vous permet d'élever les droits pour la commande en cours d'exécution sans spécifier le mot de passe du superutilisateur, l'utilisateur doit entrer son propre mot de passe, la connexion en tant que root avec ces informations d'identification ne fonctionnera pas.

Autre circonstance importante, lors de l'utilisation d'un pipeline ou d'une redirection avec des droits de superutilisateur, seule la première partie de la commande sera exécutée, par exemple, dans la construction :

commande sudo1 | équipe2

en tant que root n'exécutera que équipe1. Une équipe

Sudo cat sources.list > /etc/apt/sources.list

donnera une erreur d'autorisation car l'entrée dans /etc/apt/sources.list se produira avec des droits d'utilisateur normaux.

Pour exécuter des combinaisons complexes de commandes, vous pouvez passer en mode superutilisateur avec la commande

ce qui revient à élever les droits avec la commande su, cependant, l'environnement utilisateur ne changera pas et le répertoire de l'utilisateur actuel sera utilisé comme répertoire d'accueil, ce qui est pratique et sûr. Chacun des administrateurs n'aura accès qu'à son répertoire personnel.

Il est maintenant temps de déterminer qui a le droit d'utiliser les opportunités sudo et dans quelle mesure. Le fichier est responsable des paramètres de cet utilitaire. /etc/sudoers, bien qu'il s'agisse d'un fichier de configuration standard, il est fortement recommandé d'utiliser la commande pour le modifier :

sudo visudo

Cette commande verrouille le fichier et effectue une vérification de la syntaxe, sinon vous risquez de perdre l'accès administratif au PC en raison d'une faute de frappe.

La syntaxe de ce fichier est très simple. Par exemple, à la toute fin du fichier, il y a une entrée :

%admin TOUS=(TOUS) TOUS

Cela signifie que les utilisateurs du groupe administrateur peut exécuter n'importe quelle commande sur n'importe quel hôte, au nom de n'importe quel utilisateur. Comment pouvons-nous vérifier facilement avec la commande groupes dans notre cas l'utilisateur andré appartient au groupe administrateur, et l'utilisateur pétrov non.

Mais tous les avantages de cet utilitaire résident dans la possibilité de configurer de manière flexible les paramètres d'obtention des droits dans chaque cas spécifique. Par example:

Petrov ubuntu-lts=(andrey) TOUT

Cette ligne permet à l'utilisateur pétrov exécuter n'importe quelle commande sur l'hôte ubuntu-lts au nom de l'utilisateur andré. Lorsque vous spécifiez des commandes, vous devez spécifier leur chemin d'accès complet, vous pouvez le trouver à l'aide de la commande lequel

Par exemple, nous voulons autoriser les utilisateurs pétrov et sidorovéteignez et redémarrez l'ordinateur et supprimez des tâches. Cependant, ces commandes ne doivent pas nécessiter de mot de passe.

Une autre fonctionnalité intéressante de l'utilitaire sudo est la création d'alias, donc dans notre cas, nous ajoutons à /etc/sudoers les lignes suivantes :

User_Alias ​​​​USERGROUP1 = petrov, sidorov
Cmnd_Alias ​​​​CMDGROUP1 = /bin/kill, /sbin/reboot, /sbin/shutdown

Avec cela, nous avons créé deux alias GROUPE D'UTILISATEURS1, où nous avons inclus les utilisateurs dont nous avons besoin et CMDGROUP1 avec un ensemble de commandes nécessaires, plus tard, nous ne pouvons modifier que les alias, sans affecter toutes les règles où ils peuvent être utilisés. Ajoutons ensuite une règle :

USERGROUP1 ALL = (ALL) NOPASSWD:CMDGROUP1

qui permettra aux utilisateurs répertoriés dans l'alias spécifié d'exécuter des commandes à partir de l'alias spécifié sur n'importe quel hôte au nom de n'importe quel utilisateur sans entrer de mot de passe.

En plus des deux ci-dessus, des alias sont également disponibles pour le nom d'hôte et les utilisateurs au nom desquels il est autorisé à exécuter des commandes, par exemple :

Host_Alias ​​​​www = serveur Web1, serveur Web2
Runas_Alias ​​​​WWW = www-données, www-développeur

GROUPE D'UTILISATEURS1 WWW=(WWW)ALL

L'ensemble d'enregistrements ci-dessus permettra aux utilisateurs connectés à GROUPE D'UTILISATEURS1 exécuter toutes les commandes au nom des utilisateurs www-données et www-développeur sur les serveurs Web de l'entreprise.

Enfin, réfléchissez à ce qu'il faut faire si le compte root est toujours nécessaire. C'est simple, pour l'activer, il suffit de définir un mot de passe :

sudo mot de passe racine

Vous pouvez à nouveau verrouiller le compte superutilisateur avec la commande :

sudo passwd -l racine

N'oubliez pas que toutes les tâches administratives dans Ubuntu peuvent être effectuées à l'aide de l'utilitaire sudo. N'activez donc pas le compte root à moins que vous n'en ayez vraiment besoin !

Comme vous pouvez le voir, Ubuntu possède de riches capacités de gestion des droits d'administration, ce qui vous permet de répartir de manière flexible les droits entre plusieurs administrateurs, ainsi que de donner la possibilité d'élever les droits à certains utilisateurs, et de le faire de manière efficace et sécurisée.

L'ajout et la suppression d'utilisateurs est l'une des tâches de base que vous pouvez rencontrer lorsque vous travaillez sur un nouveau serveur avec un système d'exploitation de la famille Linux. En règle générale, après avoir installé un nouveau système, vous n'avez qu'un seul utilisateur - le superutilisateur.

D'une part, l'utilisation du superutilisateur est pratique, car il dispose d'un large éventail de fonctionnalités ; d'autre part, à cause de cela, vous pouvez endommager accidentellement le système nouvellement installé. Par conséquent, pour effectuer des actions standard, il est préférable de créer un autre utilisateur, mais cette fois sans ces privilèges. Il est également recommandé de créer des utilisateurs supplémentaires pour toutes les personnes qui utiliseront le système. Chaque utilisateur doit avoir son propre compte.

Dans ce cas, vous pourrez effectuer des tâches administratives en utilisant un utilisateur avec des droits sudo. Dans ce didacticiel, vous apprendrez à créer des utilisateurs, à leur attribuer des droits sudo et à les supprimer.

Comment ajouter un utilisateur

# addusernewuser

Si vous souhaitez utiliser un utilisateur avec des droits sudo pour créer un nouvel utilisateur, la commande sera légèrement différente :

$ sudo addusernouvelutilisateur

(Dans ce cas, au lieu de newuser, vous pouvez spécifier un autre mot, car ce sera le nom du nouvel utilisateur.)

Après avoir entré la commande, vous devrez répondre séquentiellement à plusieurs questions, à savoir :

  • entrez et confirmez un mot de passe pour le nouvel utilisateur ;
  • écrire des informations supplémentaires sur le nouvel utilisateur. Cela est facultatif ; si vous ne voulez rien ajouter, appuyez simplement sur Entrée ;
  • enfin, vous devrez confirmer l'exactitude de toutes les informations saisies jusqu'à présent - pour cela, vous devez appuyer sur y (oui - oui).

Le nouvel utilisateur est maintenant créé et prêt à être utilisé ! Vous pouvez vous y connecter en utilisant le mot de passe que vous avez défini précédemment.

Si vous souhaitez donner à l'utilisateur des droits d'administration, lisez la section suivante.

Comment donner à un utilisateur les droits sudo

Si vous avez besoin qu'un nouvel utilisateur puisse exécuter des commandes administratives (racine), vous devez donner à cet utilisateur un accès sudo. Il existe deux façons de procéder : soit ajouter cet utilisateur au groupe d'utilisateurs créé qui peut exécuter des commandes sudo, soit donner ce droit à l'utilisateur en modifiant la configuration de l'utilitaire sudo. Considérons les deux options.

Ajouter un nouvel utilisateur au groupe sudo

Par défaut, dans Ubuntu 16.04, tous les utilisateurs appartenant au groupe approprié ont le droit d'exécuter des commandes sudo.

Pour voir dans quel groupe se trouve actuellement l'utilisateur créé, utilisez la commande suivante :

$ groupesnouvelutilisateur

En conséquence, vous verrez à l'écran :

nouvel utilisateur : nouvel utilisateur

Car par défaut, chaque nouvel utilisateur est dans son propre groupe, qui est créé simultanément à la création de l'utilisateur lui-même et porte le même nom. Pour ajouter un utilisateur à un autre groupe, vous devez écrire la commande suivante sur la ligne de commande :

$ usermod -aG sudo nouvel utilisateur

(Je vous rappelle qu'au lieu de newuser, vous devez écrire le nom de l'utilisateur que vous souhaitez déplacer vers un groupe avec des droits d'administration.)

Le commutateur -aG est nécessaire pour que l'utilisateur soit ajouté à l'un des groupes déjà existants dans la liste.

Vérification des droits sudo

Vous devez maintenant vérifier si votre utilisateur peut exécuter des commandes d'administration.

commande $

Vous pouvez exécuter la même commande, mais avec des droits d'administrateur, si vous écrivez sudo au début :

Commande $ sudo

Dans ce cas, vous devrez saisir le mot de passe du compte de cet utilisateur.

Clarification des droits des utilisateurs dans /etc/sudoers

Une autre façon de donner à l'utilisateur des droits sudo consiste à configurer un fichier de configuration. Vous devez utiliser la commande visudo pour ouvrir le fichier de configuration /etc/sudoers dans votre éditeur par défaut et définir spécifiquement les autorisations pour cet utilisateur.

Il est recommandé d'utiliser la commande visudo pour éditer le fichier de configuration : d'une part, elle protège le fichier de plusieurs modifications simultanées, et d'autre part, elle vérifie la syntaxe du fichier avant de l'écraser. Grâce à cela, vous n'aurez pas une situation où vous avez mal configuré sudo, et vous ne pourrez alors pas apporter les modifications nécessaires, car vous avez perdu les droits d'administration.

Si vous utilisez un utilisateur avec des droits sudo, la commande dont vous avez besoin ressemblera à ceci :

En règle générale, la commande visudo ouvrirait /etc/sudoers dans l'éditeur vi, ce qui pourrait dérouter les utilisateurs inexpérimentés. Par conséquent, Ubuntu 16.04 utilise nano au lieu de vi, un outil beaucoup plus familier à la plupart des utilisateurs. Utilisez les touches fléchées de votre clavier pour trouver la ligne dont vous avez besoin. Cela ressemble à ceci :

Racine ALL=(ALL:ALL) ALL

Copiez ce texte juste en dessous et au lieu de "root" écrivez le nom de l'utilisateur auquel vous souhaitez accorder le droit d'exécuter des commandes sudo. Cela ressemblera à ceci :

Racine ALL=(ALL:ALL) ALL newuser ALL=(ALL:ALL) ALL

Pour chaque nouvel utilisateur, une nouvelle ligne doit être ajoutée. Une fois que vous avez effectué toutes les modifications nécessaires, enregistrez et fermez le fichier en appuyant sur Ctrl-X, puis Y et Entrée pour confirmer.

Comment supprimer des utilisateurs

Si vous n'avez plus besoin d'un des utilisateurs créés, la meilleure solution est de le supprimer.

Vous pouvez uniquement supprimer un utilisateur, sans supprimer ses fichiers, à l'aide de la commande :

# deluser nouvel utilisateur

Si vous utilisez un utilisateur avec des droits sudo, la commande ressemblera à ceci :

$ sudo deluser nouvel utilisateur

Pour supprimer un utilisateur ainsi que son répertoire personnel, en tant que superutilisateur, vous devez saisir :

# deluser --remove-home nouvel utilisateur

Pour les utilisateurs disposant des droits sudo :

$ sudo deluser --remove-home nouvel utilisateur

Et si vous souhaitez supprimer les droits sudo d'un utilisateur distant, vous devez ouvrir le fichier de configuration :

(si de superutilisateur)
ou alors

(si d'un utilisateur avec les droits sudo)

Root ALL=(ALL:ALL) ALL newuser ALL=(ALL:ALL) ALL # Supprimer cette ligne.

Cela est nécessaire pour qu'à l'avenir, un utilisateur créé avec le même nom n'obtienne pas accidentellement des droits sudo.

Conclusion

Vous savez maintenant comment créer et supprimer correctement des utilisateurs, ainsi que leur donner le droit d'exécuter la commande sudo. Pour un leadership efficace, séparez les utilisateurs en différents groupes et accordez des droits d'administration uniquement à ceux qui en ont vraiment besoin pour leur travail.

Salutations à tous!

Dans cet article, je vais vous expliquer comment ajouter un nouvel utilisateur, modifier ses droits ou modifier le mot de passe de l'utilisateur sous Linux Ubuntu. Et aussi comment faire des "Comptes" à l'aide d'un utilitaire graphique ou depuis la ligne de commande.

Considérez la première façon d'ajouter un nouveau compte.

Dans le panneau de lancement rapide, ouvrez "Paramètres système" et sélectionnez "Comptes".

Vous devez maintenant obtenir des privilèges supplémentaires. Pour ce faire, cliquez sur le bouton "Débloquer".

Entrez votre mot de passe et cliquez sur le bouton "Authentifier"

Pour ajouter un nouvel utilisateur, cliquez sur le signe "+"

Dans le formulaire qui s'ouvre, sélectionnez le type de compte. Dans cet utilitaire standard, vous pouvez créer deux types d'utilisateurs :

  • Normal
  • Administrateur

Dans la plupart des cas, le type de compte "Normal" est suffisant. Mais si à l'avenir il s'avère que cet utilisateur a besoin de privilèges supplémentaires, il suffira de revenir à l'utilitaire Comptes et de changer le type de compte.

Sélectionnez le type de compte "Normal", ajoutez un nom d'utilisateur et cliquez sur le bouton "Ajouter".

Nous avons notre nouveau compte, mais il n'est pas activé tant qu'un mot de passe n'est pas défini.

Nous activons le nouveau compte en cliquant sur l'élément "Mot de passe":

En utilisant l'indice, nous trouvons un mot de passe "Fort", puis le ressaisissons dans le champ "Confirmer le mot de passe". Activez le nouveau compte en cliquant sur le bouton Modifier.

Pour supprimer un compte inutile, sélectionnez-le et cliquez sur le signe "-"

Une fenêtre de sélection de la méthode de suppression s'ouvrira.

Il y a deux options :

  • avec la suppression du répertoire personnel
  • ou avec sa conservation.
    • Si les fichiers de cet utilisateur ne sont plus nécessaires, cliquez sur "Supprimer les fichiers"./p>

      Le compte et tous les fichiers du répertoire personnel ont été supprimés.

      Considérez maintenant la deuxième façon d'ajouter un nouvel utilisateur.

      Ouvrez un terminal et exécutez la commande suivante.

      sudo addusernouveauxutilisateurs

      Pour obtenir des privilèges supplémentaires, vous devez entrer le mot de passe de l'utilisateur et appuyer sur la touche "Entrée" du clavier.

      Entrez à nouveau le mot de passe et appuyez sur la touche "Entrée" du clavier.

      Nous ajoutons les informations nécessaires et si tout est indiqué correctement, confirmez-le en tapant "Y" et appuyez sur la touche "Entrée" du clavier.

      Mais si nous avons besoin d'un utilisateur avec des droits "Administrateur", nous devons exécuter une commande supplémentaire et ajouter l'utilisateur aux groupes requis (adm, cdrom, sudo, dip, plugdev, lpadmin, sambashare).

      sudo usermod -a -G adm, cdrom, sudo, dip, plugdev, lpadmin, sambashare nouveaux utilisateurs

      Pour voir à quels groupes appartient un utilisateur, exécutez la commande suivante.

      sudo id nouveaux utilisateurs

      Il est également très facile de changer le mot de passe de n'importe quel utilisateur. Nous tapons la commande passwd et le login de l'utilisateur.

      sudo passwd nouveaux utilisateurs

      Entrez le mot de passe du nouvel utilisateur et appuyez sur la touche "Entrée" du clavier.

      Ensuite, ressaisissez le mot de passe et appuyez sur la touche "Entrée" du clavier. Si tout est fait correctement, vous devriez voir l'entrée "mot de passe mis à jour avec succès". Et maintenant, pour entrer dans ce compte, vous devez entrer un nouveau mot de passe.

      La suppression d'un utilisateur inutile et de son dossier personnel est également très simple. Pour ce faire, nous recueillons

      sudo userdel -r nouveaux utilisateurs

      Malheureusement, la commande ci-dessus n'affiche pas les résultats de son travail. Mais pour vérifier si l'utilisateur newusers est toujours dans notre système, nous pouvons utiliser une autre commande.

      sudo id nouveaux utilisateurs

      Sur la base des résultats de son exécution, nous voyons qu'il n'y a pas un tel utilisateur dans le système.

      Nous avons vu comment vous pouvez ajouter un nouvel utilisateur, changer le mot de passe, modifier ses droits en l'ajoutant à des groupes, et aussi comment supprimer un utilisateur. Et s'il y a des questions incompréhensibles sur ce sujet et qu'il y a des suggestions, alors je vous demande de les écrire dans les commentaires. Au revoir tout le monde!

Linux étant un système multi-utilisateurs, la question de l'organisation du contrôle d'accès aux fichiers et aux répertoires est l'une des questions essentielles que le système d'exploitation doit résoudre. Les mécanismes de contrôle d'accès développés pour le système UNIX dans les années 70 (peut-être, cependant, ont-ils été proposés par quelqu'un auparavant), sont très simples, mais ils se sont avérés si efficaces qu'ils existent depuis plus de 30 ans et remplissent toujours avec succès les défis auxquels sont confrontées leurs tâches.

Les mécanismes de contrôle d'accès sont basés sur les noms d'utilisateurs et les noms de groupes d'utilisateurs. Vous savez déjà que sous Linux chaque utilisateur a un nom unique sous lequel il se connecte (connecté). De plus, un certain nombre de groupes d'utilisateurs sont créés dans le système et chaque utilisateur peut être inclus dans un ou plusieurs groupes. Le superutilisateur crée et supprime des groupes, il peut également modifier l'appartenance d'un groupe particulier. Les membres de différents groupes peuvent avoir des droits d'accès aux fichiers différents, par exemple, le groupe Administrateurs peut avoir plus de droits que le groupe Programmeurs.

L'inode de chaque fichier contient le nom du soi-disant propriétaire du fichier et le groupe qui a des droits sur ce fichier. Initialement, lorsqu'un fichier est créé, l'utilisateur qui a créé le fichier en est déclaré propriétaire. Plus précisément, l'utilisateur pour le compte duquel le processus de création du fichier est lancé. Le groupe est également affecté lors de la création du fichier, par l'ID de groupe du processus qui crée le fichier. Le propriétaire et le groupe du fichier peuvent être modifiés au cours de travaux ultérieurs à l'aide des commandes chown et chgrp(plus à leur sujet seront discutés plus tard).

Maintenant, exécutons à nouveau la commande ls-l. Mais définissons comme paramètre supplémentaire le nom d'un fichier spécifique, par exemple, le fichier qui spécifie la commande elle-même ls. (Attention, au passage, à cette possibilité de la commande ls-l- obtenir des informations sur un fichier spécifique, et non sur tous les fichiers du répertoire à la fois).

$ ls -l /bin/ls

Vous pouvez voir que dans ce cas, le fichier appartient à l'utilisateur root et au groupe root. Mais maintenant, nous nous intéressons davantage au premier champ de la sortie de cette commande, qui détermine le type de fichier et les autorisations de fichier. Ce champ dans l'exemple est représenté par une chaîne de caractères -rwxr-xr-x. Ces caractères peuvent être grossièrement divisés en 4 groupes.

Le premier groupe, composé d'un seul caractère, définit le type de fichier. Ce symbole, conformément aux types de fichiers possibles abordés dans la section précédente, peut prendre les significations suivantes :

    - = - fichier régulier

    ré=- répertoire ;

    b=- fichier de périphérique de bloc ;

    c=— fichier de périphérique de caractères ;

    s=- socket de domaine (socket);

    p=- tuyau nommé (tuyau);

    l =- lien symbolique (lien).

Viennent ensuite trois groupes de trois caractères chacun, qui déterminent les droits d'accès au fichier, respectivement, pour le propriétaire du fichier, pour le groupe d'utilisateurs associé à ce fichier et pour tous les autres utilisateurs du système. Dans notre exemple, les autorisations pour le propriétaire sont définies comme rwx, ce qui signifie que le propriétaire ( racine) a le droit de lire le fichier (r), d'écrire dans ce fichier (w) et d'exécuter le fichier (x). Remplacer l'un de ces caractères par un tiret signifiera que l'utilisateur est privé du droit correspondant. Dans le même exemple, nous voyons que tous les autres utilisateurs (y compris ceux qui sont inclus dans le groupe racine) sont privés du droit d'écrire dans ce fichier, c'est-à-dire qu'ils ne peuvent pas modifier le fichier et généralement le modifier d'une manière ou d'une autre.

D'une manière générale, les droits d'accès et les informations sur le type de fichier dans les systèmes UNIX sont stockés dans des inodes dans une structure séparée composée de deux octets, soit 16 bits (ce qui est naturel, car l'ordinateur fonctionne avec des bits et non avec les caractères r, w, x ). Quatre de ces 16 bits sont réservés à un enregistrement codé de type fichier. Les trois bits suivants définissent des propriétés spéciales pour les fichiers exécutables, dont nous parlerons un peu plus tard. Et enfin, les 9 bits restants déterminent les autorisations de fichiers. Ces 9 bits sont répartis en 3 groupes de 3 bits. Les trois premiers bits définissent les autorisations de l'utilisateur, les trois bits suivants définissent les autorisations du groupe et les 3 derniers bits définissent les autorisations de tous les autres utilisateurs (c'est-à-dire tous les utilisateurs à l'exception du propriétaire du fichier et du groupe de fichiers).

Dans ce cas, si le bit correspondant est 1, alors le droit est accordé, et s'il est 0, alors le droit n'est pas accordé. Dans la forme symbolique de la notation des droits, l'unité est remplacée par le caractère correspondant (r, w ou x), et 0 est représenté par un tiret.

Le droit de lire(r) un fichier signifie que l'utilisateur peut visualiser le contenu du fichier à l'aide de diverses commandes de visualisation, par exemple, la commande Suite ou avec n'importe quel éditeur de texte. Mais si vous modifiez le contenu d'un fichier dans un éditeur de texte, vous ne pourrez pas enregistrer les modifications apportées au fichier sur le disque, sauf si vous disposez d'une autorisation d'écriture (w) sur le fichier. L'autorisation d'exécution (x) signifie que vous pouvez charger le fichier en mémoire et essayer de l'exécuter en tant que programme exécutable. Bien sûr, si le fichier n'est pas vraiment un programme (ou un script shell), alors il ne sera pas possible d'exécuter ce fichier pour l'exécution, mais, d'un autre côté, même si le fichier est vraiment un programme, mais le bon à exécuter n'est pas défini pour lui, il ne fonctionnera pas non plus.

Nous avons donc appris quels fichiers sous Linux sont exécutables ! Comme vous pouvez le voir, l'extension du nom de fichier n'a rien à voir avec cela, tout est déterminé en définissant l'attribut "exécutable", et tout le monde ne peut pas se voir accorder le droit d'exécuter !

Si vous exécutez la même commande ls-l, mais comme dernier argument, spécifiez non pas le nom du fichier, mais le nom du répertoire, nous verrons que les droits d'accès sont également définis pour les répertoires, et ils sont définis par les mêmes caractères rwx. Par exemple, en exécutant la commande ls -l /, nous verrons que le répertoire bin correspond à la ligne :

Naturellement, en ce qui concerne les annuaires, l'interprétation des concepts "droit de lire", "droit d'écrire" et "droit d'exécuter" change quelque peu. L'accès en lecture aux répertoires est facile à comprendre si vous vous souvenez qu'un répertoire est juste un fichier contenant une liste de fichiers dans ce répertoire. Par conséquent, si vous avez le droit de lire le répertoire, vous pouvez alors visualiser son contenu (il s'agit de la liste des fichiers du répertoire). Le droit d'écriture est également clair - ayant un tel droit, vous pouvez créer et supprimer des fichiers dans ce répertoire, c'est-à-dire simplement ajouter ou supprimer du répertoire une entrée contenant le nom d'un fichier et les liens correspondants. Le droit d'exécution est moins intuitif. Dans ce cas, cela signifie le droit d'aller dans ce répertoire. Si vous, en tant que propriétaire, souhaitez autoriser d'autres utilisateurs à afficher un fichier dans votre répertoire, vous devez leur donner l'autorisation d'accéder au répertoire, c'est-à-dire leur donner "l'autorisation d'exécution du répertoire". De plus, vous devez donner à l'utilisateur l'autorisation d'exécution pour tous les répertoires situés au-dessus de ce répertoire dans l'arborescence. Par conséquent, en principe, pour tous les répertoires, par défaut, le droit d'exécution est défini à la fois pour le propriétaire et le groupe, et pour tous les autres utilisateurs. Et, si vous souhaitez fermer l'accès à l'annuaire, alors privez tous les utilisateurs (y compris le groupe) du droit d'accéder à cet annuaire. Ne vous privez pas d'un tel droit, sinon vous devrez vous tourner vers le superutilisateur! (Remarque 11)

Après avoir lu le paragraphe précédent, il peut sembler que l'accès en lecture au répertoire n'apporte rien de nouveau par rapport à l'accès en exécution. Cependant, il existe toujours une différence entre ces droits. Si vous ne définissez que l'autorisation d'exécution, vous pouvez entrer dans le répertoire, mais vous n'y verrez aucun fichier (cet effet est particulièrement évident si vous utilisez une sorte de gestionnaire de fichiers, par exemple le programme Midnight Commander). Si vous avez des droits d'accès à l'un des sous-répertoires de ce répertoire, alors vous pouvez vous y rendre (avec la commande CD), mais, comme on dit, "à l'aveuglette", de mémoire, car vous ne verrez pas la liste des fichiers et sous-répertoires du répertoire courant.

L'algorithme de vérification des droits des utilisateurs lors de l'accès à un fichier peut être décrit comme suit. Le système vérifie d'abord si le nom d'utilisateur correspond au nom du propriétaire du fichier. Si ces noms correspondent (c'est-à-dire que le propriétaire accède à son fichier), alors il est vérifié si le propriétaire a le droit d'accès approprié : lecture, écriture ou exécution (ne soyez pas surpris, le superutilisateur peut priver le propriétaire du fichier de certains droits aussi). S'il existe un tel droit, l'opération correspondante est autorisée. Si le propriétaire ne dispose pas du droit nécessaire, la vérification des droits accordés via le groupe ou via le groupe d'attributs d'accès pour les autres utilisateurs n'est même pas vérifiée et l'utilisateur reçoit un message indiquant que l'action demandée ne peut pas être effectuée ( généralement quelque chose comme "Autorisation refusée").

Si le nom de l'utilisateur accédant au fichier ne correspond pas au nom du propriétaire, alors le système vérifie si le propriétaire appartient au groupe qui est associé au fichier donné (ci-après, nous l'appellerons simplement le groupe du fichier) . S'ils sont détenus, les attributs spécifiques au groupe sont utilisés pour déterminer si le fichier est accessible, et les attributs du propriétaire et de tous les autres utilisateurs sont ignorés. Si l'utilisateur n'est pas le propriétaire du fichier et n'est pas inclus dans le groupe du fichier, ses droits sont déterminés par les attributs des autres utilisateurs. Ainsi, le troisième groupe d'attributs qui définissent les droits d'accès au fichier s'applique à tous les utilisateurs à l'exception du propriétaire du fichier et des utilisateurs inclus dans le groupe du fichier.

Pour modifier les autorisations de fichiers, utilisez la commande chmod. Il peut être utilisé en deux versions. Dans la première option, vous devez indiquer explicitement à qui vous donnez ou à qui vous privez de ce droit :

$ chmod nom de fichier wXp

où à la place du symbole w substitué

    ou symbole tu(c'est-à-dire l'utilisateur qui est le propriétaire) ;

    ou alors g(groupe);

    ou alors o(tous les utilisateurs non inclus dans le groupe propriétaire du fichier) ;

    ou alors un(tous les utilisateurs du système, c'est-à-dire le propriétaire, le groupe et tous les autres).

Au lieu de X mettre:

    ou alors + (nous accordons le droit);

    ou alors - (nous privons le droit correspondant);

    ou alors = (définir les droits spécifiés au lieu de ceux existants),

Au lieu de p- un symbole désignant le droit correspondant :

    r(la lecture);

    w(enregistrer);

    X(performance).

Voici quelques exemples d'utilisation de la commande chmod:

$ chmod a+x nom_fichier

accorde à tous les utilisateurs du système le droit d'exécuter ce fichier.

$ chmod go-rw nom_fichier

supprime les autorisations de lecture et d'écriture pour tout le monde sauf le propriétaire du fichier.

$ chmod ugo+rwx nom_fichier

donne à chacun des autorisations de lecture, d'écriture et d'exécution.

Si nous omettons d'indiquer à qui ce droit est accordé, il est entendu que nous parlons de tous les utilisateurs en général, c'est-à-dire au lieu de $ chmod a+x nom_fichier

peut s'écrire simplement

$ chmod +x nom_fichier

La deuxième option de commande chmod(il est plus souvent utilisé) repose sur une représentation numérique des droits. Pour ce faire, nous encodons le caractère r avec le chiffre 4, le caractère w avec le chiffre 2 et le caractère x avec le chiffre 1. Afin d'accorder aux utilisateurs un ensemble de droits, nous devons ajouter les chiffres correspondants. Ayant ainsi obtenu les valeurs numériques nécessaires pour le propriétaire du fichier, pour le groupe de fichiers et pour tous les autres utilisateurs, nous définissons ces trois chiffres comme argument de la commande chmod(nous plaçons ces nombres après le nom de la commande avant le deuxième argument, qui spécifie le nom du fichier). Par exemple, si vous devez donner tous les droits au propriétaire (4+2+1=7), le droit de lire et d'écrire au groupe (4+2=6), et ne donner aucun droit au reste, alors vous devez émettre la commande suivante :

$ chmod 760 nom_fichier

Si vous êtes familier avec le codage binaire des chiffres octaux, alors vous comprendrez que les nombres après le nom de la commande sous cette forme de sa représentation ne sont rien de plus que la notation octale des mêmes 9 bits qui définissent les droits pour le propriétaire du fichier, groupe de fichiers et pour tous les utilisateurs.

Modifier les autorisations de fichier à l'aide de la commande chmod seul le propriétaire du fichier ou le superutilisateur le peut. Afin de pouvoir modifier les autorisations du groupe, le propriétaire doit en outre être membre du groupe auquel il souhaite accorder des autorisations sur le fichier.

Pour terminer l'histoire sur les autorisations de fichiers, nous devons parler de trois autres attributs de fichiers possibles qui sont définis à l'aide de la même commande chmod. Ce sont les mêmes attributs pour les fichiers exécutables qui occupent les positions 5 à 7 dans l'inode du fichier dans la structure à deux octets qui définit les droits sur le fichier, immédiatement après le code du type de fichier.

Le premier de ces attributs est ce que l'on appelle le "bit de changement d'ID utilisateur". La signification de ce bit est la suivante.

Habituellement, lorsqu'un utilisateur démarre un programme pour exécution, ce programme obtient les mêmes autorisations de fichier et de répertoire que l'utilisateur qui a démarré le programme. Si le "bit de modification de l'ID utilisateur" est défini, le programme aura des droits d'accès aux fichiers et répertoires dont dispose le propriétaire du fichier programme (ainsi, l'attribut en question est mieux appelé le "bit de modification de l'ID de propriétaire"). Cela vous permet de résoudre certaines tâches qui seraient autrement difficiles à effectuer. L'exemple le plus typique est la commande pour changer le mot de passe mot de passe. Tous les mots de passe des utilisateurs sont stockés dans le fichier /etc/passwd, qui appartient au superutilisateur racine. Par conséquent, les programmes lancés par les utilisateurs ordinaires, y compris la commande mot de passe, ne peut pas écrire dans ce fichier. Et, par conséquent, l'utilisateur, pour ainsi dire, ne peut pas changer son propre mot de passe. Mais le fichier /usr/bin/passwd a le "bit de changement d'ID propriétaire" défini, qui est l'utilisateur racine. Par conséquent, le changeur de mot de passe mot de passe courir avec des droits racine et obtient un accès en écriture au fichier /etc/passwd (il est déjà assuré par le programme lui-même que l'utilisateur ne peut modifier qu'une seule ligne dans ce fichier).

Le "bit de propriété" peut être défini par le superutilisateur avec la commande

# chmod +s nom_fichier

Le "bit de changement d'ID de groupe" fonctionne de manière similaire.

Un autre attribut possible d'un fichier exécutable est le "task save bit" ou "sticky bit" (littéralement - "sticky bit"). Ce bit indique au système d'enregistrer le programme dans la RAM une fois le programme terminé. Il est pratique d'activer ce bit pour les tâches fréquemment appelées à l'exécution, car dans ce cas on gagne du temps sur le chargement du programme à chaque nouveau démarrage. Cet attribut était obligatoire sur les anciens ordinateurs. Il est rarement utilisé sur les systèmes modernes à grande vitesse.

Si vous utilisez l'option numérique pour définir les attributs dans la commande chmod, la valeur numérique de ces attributs doit précéder les chiffres qui spécifient les droits de l'utilisateur :

# chmod 4775 nom_fichier

Dans ce cas, les poids de ces bits pour obtenir le résultat total souhaité sont donnés comme suit :

    4 - "bit de changement d'ID utilisateur",

    2 - "bit de changement d'ID de groupe",

    1 - "bit de sauvegarde de tâche (bit collant)".

Si l'un de ces trois bits est défini sur 1, la sortie de la commande change légèrement. ls-l en termes d'affichage des attributs de droits d'accès définis. Si le "bit de modification de l'ID utilisateur" est défini sur 1, le caractère "x" dans le groupe de propriétaires de fichiers est remplacé par le caractère "s". De plus, si le propriétaire a le droit d'exécuter le fichier, alors le symbole "x" est remplacé par un petit "s", et si le propriétaire n'a pas le droit d'exécuter le fichier (par exemple, le fichier n'est pas exécutable du tout), alors "S" est mis à la place de "x". Des substitutions similaires ont lieu lorsque le "bit de changement d'ID de groupe" est défini, mais le caractère "x" dans le groupe d'attributs qui spécifient les droits de groupe est remplacé. Si le "sticky bit" est 1, alors le caractère "x" dans le groupe d'attributs qui définit les droits pour tous les autres utilisateurs est remplacé, "x" étant remplacé par le caractère "t" si tous les utilisateurs peuvent exécuter le fichier pour l'exécution, et le symbole "T" s'ils ne disposent pas d'un tel droit.

Ainsi, bien que dans la sortie de la commande ls-l il n'y a pas de positions séparées pour afficher les valeurs des bits de changement d'identifiant et du bit de sauvegarde de tâche, les informations correspondantes sont affichées. Voici un petit exemple de ce à quoi cela ressemblerait :

# ls -l prim1

V. Kostromin (kos sur rus-linux dot net) - 4.5. Autorisations pour les fichiers et les répertoires

Dans ce didacticiel, nous verrons comment supprimer un utilisateur Linux ainsi que ses données et son répertoire personnel.

Si vous êtes administrateur système dans une grande entreprise, la suppression d'utilisateurs Linux est très probablement une tâche assez courante pour vous. Une fois qu'un compte n'est plus nécessaire ou qu'un utilisateur quitte l'organisation, le compte doit être supprimé pour éviter de laisser des failles de sécurité.

Lors de la suppression d'utilisateurs Linux, il est également important de supprimer leur répertoire personnel afin de libérer de l'espace de stockage pour les nouveaux utilisateurs et leurs fichiers. Tout d'abord, nous verrons comment supprimer un utilisateur Linux à l'aide du terminal, puis nous expliquerons comment cela se fait dans l'interface graphique de l'une des distributions les plus populaires - Ubuntu.

Avant de passer au monde réel, pratiquons un peu, créons deux utilisateurs, losst et losst1, ainsi que leurs répertoires personnels, puis supprimons-les :

adduser perdu
$passwd perdu

adduser losst1
$ passwd losst1

Ici, la commande adduser est utilisée pour créer un compte utilisateur et passwd pour créer un mot de passe.

Voyons comment supprimer un utilisateur Linux dans le terminal. Cela se fait à l'aide de la commande -deluser sur les systèmes debian et dérivés, et sur RedHat - userdel. Examinons de plus près ces deux utilitaires.

Description de désillusionner

La syntaxe de la commande deluser est très simple :

$deluser paramètres utilisateur

Les paramètres de la commande deluser se trouvent dans le fichier /etc/deluser.conf, entre autres paramètres, il spécifie ce qu'il faut faire avec le dossier de départ et les fichiers de l'utilisateur.

Vous pouvez afficher et modifier ces paramètres en exécutant la commande :

vi /etc/deluser.conf

Examinons de plus près ces paramètres :

  • REMOVE_HOME- supprimer le répertoire personnel de l'utilisateur
  • REMOVE_ALL_FILES- supprimer tous les fichiers utilisateur
  • SAUVEGARDE- sauvegarder les fichiers utilisateur
  • SAUVEGARDER- dossier de sauvegarde
  • ONLY_IF_EMPTY- supprimer le groupe d'utilisateurs s'il est vide.

Ces paramètres déterminent le comportement par défaut de l'utilitaire lorsqu'un utilisateur est supprimé, bien sûr, ils peuvent être remplacés à l'aide des paramètres de la commande.

Les paramètres suivants sont pris en charge, ils sont similaires aux paramètres, mais il y a plus d'options :

  • --système- supprimer uniquement s'il s'agit d'un utilisateur système
  • --sauvegarde- sauvegarde des fichiers utilisateur
  • --Sauvegarder- dossier de sauvegarde
  • --remove-home- supprimer le dossier d'accueil
  • --remove-all-files- supprimer tous les fichiers utilisateur dans le système de fichiers

Description de userdel

L'utilitaire userdel fonctionne un peu différemment, il n'y a pas de fichier de paramètres ici, mais il existe des options que vous pouvez utiliser pour dire à l'utilitaire quoi faire. La syntaxe est similaire :

$ userdel paramètres utilisateur

  • -f, --force- suppression forcée même si l'utilisateur est toujours connecté
  • -r, --remove- supprimer le répertoire personnel de l'utilisateur et ses fichiers dans le système.
  • -Z- supprimer tous les objets SELinux pour cet utilisateur.

Pour supprimer un utilisateur du serveur, il est préférable d'utiliser la méthode avancée, dont nous parlerons ci-dessous. Lorsque les utilisateurs utilisent le serveur, ils exécutent divers programmes et services. Un utilisateur ne peut être correctement supprimé que s'il n'est pas connecté au serveur et que tous les programmes exécutés sous son nom sont arrêtés, car les programmes peuvent utiliser divers fichiers appartenant à l'utilisateur, ce qui empêchera leur suppression. En conséquence, les fichiers de l'utilisateur ne seront pas complètement supprimés et resteront obstruer le système.

Verrouillage du compte utilisateur

Vous pouvez utiliser l'utilitaire passwd pour verrouiller un compte utilisateur. Cela refusera à l'utilisateur l'accès au système et empêchera le démarrage de nouveaux processus :

Exécutez la commande passwd avec l'option --lock :

passwd --perte de verrouillage

passwd : les informations d'expiration du mot de passe ont été modifiées.

Tuez tous les processus utilisateur en cours d'exécution

Maintenant, trouvons tous les processus en cours d'exécution en tant qu'utilisateur et tuons-les.

Trouvez des processus avec pgrep :

Vous pouvez voir plus en détail ce que sont ces processus en passant le pid de chacun d'eux à la commande ps, comme ceci :

ps -f --pid $(pgrep -u losst)

UID PID PPID C STIME TTY STAT HEURE CMD
perte 14684 14676 0 22:15 pts/2 S 0:00 -bash
perte 14735 14684 0 22:15 pts/2 S+ 0:00 vi texte

Maintenant que vous vous êtes assuré qu'il n'y a rien d'important là-dedans, vous pouvez tuer tous les processus avec la commande killall :

Killall -9 -u perte

L'option -9 indique au programme d'envoyer un SIGKILL à ces processus, et -u spécifie le nom d'utilisateur.

Sur les systèmes basés sur Red Hat, pour utiliser killall, vous devrez installer le paquet psmisc :

sudo miam installer psmisc

Sauvegarde des données utilisateur

Ce n'est pas du tout nécessaire, mais pour un projet sérieux, il ne serait pas superflu de sauvegarder les fichiers de l'utilisateur, surtout s'il pourrait y avoir des fichiers importants. Pour ce faire, vous pouvez utiliser, par exemple, l'utilitaire tar :

tar jcvf /user-backups/losst-backup.tar.bz2 /home/losst

Suppression d'un compte utilisateur

Maintenant que tout est prêt, commençons à supprimer l'utilisateur Linux. Au cas où, nous indiquons explicitement que vous devez supprimer les fichiers et le répertoire personnel de l'utilisateur. Pour Debian :

deluser --remove-home perdu

userdel --supprimer la perte

Si vous avez besoin de supprimer tous les fichiers appartenant à un utilisateur sur le système, utilisez l'option --remove-all-files, faites juste attention, car des fichiers importants peuvent être écrasés :

deluser --remove-all-files losst

L'utilisateur est maintenant complètement supprimé, ainsi que ses fichiers et son répertoire personnel, de votre système.

Supprimer un utilisateur dans Ubuntu

Ouvrir Les paramètres du système:

Élément ouvert Comptes:

Comme vous pouvez le voir, toutes les actions sont maintenant indisponibles et sont dessinées en gris. Cliquez sur le bouton pour les activer. ouvrir et entrez le mot de passe de l'utilisateur.

Maintenant, pour supprimer un utilisateur sous Linux, cliquez simplement dessus avec la souris, puis cliquez sur le signe moins.

Dans la fenêtre qui s'ouvre, vous pouvez choisir quoi faire avec les fichiers de l'utilisateur :

Naturellement, seul le dossier d'accueil sera supprimé, nous ne parlons pas de tous les fichiers. Et pour une suppression correcte, l'utilisateur ne doit pas travailler dans le système.

résultats

Supprimer un utilisateur sous Linux n'est pas si difficile, peu importe où cela doit être fait, sur un serveur ou un ordinateur personnel. Bien sûr, l'interface graphique est plus pratique, mais le terminal, comme toujours, offre plus d'options. Si vous avez d'autres idées à ce sujet, écrivez dans les commentaires !

Vous avez aimé l'article ? A partager entre amis :