Linux est un système d'exploitation multi-utilisateurs, ce qui signifie qu'il prend en charge plusieurs utilisateurs à la fois.
Comme de nombreuses personnes peuvent accéder au système simultanément et que certaines ressources sont partagées, Linux contrôle l'accès via la propriété et les autorisations.
Propriété des fichiers Linux
Sous Linux, il existe trois types de propriétaires :user
, group
, et others
.
Utilisateur Linux
Un utilisateur est le propriétaire et le créateur par défaut du fichier. Cet utilisateur est donc également appelé propriétaire.
Groupe Linux
Un groupe d'utilisateurs est un ensemble d'utilisateurs. Les utilisateurs appartenant à un groupe auront les mêmes autorisations de groupe Linux pour accéder à un fichier/dossier.
Vous pouvez utiliser des groupes pour attribuer des autorisations en bloc au lieu de les attribuer individuellement. Un utilisateur peut également appartenir à plusieurs groupes.
Autre
Tous les utilisateurs qui ne font pas partie des classes d'utilisateurs ou de groupes appartiennent à cette classe.
Autorisations de fichiers Linux
Les autorisations de fichiers se répartissent en trois catégories :read
, write
, et execute
.
Autorisation de lecture
Pour les fichiers normaux, les autorisations de lecture permettent aux utilisateurs d'ouvrir et de lire le fichier uniquement. Les utilisateurs ne peuvent pas modifier le fichier.
De même pour les répertoires, les autorisations de lecture permettent de lister le contenu du répertoire sans aucune modification dans le répertoire.
Autorisation d'écriture
Lorsque les fichiers ont des autorisations d'écriture, l'utilisateur peut modifier (éditer, supprimer) le fichier et l'enregistrer.
Pour les dossiers, les autorisations d'écriture permettent à un utilisateur de modifier son contenu (créer, supprimer et renommer les fichiers qu'il contient) et de modifier le contenu des fichiers pour lesquels l'utilisateur dispose d'autorisations d'écriture.
Autorisation d'exécution
Pour les fichiers, les autorisations d'exécution permettent à l'utilisateur d'exécuter un script exécutable. Pour les répertoires, l'utilisateur peut y accéder et accéder aux détails des fichiers du répertoire.
Vous trouverez ci-dessous la représentation symbolique des autorisations accordées à l'utilisateur, au groupe et à d'autres.
Notez que nous pouvons trouver les autorisations des fichiers et des dossiers en utilisant une liste longue (ls -l
) sur un terminal Linux.
Dans la sortie ci-dessus, d
représente un répertoire et -
représente un fichier normal.
Comment modifier les autorisations sous Linux à l'aide de chmod
Commande
Maintenant que nous connaissons les bases des propriétés et des autorisations, voyons comment modifier les autorisations à l'aide de chmod
commande.
Syntaxe de chmod
:
chmod permissions filename
Où,
permissions
peut être lu, écrit, exécuté ou une combinaison de ceux-ci.filename
est le nom du fichier pour lequel les permissions doivent changer. Ce paramètre peut également être une liste de fichiers pour modifier les autorisations en masse.
Nous pouvons modifier les autorisations en utilisant deux modes :
- Mode symbolique :cette méthode utilise des symboles comme
u
,g
,o
pour représenter les utilisateurs, les groupes et autres. Les autorisations sont représentées parr, w, x
respectivement pour la lecture, l'écriture et l'exécution. Vous pouvez modifier les autorisations en utilisant +, - et =. - Mode absolu :cette méthode représente les autorisations sous forme de nombres octaux à 3 chiffres allant de 0 à 7.
Voyons-les maintenant en détail.
Comment modifier les autorisations à l'aide du mode symbolique
Le tableau ci-dessous résume la représentation des utilisateurs :
Représentation des utilisateurs | Description |
---|---|
u | utilisateur/propriétaire |
g | groupe |
o | autre |
Nous pouvons utiliser des opérateurs mathématiques pour ajouter, supprimer et attribuer des autorisations. Le tableau ci-dessous montre le résumé :
Opérateur | Description |
---|---|
+ | Ajoute une autorisation à un fichier ou un répertoire |
– | Supprime l'autorisation |
= | Définit l'autorisation si elle n'était pas présente auparavant. Remplace également les autorisations si elles sont définies plus tôt. |
Exemple :
Supposons que j'ai un script et que je souhaite le rendre exécutable pour le propriétaire du fichier zaira
.
Les autorisations de fichier actuelles sont les suivantes :
Séparons les autorisations comme ceci :
Pour ajouter des droits d'exécution (x
) au propriétaire (u
) en mode symbolique, nous pouvons utiliser la commande ci-dessous :
chmod u+x mymotd.sh
Sortie :
Maintenant, nous pouvons voir que les autorisations d'exécution ont été ajoutées pour le propriétaire zaira
.
Exemples supplémentaires pour modifier les autorisations via la méthode symbolique :
- Suppression de
read
etwrite
autorisation pourgroup
etothers
:chmod go-rw
. - Suppression de
read
autorisations pourothers
:chmod o-r
. - Attribuer
write
autorisation degroup
et en remplaçant l'autorisation existante :chmod g=w
.
Comment modifier les autorisations en utilisant le mode absolu
Le mode absolu utilise des nombres pour représenter les autorisations et des opérateurs mathématiques pour les modifier.
Le tableau ci-dessous montre comment nous pouvons attribuer les autorisations pertinentes :
Autorisation | Fournir l'autorisation |
---|---|
lire | ajouter 4 |
écrire | ajouter 2 |
exécuter | ajouter 1 |
Les autorisations peuvent être révoquées par soustraction. Le tableau ci-dessous montre comment vous pouvez supprimer les autorisations pertinentes.
Autorisation | Révoquer l'autorisation |
---|---|
lire | soustraire 4 |
écrire | soustraire 2 |
exécuter | soustraire 1 |
Exemple :
- Définir
read
(ajouter 4) pouruser
,read
(ajouter 4) etexecute
(ajoutez 1) pour le groupe, et seulementexecute
(ajouter 1) pour les autres.
chmod 451 file-name
Voici comment nous avons effectué le calcul :
Notez que c'est la même chose que r--r-x--x
.
- Supprimer
execution
droits deother
etgroup
.
Pour supprimer l'exécution de other
et group
, soustrayez 1 de la partie exécution des 2 derniers octets.
- Attribuer
read
,write
etexecute
àuser
,read
etexecute
augroup
et seulementread
aux autres.
Ce serait la même chose que rwxr-xr--
.
Comment changer de propriétaire à l'aide de chown
Commande
Ensuite, nous apprendrons comment changer la propriété d'un fichier. Vous pouvez changer la propriété d'un fichier ou d'un dossier en utilisant le chown
commande. Dans certains cas, le changement de propriétaire nécessite sudo
autorisations.
Syntaxe de chown
:
chown user filename
Comment changer la propriété de l'utilisateur avec chown
Transférons la propriété de l'utilisateur zaira
à l'utilisateur news
.
chown news mymotd.sh
Commande pour changer de propriétaire :sudo chown news mymotd.sh
Sortie :
Comment modifier simultanément la propriété d'un utilisateur et d'un groupe
Nous pouvons également utiliser chown
pour changer d'utilisateur et de groupe simultanément.
chown user:group filename
Comment changer la propriété du répertoire
Vous pouvez modifier la propriété de manière récursive pour le contenu d'un répertoire. L'exemple ci-dessous change la propriété du /opt/script
dossier pour autoriser l'utilisateur admin
.
chown -R admin /opt/script
Comment changer la propriété du groupe
Dans le cas où nous avons seulement besoin de changer le propriétaire du groupe, nous pouvons utiliser chown
en faisant précéder le nom du groupe par deux points :
chown :admins /opt/script
Exercice guidé sur les autorisations Linux
Jusqu'à présent, nous avons exploré les autorisations, les propriétés et les méthodes pour les modifier. Nous allons maintenant renforcer notre apprentissage avec un exercice guidé.
Objectif :Pour créer des groupes et attribuer les autorisations appropriées à ses membres. Vérifiez l'accès en y accédant par des utilisateurs non autorisés.
Tâche :Créez un groupe appelé dev-team
et ajoutez-y deux membres (John et Bob). Créez un dossier /home/dev-team
et changez la propriété en groupe dev-team
. Vérifiez que les deux utilisateurs de l'dev-team
groupe a lu et écrivez accéder au dossier.
Créer un autre groupe project-manager
et ajouter un utilisateur Fatima
à cela. Vérifiez si le dossier /home/dev-team
est accessible par Fatima
.
Visualisation du problème
Nous pouvons visualiser le problème comme ceci :
Étape 1 :Passez à l'utilisateur root.
Passez en utilisateur root afin que nous ayons le droit de créer de nouveaux utilisateurs et groupes.
Utilisez le sudo
commande avec le drapeau i
.
Si vous avez le mot de passe root, vous pouvez également vous connecter en l'utilisant.
Entrez sudo -i
pour passer à l'utilisateur root.
Entrez whoami
pour savoir si vous êtes l'utilisateur root :
Si vous n'avez pas root
accès, utilisez les commandes avec l'ajout de sudo
.
Étape 2 :Créer un groupe dev-team
Utilisez le groupadd
commande.
Syntaxe :groupadd group-name
Saisissez groupadd dev-team
pour créer la dev-team
groupe
Vérifiez :cat /etc/group | grep dev-team
Étape 3 :Créez deux nouveaux utilisateurs, John et Bob, et ajoutez-les à l'dev-team
groupe
Utilisez la commande useradd
.
useradd
crée un nouvel utilisateur et l'ajoute au groupe spécifié.
Syntaxe :useradd -G groupname username
Où -G
spécifie le groupe.
useradd -G dev-team John
useradd -G dev-team Bob
Vérifiez :cat /etc/group | grep dev-team
Étape 4 :Fournissez des mots de passe aux utilisateurs John et Bob
Utilisez la commande passwd
passwd
crée un mot de passe pour les utilisateurs.
Syntaxe :passwd username
passwd John
passwd Bob
Étape 5 :Créez un répertoire dans /home et nommez-le dev-team
Utilisez la commande mkdir
mkdir
crée un répertoire.
Syntaxe :mkdir directory-name
mkdir /home/dev-team
Vérifier :
Étape 6 :Modifiez la propriété du groupe du dossier dev-team
pour grouper dev-team
Utilisez la commande chown
Syntaxe :chown :group-name folder
chown :dev-team /home/dev-team/
Étape 7 :Assurez-vous que les autorisations du dossier dev-team
autoriser les membres du groupe à créer et supprimer des fichiers.
Utilisez la commande chmod
Les autorisations d'écriture permettent aux utilisateurs et aux groupes de créer et de supprimer des fichiers.
Syntaxe :chmod permissions folder
chmod g+w /home/dev-team/
Étape 8 :Assurez-vous que les "autres" n'ont pas accès aux fichiers de dev-team
dossier.
Utilisez la commande chmod
Supprimez les autorisations de lecture, d'écriture et d'exécution des "autres" si elles existent.
Syntaxe :chmod permissions folder
chmod o-rx dev-team
Étape 9 :Quittez la root
session et passez à John
Utilisez la commande exit
pour déconnecter l'utilisateur root.
Utilisez su
pour changer d'utilisateur.
Syntaxe :su - user
Pour confirmer l'utilisateur actuel, utilisez la commande whoami
.
exit
su - John
Vérifiez avec la commande whoami
.
Étape 10 :Accédez au dossier :/home/dev-team
Utilisez la commande cd
pour changer de dossier.
Syntaxe :cd /path/to/folder
Confirmez le chemin actuel avec pwd
.
cd /home/dev-team
Étape 11 :Créez un fichier vide dans le dossier :/home/dev-team
Utilisez la commande touch
pour créer un fichier vide.
Syntaxe :touch filename
touch john-file.txt
Vérifiez :ls -lrt
Étape 12 :Modifiez la propriété du groupe du fichier créé en dev-team
et vérifiez.
Utilisez la commande chown
pour changer de propriétaire.
Syntaxe :chown :group file-name
chown :dev-team john-file.txt
Une fois la propriété du groupe modifiée, tous les membres du groupe peuvent accéder à ce fichier.
Vérifiez ls -lrt
Étape 13 :Quittez le shell et passez à l'utilisateur Bob's
Utilisez la commande exit
pour quitter le terminal.
Utilisez su
pour changer d'utilisateur.
Syntaxe :su - user
Pour confirmer l'utilisateur actuel, utilisez la commande whoami
.
exit
su - Bob
Vérifiez l'utilisateur actuel avec la commande whoami
.
Étape 14 :Accédez au chemin /home/dev-team
Utilisez la commande cd
pour changer de dossier.
Syntaxe :cd /path/to/folder
Confirmez le chemin actuel avec pwd
.
cd /home/dev-team
Étape 15 :Découvrez Bob's
privilèges d'accès à john-file.txt
Utilisez la commande ls -l
pour une longue liste.
Syntaxe :ls -l | grep file-name
Le groupe a-t-il rw-
autorisations ?
ls -l | grep john-file.txt
Étape 16 :Modifier le fichier john-file.txt
en étant connecté en tant que Bob's
Utilisez la commande echo
pour ajouter du texte au fichier.
Syntaxe :echo "Some text" >>file-name
Cela redirigerait le texte cité vers la fin du fichier.
echo "This is Bob's comment" > john-file.txt
Si toutes les autorisations sont correctement définies, Bob's
serait autorisé à modifier et enregistrer ce fichier. Sinon, vous obtiendrez une erreur comme celle-ci :Permission denied
.
Vérifiez cat john-file.txt
Étape 17 :Créez un autre groupe project-manager
et assigner un membre Fatima
à elle
Utilisez la commande groupadd
pour ajouter un nouveau groupe.
Syntaxe :groupadd group-name
Créez un nouvel utilisateur avec la commande useradd
.
Utilisez le drapeau -G
pour lui attribuer un utilisateur.
groupadd project-manager
useradd -G project-manager Fatima
passwd Fatima
Étape 18 :Accédez au dossier /home/dev-team
et vérifiez si Fatima
peut y accéder
Utilisez cd
pour accéder à /home/dev-team
.
cd /home/dev-team
.
Nous obtenons cette erreur :
C'est parce que, others
n'ont pas accès au dossier dev-team
.
Si on s'en souvient, voici les droits de la dev-team
dossier.
Conclusion
Les autorisations et les propriétés sont des concepts utiles pour renforcer la sécurité sur les systèmes d'exploitation multi-utilisateurs. J'espère que vous avez pu en apprendre davantage sur la modification des autorisations et des propriétaires en profondeur.
Quelle est votre chose préférée que vous avez apprise dans ce tutoriel ? Faites-le moi savoir sur Twitter !
Vous pouvez également lire mes autres articles ici.
Merci à Tom Mondloch pour son aide dans l'exercice guidé.