Si vous êtes nouveau sur Linux/Unix, le concept d’autorisations peut prêter à confusion. Ce guide vous explique ce que sont les autorisations, comment elles fonctionnent et comment les gérer. Un certain nombre d’exemples sont fournis pour illustrer comment définir et modifier les autorisations pour les utilisateurs et les groupes.,
Ce sont des Utilisateurs de Linux et des Autorisations de Groupe?
Les systèmes D’exploitation Linux / Unix ont la capacité de multitâche d’une manière similaire aux autres systèmes d’exploitation. Cependant, la principale différence de Linux par rapport aux autres systèmes d’exploitation est sa capacité à avoir plusieurs utilisateurs., Linux a été conçu pour permettre à plus d’un utilisateur d’avoir accès au système en même temps. Pour que cette conception multi-utilisateurs fonctionne correctement, il doit y avoir une méthode pour protéger les utilisateurs les uns des autres. C’est là que les autorisations entrent en jeu.
Lire, Écrire, & Autorisations d’Exécution
les Autorisations sont les « droits” d’agir sur un fichier ou un répertoire. Les droits de base sont read, write et execute.
- Read: une autorisation lisible permet de visualiser le contenu du fichier., Une autorisation de lecture sur un directory vous permet de lister le contenu d’un répertoire.
- Écrire: une autorisation d’écriture sur un fichier permet de modifier le contenu de ce fichier. Pour un répertoire, l’autorisation d’écriture vous permet d’éditer le contenu d’un répertoire (par exemple, ajouter/supprimer des fichiers).
- Exécuter: pour un fichier, le fichier exécutable autorisation permet d’exécuter le fichier et exécuter un programme ou un script. Pour un répertoire, l’autorisation d’exécution vous permet de changer de répertoire et d’en faire votre répertoire de travail courant., Les utilisateurs ont généralement un groupe par défaut, mais ils peuvent appartenir à plusieurs groupes supplémentaires.
Affichage des Autorisations de Fichier
Pour afficher les autorisations sur un fichier ou un répertoire, la commande ls -l <directory/file>
. N’oubliez pas de remplacer les informations dans le <directory/file>
par le nom réel du fichier ou du répertoire. Voici un exemple de sortie pour la commandels
:
-rw-r--r-- 1 root root 1031 Nov 18 09:22 /etc/passwd
Les dix premiers caractères affichent les autorisations d’accès., Le premier tiret (-
) indique le type de fichier (d
pour le répertoire, s
pour un fichier spécial, et -
pour un fichier normal). Les trois caractères suivants (rw-
) définissent l’Autorisation du propriétaire du fichier. Dans cet exemple, le propriétaire du fichier dispose uniquement des autorisations de lecture et d’écriture. Les trois caractères (r--
) sont les autorisations pour les membres du même groupe que le propriétaire du fichier (qui dans cet exemple est en lecture seule)., Les trois derniers caractères (r--
) afficher les autorisations pour tous les autres utilisateurs et dans cet exemple, il est en lecture seule.
utilisation de groupes, D’utilisateurs et de répertoires Linux
Les sections suivantes décrivent les groupes Linux et les commandes nécessaires pour créer, supprimer et modifier des comptes d’utilisateurs. Les commandes de création et de suppression de répertoires sont également couvertes.
Linux Groupes Primaires
Un groupe principal est le groupe par défaut d’un compte d’utilisateur appartient. Chaque utilisateur sur Linux appartient à un groupe principal., Le groupe principal d’un utilisateur est généralement le groupe enregistré dans le fichier /etc/passwd
de votre système Linux. Lorsqu’un utilisateur Linux se connecte à son système, le groupe principal est généralement le groupe par défaut associé au compte connecté.
Vous pouvez trouver L’ID de groupe principal d’un utilisateur en visualisant le contenu du fichier/etc/passwd
de votre système.
cat /etc/passwd
la quatrième colonne contient l’ID de groupe principal de chaque utilisateur., Dans l’exemple de sortie, le groupe primaire ID example_user
est 1001
:
postfix:x:106:113::/var/spool/postfix:/usr/sbin/nologinexample_user:x:1000:1001:,,,:/home/example_user:/bin/bash
Vous pouvez également trouver un groupe principal de l’utilisateur des informations à l’aide de la balise id
commande. Remplacez example_user
par l’un des utilisateurs de votre propre système.
id example_user
Votre sortie ressemble à l’exemple, qui affiche le groupe principal example_group
.,
uid=1000(example_user) gid=1001(example_group) groups=1001(example_group),27(sudo)
Si vous voulez une sortie moins verbeuse qui n’affiche que le nom de votre groupe principal, exécutez la commande suivante:
id -gn example_user
votre sortie dans ce cas est la suivante:
example_group
Linux Secondary Groups
Une fois qu’un utilisateur a été créé avec son groupe principal, il peut être ajouté à des groupes secondaires. Les utilisateurs du système Linux peuvent avoir un maximum de 15 groupes secondaires. Les groupes D’un système Linux sont stockés dans le fichier /etc/group
.,
Pour trouver le groupe(s) appartient un utilisateur, exécutez la commande suivante:
groups example_user
L’exemple affiche la sortie du principal d’un utilisateur et le groupe secondaire(s):
example_user : example_group sudo
pour ajouter un utilisateur À un groupe secondaire utiliser l’exemple de commande. Remplacez second_example_group
avec le nom du groupe et example_user
avec le nom de l’utilisateur à ajouter au groupe.
sudo usermod -a -G second_example_group example_user
Vous pouvez également ajouter un utilisateur à plusieurs groupes., L’exemple de commande ajoute l’utilisateur example_user
pour les groupes: second_example_group
, third_example_group
et fourth_example_group
. Les options-a
Et-G
garantissent que l’utilisateur n’est supprimé d’aucun groupe auquel il appartient déjà.
sudo usermod -a -G second_example_group,third_example_group,fourth_example_group example_user
Quelle est la différence entre les groupes primaire et secondaire sous Linux?
un groupe primaire est le groupe auquel un utilisateur appartient par défaut. Chaque utilisateur doit appartenir à un premier groupe et un utilisateur ne peut appartenir qu’à un seul groupe principal., Tous les nouveaux répertoires ou fichiers créés par un utilisateur sont automatiquement associés au groupe principal d’un utilisateur.
Un groupe secondaire est un groupe qu’un utilisateur est ajouté après leur compte d’utilisateur est créé. Un utilisateur peut appartenir à zéro ou plusieurs groupes secondaires.
création et suppression de comptes utilisateurs
pour créer un nouvel utilisateur standard, utilisez la commandeuseradd
., La syntaxe est comme suit:
useradd <name>
La commande useradd utilise une variété de variables, dont certaines sont indiquées dans le tableau ci-dessous:
Vous devez définir un mot de passe pour le nouvel utilisateur à l’aide de la balise passwd
commande. Remarque, vous avez besoin des privilèges root pour modifier un mot de passe utilisateur. La syntaxe est la suivante:
passwd <username>
l’utilisateur peut changer son mot de passe à tout moment en utilisant la commandepasswd
avec la syntaxe., Voici un exemple:
$ passwdChanging password for lmartin.(current) UNIX password:Enter new UNIX password:Retype new UNIX password:passwd: password updated successfully
Il existe une autre façon de créer des comptes d’utilisateurs qui pourrait être plus facile pour les administrateurs débutants. Toutefois, vous devrez peut-être installer un nouveau package. La commande d’installation Pour Debian/Ubuntu est la suivante:
apt-get install adduser
la commande adduser crée automatiquement un répertoire personnel et définit le groupe par défaut, le shell, etc., Pour créer un nouvel utilisateur standard avec la commandeadduser
la syntaxe est la suivante:
adduser <name>
Une fois que vous entrez la commande, vous recevez une série d’invites; la plupart de ces informations sont facultatives. Toutefois, vous devez inclure au moins le nom de l’utilisateur (pour cet exemple, le nom d’utilisateur est cjones) et un mot de passe.
Il est important de noter que la sécurité doit toujours être prise très au sérieux. Par conséquent, il est fortement recommandé d’utiliser des mots de passe uniques pour chaque compte. Ne jamais partager ou donner votre mot de passe à d’autres utilisateurs.,
Pour supprimer un compte d’utilisateur, entrez la commande suivante:
userdel <name>
l’Émission de la commande ci-dessus ne supprime que le compte de l’utilisateur. Leurs fichiers et leur répertoire personnel ne sont pas supprimés.
pour supprimer l’utilisateur, son dossier personnel et ses fichiers, Utilisez cette commande:
userdel -r <name>
comprendre le groupe et L’utilisateur sudo Linux
root
est le super utilisateur et a la capacité de faire n’importe quoi sur, Par conséquent, afin d’avoir une couche de sécurité supplémentaire, un utilisateur sudo
est généralement utilisé à la place de root. Alors que sudo
est utilisé pour donner à un autre utilisateur un accès limité au compte d’un autre utilisateur dans le but d’effectuer des tâches (dans la plupart des cas, l’utilisateur root
ou le superutilisateur), sudo
peut être mieux expliqué comme un outil qui permet aux utilisateurs et aux groupes d’avoir accès à des commandes qu’ils ne pourraient normalement pas utiliser., sudo
permet à un utilisateur d’avoir des privilèges d’administration sans se connecter directement en tant que root. Un échantillon de la balise sudo
commande:
sudo apt-get install <package>
Avant d’utiliser sudo
, il peut avoir besoin d’être installé, si ce n’est pas une partie de votre distribution., La commande pour Debian est comme suit:
apt-get install sudo
Pour CentOS, la commande est la suivante:
yum install sudo
afin de permettre à l’utilisateur de la balise sudo
capacité, ils doivent être ajoutés à un sudo
activé groupe, ou leur nom d’utilisateur doit être ajouté dans le fichier sudoers avec un ensemble d’autorisations. Ce fichier est sensible et important en tant que contrôle d’accès et de sécurité, et ne doit pas être édité directement avec un éditeur de texte., Si le fichier sudoers est modifié de manière incorrecte, cela pourrait empêcher l’accès au système ou d’autres modifications involontaires des autorisations.
Remarque
pour des instructions sur l’ajout d’un utilisateur à un groupe activé par défautsudo
, consultez notre guide de sécurisation de votre serveur
Le visudo
doit être utilisée pour éditer le fichier sudoers. Sur une ligne de commande, connectez-vous à votre système en tant que root
et entrez la commande visudo
.,
Les sudoers
extrait permet aux utilisateurs de la liste d’exécuter n’importe quelle commande qu’ils aimeraient en préfixant avec sudo
, ce qui donne à l’utilisateur le contrôle complet d’un système.
attention
les utilisateurs ne doivent jamais être ajoutés au fichier ou au groupesudoers
avec une autorisation complète s’ils ne sont pas approuvés. Vous pouvez éventuellement restreindre ce que les utilisateurs peuvent faire avecsudo
comme couche de sécurité supplémentaire; reportez-vous aux commandes whitelisting avec Sudo pour quelques exemples sur la syntaxe d’utilisation restreinte.,
Après avoir donné à votre compte utilisateur les privilèges sudo, enregistrez le fichier sudoers et déconnectez-vous en tant que root. Connectez-vous maintenant en tant qu’utilisateur et testez les privilèges en tant qu’utilisateur avec sudo access., Lorsqu’un nouvel utilisateur a besoin d’un accès sudo, vous pouvez désormais modifier le fichier sudoers avec votre propre login en utilisant la commande suivante:
sudo visudo
commandes de liste blanche avec Sudo
dans de nombreux cas, si vous souhaitez que les utilisateurs aient des autorisations sudo élevées, vous souhaitez également suivre le principe du moindre privilège et accorder aux utilisateurs sudo l’accès uniquement aux commandes dont ils ont besoin., Dans l’exemple suivant, le fichier sudoers a été modifié pour limiter l’utilisation de sudo à quelques commandes clairement définies:
alors que les utilisateurs root et sudousername
disposent toujours des autorisations de superutilisateur complètes, l’utilisateur username
a été limité aux seuls top
a2f26faa6b »> commandes en tant qu’utilisateur sudo. De plus, tous les utilisateurs ajoutés au groupe sudo
sont limités séparément aux commandes less
, ls
Et apt
avec les autorisations sudo., Si vous vouliez donner à l’utilisateur username
sudo l’accès aux 3 commandes supplémentaires sur liste blanche pour le groupe sudo
, il vous suffirait de les ajouter au groupe sudo
Et ils conserveraient toujours leurs propres autorisations uniques, leur donnant accès à un total de 5 commandes. Ce processus peut être répété pour autant d’utilisateurs et de groupes que nécessaire.
Remarque
lors de la mise en liste blanche de commandes individuelles utilisant la syntaxe ci-dessus, il est important d’utiliser le chemin absolu vers la commande., La balise
which
commande peut être utilisée pour trouver ce chemin d’accès absolu:which command-name
le Travail avec les Groupes
Linux utilise des groupes pour organiser des utilisateurs. Les groupes organisent des collectes de comptes, principalement par mesure de sécurité. Le contrôle de l’appartenance à un groupe est administré via le fichier /etc/group
, qui affiche une liste des groupes et de ses membres. Chaque utilisateur a un groupe par défaut ou principal. Lorsqu’un utilisateur se connecte, l’appartenance au groupe est définie pour son groupe principal., Cela signifie que lorsqu’un utilisateur lance un programme ou crée un fichier, le fichier et le programme en cours est associé à l’utilisateur actuel de l’appartenance à un groupe. Un utilisateur peut accéder à d’autres fichiers dans d’autres groupes, tant qu’ils sont également membres de ce groupe et les autorisations d’accès sont définies. Pour exécuter des programmes ou créer un fichier dans un autre groupe, l’utilisateur doit exécuter la commande newgrp
pour changer son groupe actuel., Un exemple de la commande newgrp est le suivant:
$ newgrp <marketing>
Si l’Utilisateur entrant la commande référencée ci-dessus est membre du groupe marketing dans le fichier /etc/group
, l’appartenance actuelle au groupe change. Il est important de noter que tous les fichiers créés sont maintenant associés au groupe marketing plutôt qu’au groupe principal de l’utilisateur.,
Création et Suppression de Répertoires
Pour créer un répertoire, utilisez la commande:
mkdir <directory name>
Pour créer un répertoire et de définir les autorisations dans le même temps, utilisez l’option suivante et la syntaxe:
mkdir -m a=rwx <directory name>
L’option-m est l’abréviation de mode, et un=rwx signifie que tous les utilisateurs ont lire, écrire, et exécuter les autorisations sur le répertoire. Pour voir une liste complète de toutes les options de la commande mkdir, entrez man mkdir
à l’invite de commande.,
Pour supprimer un fichier, utilisez la commande suivante:
rm <file>
Pour supprimer un répertoire:
rm -r <directory name>
Il est important de noter que si vous supprimez un répertoire de tous les fichiers qu’il contient sont supprimées.
modification des Permissions de répertoire et de fichier
pour afficher les permissions et la propriété des fichiers et des répertoires, utilisez la commandels -al
. L’optiona
est d’afficher les fichiers cachés ou tous les fichiers, et l’optionl
est pour la liste longue., La sortie est similaire à la suivante:
La première colonne avec les dix lettres et tirets indique les autorisations du fichier ou du répertoire. La deuxième colonne (avec le numéro unique) indique le nombre de fichiers ou de répertoires contenus dans le répertoire. La colonne suivante indique le propriétaire, suivi du nom du groupe, de la taille, de la date et de l’heure du dernier accès, et enfin du nom du fichier ., Par exemple, en utilisant la première ligne de la sortie ci-dessus, les détails sont les suivants:
Note
étant donné qu’un répertoire lui-même est un fichier, tout répertoire affiche4096
comme sa taille. Cela ne reflète pas la taille du contenu du répertoire.
Commande Chmod
La commande chmod
est court pour changer de mode. Chmod est utilisé pour modifier les autorisations sur les fichiers et les répertoires., La commandechmod
peut être utilisée avec des lettres ou des chiffres (également appelés octal) pour définir les autorisations.,/td>
Il est important de se rappeler que le premier caractère de la première colonne d’une liste de fichier indique si c’est un répertoire ou un fichier., Les neuf autres caractères sont les autorisations pour le fichier/répertoire. Les trois premiers caractères sont pour l’utilisateur, les trois suivantes pour le groupe, et les trois derniers sont pour les autres. L’exemple drwxrw-r– se décompose comme suit:
d est un répertoire
rwx l’utilisateur a lire, écrire, et les autorisations d’exécution
rw – le groupe dispose d’autorisations de lecture et écriture
r– tous les autres sont en lecture seule autorisations
Notez que le tiret (-) indique autorisations sont supprimées., Par conséquent, avec le groupe” tous les autres », r-se traduit par autorisation de lecture uniquement, les autorisations d’écriture et d’exécution ont été supprimées.
inversement, le signe plus (+) équivaut à accorder des permissions:chmod u+r,g+x <filename>
L’exemple ci-dessus se traduit comme suit:
u is for userr is for readg is for groupx is for execute
En d’autres termes, l’Utilisateur a reçu l’autorisation de lecture et le groupe a reçu l’autorisation Remarque, lors de la définition de plusieurs autorisations pour un ensemble, une virgule est requise entre les ensembles.,
Chmod Format Octal
Pour utiliser le format octal, vous devez calculer les autorisations pour chaque partie du fichier ou du répertoire. Les dix premiers caractères mentionnés ci-dessus correspondent à un nombre à quatre chiffres en octal. L’autorisation d’exécution est égal au nombre de un (1), l’autorisation d’écriture est égal au nombre de deux (2), et l’autorisation de lecture est égal au nombre de quatre (4). Par conséquent, lorsque vous utilisez le format octal, vous devez calculer un nombre entre 0 et 7 pour chaque partie de l’autorisation. Un tableau a été fourni ci-dessous pour des éclaircissements.,
Bien que le format octal peut sembler difficile à comprendre, il est facile à utiliser une fois que vous obtenez l’essentiel. Cependant, la définition des autorisations avec r, w et x peut être plus facile. Vous trouverez ci-dessous des exemples d’utilisation à la fois des lettres et du format octal pour définir des autorisations sur un fichier ou un répertoire.,
un Exemple de syntaxe:
chmod <octal or letters> <file/directory name>
format de Lettre:
chmod go-rwx Work
(Refuser rwx autorisation pour le groupe et les autres)
La sortie de ls -al après la commande chmod ci-dessus se présente comme suit:
dr-------- 2 user user 4096 Dec 17 14:38 Work
Octal format: chmod 444 Work
La sortie de ls -al après la commande chmod ci-dessus doit se présenter comme suit:
dr--r--r-- 2 user user 4096 Dec 17 14:38 Work
octal tableau montrant l’équivalent numérique pour les autorisations ci-dessous.,
Autorisations de Fichiers Supplémentaires
En plus de la plupart des communes de lire/écrire/exécuter le fichier des autorisations, il y a quelques modes supplémentaires que vous pourriez trouver utile, en particulier l’ +t mode (sticky bit) et le +mode s (bit setuid). Ces fonctions décrivent le comportement des fichiers et des exécutables dans des situations multi-utilisateurs.,
lorsqu’il est défini sur un répertoire, le mode sticky bit, ou +t, signifie que seul le propriétaire (ou root) peut supprimer ou renommer des fichiers dans ce répertoire, quels que soient les utilisateurs qui ont accès en écriture au répertoire par appartenance à un groupe ou propriété. Cela est utile lorsqu’un répertoire est détenue par un groupe par lequel un certain nombre d’utilisateurs de partager l’accès en écriture à un ensemble de fichiers.,
Il est important de noter que la définition du BIT collant sur un fichier n’empêche pas un utilisateur disposant d’autorisations d’écriture sur le répertoire englobant de supprimer ou de renommer le fichier—le bit collant doit être défini sur le répertoire englobant. Le bit collant n’a aucune fonction sur les systèmes Linux modernes lorsqu’il est défini sur des fichiers.
Pour définir le sticky bit sur un répertoire nommé /root/sticky
, exécutez la commande suivante:
chmod +t /root/sticky
Pour supprimer le sticky bit à partir d’un fichier ou d’un répertoire, utilisez la balise chmod -t
commande., Remarque, pour changer le bit collant, vous devez être root ou le propriétaire du fichier/répertoire. L’utilisateur root peut supprimer les répertoires et les fichiers qu’il contient, quel que soit l’état du bit collant.
Le bit setuid ou +s, lorsqu’elle est définie sur fichiers permet aux utilisateurs avec des autorisations pour exécuter un fichier donné la possibilité d’exécuter ce fichier avec les permissions de fichier propriétaire., Par exemple, si le fichier work
était la propriété de la balise root
utilisateur et le marketing
groupe, les membres de la balise marketing
groupe pourrait exécuter le work
programme comme si elles étaient la racine de l’utilisateur. Cela peut poser des risques de sécurité potentiels dans certains cas et les exécutables doivent être correctement évalués avant de recevoir l’indicateur+s
., Pour définir la balise +s
bit sur un fichier nommé /usr/bin/work
, exécutez la commande suivante:
chmod g+s /usr/bin/work
En revanche pour le +mode s pour le propriétaire d’un fichier, l’effet de l’ +s mode sur un répertoire est quelque peu différente. Les fichiers créés dans les répertoires + S reçoivent la propriété de l’utilisateur et du groupe de ce répertoire, plutôt que la propriété de l’utilisateur qui a créé le fichier et de leur groupe par défaut., Pour définir la setguid (groupe id) option sur un répertoire, utilisez la commande suivante:
chmod g+s /var/doc-store/
Pour définir le bit setuid (id utilisateur) pour un répertoire nommé /var/doc-store
, exécutez la commande suivante:
chmod u+s /var/doc-store/
le Changement de Propriété de Fichier
Par défaut, tous les fichiers sont « possédés” par l’utilisateur qui les crée et par utilisateur par défaut du groupe. Pour modifier la propriété d’un fichier, utilisez la commande chown
au format chown user:group /path/to/file
. Dans l’exemple suivant, la propriété de la liste ».,le fichier html” est remplacé par l’utilisateur « cjones « du groupe” marketing »:
chown cjones:marketing list.html
pour changer la propriété d’un répertoire et de tous les fichiers qu’il contient, utilisez l’option récursive avec l’indicateur -R
. Dans l’exemple suivant, remplacez la propriété de /srv/smb/leadership/
par l’utilisateur” cjones « du groupe” marketing »:
chown -R cjones:marketing /srv/smb/leadership/
tirant parti des utilisateurs et groupes Linux
dans de nombreux cas, les autorisations utilisateur sont utilisées pour fournir à votre système une plus grande sécurité sans aucune interaction directe., De nombreux systèmes d’exploitation créent des comptes d’utilisateur système spécifiques pour différents packages pendant le processus d’installation.
La meilleure pratique consiste à donner à chaque utilisateur de leur propre connexion à votre système. Cela protège les fichiers de chaque utilisateur de tous les autres utilisateurs. De plus, l’utilisation de comptes spécifiques pour les utilisateurs permet une journalisation système plus précise, en particulier lorsqu’elle est combinée avec des outils tels que sudo
. Nous vous recommandons d’éviter les situations où plus d’une personne connaît le mot de passe d’un compte utilisateur pour une sécurité maximale.,
en revanche, les groupes sont utiles pour permettre à plusieurs comptes d’utilisateurs indépendants de collaborer et de partager des fichiers. Si vous créez des groupes sur une machine pour des tâches communes sur une base par tâche (par exemple, éditeurs web, contributeurs, émetteurs de contenu, support) et ajoutez des utilisateurs pertinents aux groupes pertinents, ces utilisateurs peuvent tous Modifier et exécuter le même ensemble de fichiers sans partager ces fichiers avec le monde. L’utilisation de la commandechown
avec des autorisations de fichier de 770 et 740 aiderait à atteindre cet objectif.