GNU/Linux >> Tutoriels Linux >  >> Linux

Linux chmod et chown - Comment modifier les autorisations et la propriété des fichiers sous Linux

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 :

  1. 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 par r, w, x respectivement pour la lecture, l'écriture et l'exécution. Vous pouvez modifier les autorisations en utilisant +, - et =.
  2. 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 et write autorisation pour group et others :chmod go-rw .
  • Suppression de read autorisations pour others :chmod o-r .
  • Attribuer write autorisation de group 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) pour user , read (ajouter 4) et execute (ajoutez 1) pour le groupe, et seulement execute (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 de other et group .

Pour supprimer l'exécution de other et group , soustrayez 1 de la partie exécution des 2 derniers octets.

  • Attribuer read , write et execute à user , read et execute au group et seulement read 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.

Afficher l'indice

Utilisez le sudo commande avec le drapeau i .

Si vous avez le mot de passe root, vous pouvez également vous connecter en l'utilisant.

Afficher la solution

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

Afficher l'indice

Utilisez le groupadd commande.

Syntaxe :groupadd group-name

Afficher la solution

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

Afficher l'indice

Utilisez la commande useradd .

useradd crée un nouvel utilisateur et l'ajoute au groupe spécifié.

Syntaxe :useradd -G groupname username

-G spécifie le groupe.

Afficher la solution

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

Afficher l'indice

Utilisez la commande passwd

passwd crée un mot de passe pour les utilisateurs.

Syntaxe :passwd username

Afficher la solution

passwd John

passwd Bob

Étape 5 :Créez un répertoire dans /home et nommez-le dev-team

Afficher l'indice

Utilisez la commande mkdir

mkdir crée un répertoire.

Syntaxe :mkdir directory-name

Afficher la solution

mkdir /home/dev-team

Vérifier :

Étape 6 :Modifiez la propriété du groupe du dossier dev-team pour grouper dev-team

Afficher l'indice

Utilisez la commande chown

Syntaxe :chown :group-name folder

Afficher la solution

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.

Afficher l'indice

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

Afficher la solution

chmod g+w /home/dev-team/

Étape 8 :Assurez-vous que les "autres" n'ont pas accès aux fichiers de dev-team dossier.

Afficher l'indice

Utilisez la commande chmod

Supprimez les autorisations de lecture, d'écriture et d'exécution des "autres" si elles existent.

Syntaxe :chmod permissions folder

Afficher la solution

chmod o-rx dev-team

Étape 9 :Quittez la root session et passez à John

Afficher l'indice

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 .

Afficher la solution

exit

su - John

Vérifiez avec la commande whoami .

Étape 10 :Accédez au dossier :/home/dev-team

Afficher l'indice

Utilisez la commande cd pour changer de dossier.

Syntaxe :cd /path/to/folder

Confirmez le chemin actuel avec pwd .

Afficher la solution

cd /home/dev-team

Étape 11 :Créez un fichier vide dans le dossier :/home/dev-team

Afficher l'indice

Utilisez la commande touch pour créer un fichier vide.

Syntaxe :touch filename

Afficher la solution

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.

Afficher l'indice

Utilisez la commande chown pour changer de propriétaire.

Syntaxe :chown :group file-name

Afficher la solution

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

Afficher l'indice

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 .

Afficher la solution

exit

su - Bob

Vérifiez l'utilisateur actuel avec la commande whoami .

Étape 14 :Accédez au chemin /home/dev-team

Afficher l'indice

Utilisez la commande cd pour changer de dossier.

Syntaxe :cd /path/to/folder

Confirmez le chemin actuel avec pwd .

Afficher la solution

cd /home/dev-team

Étape 15 :Découvrez Bob's privilèges d'accès à john-file.txt

Afficher l'indice

Utilisez la commande ls -l pour une longue liste.

Syntaxe :ls -l | grep file-name

Le groupe a-t-il rw- autorisations ?

Afficher la solution

ls -l | grep john-file.txt

Étape 16 :Modifier le fichier john-file.txt en étant connecté en tant que Bob's

Afficher l'indice

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.

Afficher la solution

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

Afficher l'indice

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.

Afficher la solution
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

Afficher l'indice

Utilisez cd pour accéder à /home/dev-team .

Afficher la solution

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é.


Linux
  1. Comment copier les autorisations et la propriété des fichiers dans un autre fichier sous Linux

  2. Comment utiliser la commande chown pour changer de propriétaire sous Linux

  3. Comment utiliser la commande chmod (changer de mode) sous Linux

  4. Comment gérer les autorisations/propriétés des fichiers et des répertoires sous Linux

  5. Comment chmod et chown fichiers cachés sous Linux?

Comment modifier les autorisations sous Linux

Qu'est-ce que l'UID sous Linux, comment le trouver et le modifier

Commande Chmod - Comment modifier les autorisations de fichiers sous Linux

Apprendre l'utilisation de la commande chown (changer de propriétaire) sous Linux

Comment changer d'utilisateur sous Linux

Comprendre les autorisations de fichiers de base et la propriété sous Linux