Si vous avez déjà essayé d’exécuter un script à partir de la ligne de commande sous Linux et que vous avez reçu un message d’erreur indiquant qu’il n’est pas exécutable ou que vous avez tenté d’entrer dans un répertoire uniquement pour être bloqué par le système, vous n’avez probablement pas les autorisations pour le faire. des choses. Heureusement, si vous disposez des droits appropriés ou de la capacité d’agir en tant que super utilisateur (accessible en utilisant sudo), vous pouvez modifier les autorisations sur les fichiers et les répertoires.
Dans ce guide, nous examinerons les chmod command, une commande puissante qui peut modifier les autorisations de fichiers et de répertoires pour le propriétaire, les membres du groupe d’utilisateurs et d’autres. Dans une section ci-dessous, nous expliquerons également comment savoir dans quel groupe se trouve votre utilisateur et exactement ce que Linux entend par « autres ».
Pendant que vous vous habituez à ces commandes, il est bon de travailler avec des exemples de fichiers et de répertoires vides et vous devez prendre des précautions supplémentaires pour vous assurer que vous suivez attentivement les instructions.
Toutes les commandes de ce tutoriel fonctionneront sur la plupart des machines Linux. Nous avons utilisé une installation d’Ubuntu 20.04, mais vous pouvez exécuter ce guide sur un Tarte aux framboises. Toutes les procédures sont effectuées via le terminal. Vous pouvez ouvrir une fenêtre de terminal sur la plupart des machines Linux en appuyant sur ctrl, alt et t.
Comment vérifier les autorisations de fichiers sous Linux
Pour commencer, créons un fichier de test dans un répertoire de test et examinons ses autorisations par défaut. Pour voir les autorisations que nous utiliserons ls avec le -l argument ajouté.
1. Créez un nouveau répertoire appelé test_directory
$ mkdir test_directory
2. Déplacez-vous dans le répertoire nouvellement créé.
$ cd test_directory
3. Créez un nouveau fichier de test appelé test1.txt.
$ touch test1.txt
4. Lister le contenu du répertoire en utilisant ls -l.
$ ls -l
En utilisant ls -l nous donne beaucoup plus d’informations sur les articles retournés sur la liste. On devrait voir ça test1.txt a été créé. Nous sommes intéressés par les 10 premiers caractères de la liste qui, pour notre fichier de test, lisent – rw- rw- r–.
Le premier – indique que l’objet de la liste est un fichier. Si nous avons couru ls -l et un répertoire a été répertorié ce premier caractère serait un ré. Les 9 caractères suivants sont disposés en 3 séries de 3.
Le premier ensemble de 3 fait référence au propriétaire, le deuxième ensemble de 3 fait référence aux groupes d’utilisateurs et le dernier ensemble de trois fait référence aux autres. Chaque ensemble de 3 caractères peut contenir soit – soit r, w et x. Si vous pouvez voir un r dans l’ensemble, cela signifie que des autorisations de lecture ont été accordées à cet ensemble. Si vous pouvez voir aw que cet ensemble peut écrire dans un fichier et si vous pouvez voir un x dans l’ensemble, alors cet ensemble peut exécuter le fichier en tant que script ou programme.
Nous pouvons voir que notre test1.txt a actuellement les autorisations de propriétaire et de membre du groupe définies pour lire et écrire avec d’autres uniquement autorisés à lire. Personne n’a la permission d’exécuter le fichier.
Comment modifier rapidement les autorisations de fichiers / répertoires Linux
Nous pouvons utiliser le chmod commande pour activer et désactiver les autorisations de lecture, d’écriture et d’exécution pour le propriétaire, le groupe et les autres. Commençons par modifier les autorisations individuelles pour le propriétaire et le groupe.
1. Dans le test_directory, répertorier les autorisations actuelles pour test1.txt.
$ ls -l
Ceux-ci devraient être inchangés depuis la création test1.txt et devrait lire -rw-rw-r– .
2. Modifier l’autorisation du propriétaire en lecture seule.
$ chmod u-w test1.txt
3. Lister le contenu du répertoire pour afficher les nouveaux paramètres d’autorisation. Nous devrions maintenant voir que les autorisations pour test1.txt read -r–rw-r– indiquant que, pour le propriétaire, le fichier est désormais en lecture seule.
$ ls -l
4. Modifier l’autorisation des groupes en lecture seule. Semblable à la modification des autorisations pour le propriétaire, nous pouvons modifier les paramètres d’autorisation pour les groupes. Pour révoquer les autorisations d’écriture, nous pouvons utiliser l’argument gw.
$ chmod g-w test1.txt
5. Lister le contenu du répertoire pour afficher les nouveaux paramètres d’autorisation.
$ ls -l
Nous devrions maintenant voir que les autorisations pour test1.txt read -r–r–r– indiquant que, pour les groupes, le fichier est désormais en lecture seule.
6. Activez les autorisations d’écriture pour le propriétaire. À la place d’utiliser euh pour supprimer les autorisations d’écriture, nous pouvons utiliser intuitivement u+w pour accorder des autorisations d’écriture au propriétaire.
$ chmod u+w test1.txt
7. Lister le contenu du répertoire pour afficher les nouveaux paramètres d’autorisation. Nous devrions maintenant voir que les autorisations pour test1.txt lire -rw-r–r– indiquant que, pour le propriétaire, les autorisations d’écriture ont été accordées.
$ ls -l
Comment appliquer plusieurs modifications d’autorisations de fichiers/répertoires sous Linux
Nous pouvons également combiner les arguments que nous avons utilisés dans la section précédente pour apporter plusieurs modifications aux autorisations de fichiers Linux en une seule commande. Dans cette section, il est important de ne pas ajouter d’espaces supplémentaires dans le chmod arguments car cela entraînera l’échec de la commande.
Dans la première section, nous avons utilisé tu et g pour propriétaire et grouper et dans cette section, nous utiliserons en plus o pour cibler les changements d’autorisation pour les autres. De même, nous avons utilisé r et w pour lire et écrivez et dans cette section nous ajouterons X pour apporter des modifications aux autorisations exécutables.
1. Lister le contenu du répertoire pour afficher les nouveaux paramètres d’autorisation. Nous devrions voir que les autorisations pour test1.txt sont -rw-r–r– .
$ ls -l
2. Modifiez les autorisations afin que le propriétaire puisse également exécuter et que le groupe puisse également écrire et exécuter. Notez qu’il n’y a pas d’espace après la virgule et notez également que vous pouvez combiner r, w, x en un seul argument.
$ chmod u+x,g+wx test1.txt
3. Répertoriez le contenu du répertoire pour afficher les nouveaux paramètres d’autorisation. Nous devrions voir que les autorisations pour test1.txt sont -rwxrwxr– . Cela signifie que le propriétaire et grouper peuvent lire, écrire et exécuter le fichier tandis que d’autres ne peuvent que lire.
$ ls -l
Comment modifier les autorisations de fichiers / répertoires de manière récursive sous Linux
le chmod La commande peut être utilisée pour créer des modifications de manière récursive dans un répertoire, ce qui signifie que les modifications sont également appliquées aux fichiers contenus dans le répertoire. Utilisons ce que nous avons appris jusqu’à présent et utilisons en plus le récursif -R argument pour voir comment cela fonctionne.
1. Déplacez-vous vers votre répertoire personnel et listez le contenu.
$ cd
$ ls -l
Nous devrions voir test_directory répertorié dans les parties précédentes de ce guide. Les autorisations pour test_directory doivent être drwxrwxr-x.
2. Modifiez les autorisations de propriétaire et de groupe du répertoire et de son contenu. L’exécution de cette commande révoquera les autorisations d’écriture du propriétaire et du groupe pour les deux test_directory et le dossier, test1.txt il contient.
$ chmod -R u-w,g-w test_directory
3. Lister le contenu du répertoire personnel pour vérifier les autorisations de test_directory.
$ ls -l
Nous devrions voir que les autorisations de propriétaire et de groupe autorisent la lecture et l’exécution, mais ne permettent désormais pas d’écrire dans le répertoire.
4. Emménager dans test_directory pour vérifier les autorisations pour test1.txt.
$ cd test_directory
$ ls -l
Nous devrions voir que les autorisations de propriétaire et de groupe pourtest1.txt ont été modifiés pour correspondre aux modifications récursives apportées au répertoire hôte, supprimant les autorisations d’écriture.
Comment afficher votre groupe Linux
Lorsque nous parlons d’utilisateurs, de groupes et autres, nous entendons par là que notre utilisateur appartient généralement à un groupe d’utilisateurs. Un utilisateur et un groupe peuvent avoir des autorisations identiques ou très différentes. Par exemple, un membre de l’équipe peut avoir besoin de plus d’autorisations pour effectuer une certaine tâche. Les autorisations que nous accordons à un utilisateur et à un groupe seront différentes de celles que nous accordons aux autres utilisateurs, aux utilisateurs qui ne font pas partie du groupe.
Nous pouvons voir les groupes dont notre utilisateur fait partie via le groupes commander.
1. Ouvrez un terminal et tapez groupes. Cela listera tous les groupes disponibles sur notre installation.
groups
2. Ouvrez un terminal et tapez groupes suivi du nom de l’utilisateur. Par exemple ici, nous vérifions à quels groupes « Tom » appartient et constatons qu’il appartient aux groupes tom et sudo.
groups tom
La sortie de cette commande ressemble à ceci.
tom : tom sudo
Les autres ne sont pas un groupe. Au lieu de cela, « autres » fait référence à toute personne qui n’est pas le propriétaire, ou dans un groupe qui a accès à un fichier ou un répertoire. Généralement, d’autres n’auront qu’un accès en lecture à tous les fichiers de répertoires, mais cela peut être modifié et nous l’explorerons plus tard.
Comment modifier les autorisations de fichiers Linux avec des codes numériques
Bien que l’utilisation de r, w ou x soit plus facile à retenir pour les autorisations de fichiers Linux, de nombreuses personnes utilisent à la place une série de codes numériques avec chmod. Vous alimentez la commande chmod avec un nombre à trois chiffres et chaque chiffre s’applique à un groupe différent dans cet ordre : utilisateur, groupe, autres. Ainsi, par exemple, mod 777 donne aux trois types des autorisations complètes de lecture, d’écriture et d’exécution tandis que mod 740 donne à l’utilisateur des autorisations complètes, au groupe des autorisations de lecture et aux autres aucune autorisation du tout.
Le tableau ci-dessous indique la signification de chaque chiffre.
Nombre | Autorisations |
---|---|
0 | Aucun |
1 | Exécuter |
2 | Écrire |
3 | Exécuter et écrire |
4 | Lire |
5 | Lire et exécuter |
6 | Lire et écrire |
7 | Tout : lire, écrire et exécuter |
Avec ces usages de base du chmod commande vous obtenez beaucoup de contrôle sur les autorisations de fichiers et de répertoires. Il y a beaucoup d’arguments différents à ajouter à chmod qui vous permettent de travailler avec différentes approches.
Par exemple, il vaut la peine de rechercher l’utilisation de = au lieu de + et – car, plutôt que d’activer et de désactiver les autorisations, vous pouvez définir des autorisations directement pour certains ou tous les utilisateurs. Au fur et à mesure que vous recherchez et apprenez chmod N’oubliez pas de vous entraîner sur des fichiers et des répertoires de test, car cela peut être frustrant si vous supprimez accidentellement toutes les autorisations sur un fichier dont vous dépendez.