Comment utiliser la commande chmod sous Linux

Contenu

Indicateur de terminal stylisé sur un ordinateur portable Linux

Contrôler qui peut accéder aux fichiers, trouver des répertoires et exécuter des scripts à l'aide de Linux chmod commander. Cette commande modifie les autorisations de fichiers Linux, qui semblent compliqués à première vue, mais ils sont en fait assez simples une fois que vous savez comment ils fonctionnent.

chmod modifie les permissions des fichiers

En Linux, qui peut faire quoi avec un fichier ou un répertoire est contrôlé via des ensembles d'autorisations. Il existe trois ensembles d'autorisations. Un ensemble pour le propriétaire du fichier, un autre ensemble pour les membres du groupe du fichier et un ensemble final pour tous les autres.

Les autorisations contrôlent les actions pouvant être effectuées sur le fichier ou le répertoire. Activer ou empêcher la lecture d'un fichier, modifié le, si c'est un script ou un programme, réalisé. Pour un répertoire, règle d'autorisation qui peut cd dans le répertoire et qui peut créer ou modifier des fichiers dans le répertoire.

Vous utilisez le chmod commande à définir chacune de ces autorisations. Pour voir quelles autorisations ont été définies dans un fichier ou un répertoire, on peut utiliser ls.

Afficher et comprendre les autorisations de fichiers

Nous pouvons utiliser le -l (format long) possibilité d'avoir ls lister les autorisations de fichiers pour les fichiers et les répertoires.

ls -l

Sur chaque ligne, le premier caractère identifie le type d'entrée répertorié. Si c'est un script (-) c'est un fichier. Si c'est la lettre d est un directeur.

Les neuf caractères suivants représentent les paramètres des trois ensembles d'autorisations.

  • Les trois premiers caractères indiquent les autorisations de l'utilisateur propriétaire du fichier (Permis utilisateur).
  • Les trois caractères du milieu indiquent les autorisations pour les membres du groupe du fichier (autorisations de groupe).
  • Les trois derniers caractères montrent les autorisations pour toute personne qui n'est pas dans les deux premières catégories (autres autorisations).

Il y a trois caractères dans chaque ensemble d'autorisations. Les caractères sont des indicateurs de la présence ou de l'absence de l'une des autorisations. Ils sont un script (-) ou une lettre. Si le personnage est un script, signifie que l'autorisation n'est pas accordée. Si le personnage est un r, w, ou un x, cette autorisation a été accordée.

Les lettres représentent:

  • r: Lire les autorisations. Le fichier peut être ouvert et son contenu peut être visualisé.
  • w: Autorisations d'écriture. Le fichier peut être édité, modifier et supprimer.
  • X: Exécuter les autorisations. Si le fichier est un script ou un programme, peut être exécuté (Cours).

Par exemple:

  • --- signifie qu'aucune autorisation n'a été accordée.
  • rwx signifie que toutes les autorisations ont été accordées. Indicateurs de lecture, l'écriture et l'exécution sont toutes présentes.

Dans notre capture d'écran, la première ligne commence par un d. Cette ligne fait référence à un répertoire appelé “déposer”. Le propriétaire du répertoire est “dave” et le nom du groupe auquel appartient le répertoire s'appelle aussi “dave”.

Les trois caractères suivants sont les autorisations utilisateur pour ce répertoire. Ceux-ci montrent que le propriétaire a toutes les autorisations. Les r, w, et x tous les personnages sont présents. Cela signifie que l'utilisateur dave a des autorisations de lecture, écrire et exécuter pour ce répertoire.

Le deuxième ensemble de trois caractères correspond aux autorisations de groupe, ceux-ci sont r-x. Ceux-ci montrent que les membres du groupe dave ont des autorisations de lecture et d'exécution pour ce répertoire. Cela signifie qu'ils peuvent lister les fichiers et leur contenu dans le répertoire, et peut cd (Cours) dans ce répertoire. Ils n'ont pas d'autorisations d'écriture, donc ils ne peuvent pas créer, modifier ou supprimer des fichiers.

L'ensemble final de trois personnages en plus r-x. Ces autorisations s'appliquent aux personnes qui ne sont pas régies par les deux premiers ensembles d'autorisations. Ces personnes (appels “les autres”) disposer des autorisations de lecture et d'exécution sur ce répertoire.

Ensuite, pour resumer, les membres du groupe et autres ont des autorisations de lecture et d'exécution. Propriétaire, un utilisateur nommé Dave, il a également des autorisations d'écriture.

Pour tous les autres fichiers (à part le fichier de script mh.sh), Dave et les membres du groupe de Dave ont des propriétés de lecture et d'écriture sur les fichiers, et les autres n'ont que des autorisations de lecture.

Pour le cas particulier du fichier de script mh.sh, le propriétaire dave et les membres du groupe ont des autorisations de lecture, rédaction et exécution, et les autres n'ont que des autorisations de lecture et d'exécution.

Comprendre la syntaxe des autorisations

Utilisation chmod pour déterminer les autorisations, nous devons vous dire:

  • QUI: Pour qui définissons-nous les autorisations ?.
  • Quoi: Quel changement faisons-nous? Ajoutons-nous ou supprimons-nous l'autorisation?
  • Lequel: Laquelle des autorisations définissons-nous?

Nous utilisons des indicateurs pour représenter ces valeurs et former de courtes “déclarations d'autorisation” Quoi u+x, où “vous” ça veut dire “Nom d'utilisateur” (qui), “+” signifie ajouter (Quoi) et “X” signifie exécuter l'autorisation (qui).

Les valeurs de “qui” ce que nous pouvons utiliser sont:

  • ton: Utilisateur, En d'autres termes, le propriétaire du fichier.
  • gramme: Grouper, En d'autres termes, membres du groupe auquel appartient le fichier.
  • O: Autres, En d'autres termes, des personnes qui ne sont pas régies par u et g permis.
  • une: Tout, En d'autres termes, tout ce qui précède.

Si aucun de ces éléments n'est utilisé, chmod se comporte comme si “a” A été utilisé.

Les valeurs de “Quoi” nous pouvons utiliser sont:

  • : Moins. Supprimer l'autorisation.
  • +: signe plus. Donner la permission. L'autorisation est ajoutée aux autorisations existantes. Si vous voulez avoir cette autorisation et uniquement cet ensemble d'autorisations, Utilisez le = option, décrit ci-dessous.
  • =: Signe égal. Définir une autorisation et supprimer d'autres.

Les “Quoi” les valeurs que nous pouvons utiliser sont:

  • r: Autorisation de lecture.
  • w: Autorisation d'écriture.
  • X: Exécuter l'autorisation.

Déterminer et modifier les autorisations

Disons que nous avons un fichier où tout le monde a les permissions complètes.

ls -l nouveau_fichier.txt

Nous voulons que l'utilisateur dave ait des autorisations de lecture et d'écriture et que le groupe et les autres utilisateurs n'aient que des autorisations de lecture. Nous pouvons le faire en utilisant la commande suivante:

chmod u=rw,et = r nouveau_fichier.txt

L'utilisation de l'opérateur “=” signifie que nous supprimons les autorisations existantes, puis définissons celles spécifiées.

vérifions la nouvelle autorisation dans ce fichier:

ls -l nouveau_fichier.txt

Les autorisations existantes ont été supprimées et de nouvelles autorisations ont été définies, comme on s'y attendait.

Que diriez-vous d'ajouter une autorisation? sans pour autant Effacer les paramètres d'autorisation existants? On peut aussi le faire facilement.

Disons que nous avons un fichier de script que nous avons fini de modifier. Nous devons le rendre exécutable pour tous les utilisateurs. Vos autorisations actuelles ressemblent à ceci:

ls -l nouveau_script.sh

Nous pouvons ajouter l'autorisation d'exécution pour tout le monde avec la commande suivante:

chmod a+x nouveau_script.sh

Si nous regardons les autorisations, nous verrons que l'autorisation d'exécution est désormais accordée à tout le monde, et les permis existants sont toujours en vigueur.

ls -l nouveau_script.sh

Nous aurions pu réaliser la même chose sans le “une” dans la déclaration “une + X”. La commande suivante aurait tout aussi bien fonctionné.

chmod +x nouveau_script.sh

Déterminer les autorisations pour plusieurs fichiers

Nous pouvons appliquer des autorisations à plusieurs fichiers en même temps.

Ce sont les fichiers dans le répertoire courant:

ls -l

Disons que nous voulons effacer les autorisations de lecture pour le “autres” les utilisateurs des fichiers qui ont une extension “.page”. Nous pouvons le faire avec la commande suivante:

chmod o-r *.page

Voyons quel effet cela a eu:

ls -l

Comme nous pouvons le voir, l'autorisation de lecture a été supprimée des fichiers “.page” pour la catégorie “autres” des utilisateurs. Aucun autre fichier n'a été affecté.

Si nous avions voulu inclure des fichiers dans des sous-répertoires, nous aurions pu utiliser le -R option (récursif).

chmod -R o-r *.page

Sténographie numérique

Une autre façon d'utiliser chmod est de fournir les autorisations que vous souhaitez accorder au propriétaire, groupe et d'autres personnes sous la forme d'un numéro à trois chiffres. Le chiffre le plus à gauche représente les autorisations du propriétaire. Le chiffre du milieu représente les autorisations pour les membres du groupe. Le chiffre le plus à droite représente les autorisations pour les autres.

Les chiffres que vous pouvez utiliser et ce qu'ils représentent sont répertoriés ici:

  • 0: (000) Sans permission.
  • 1: (001) Autorisation d'exécution.
  • 2: (010) autorisation d'écriture.
  • 3: (011) Autorisations d'écriture et d'exécution.
  • 4: (100) Autorisation de lecture.
  • 5: (101) Lire et exécuter les autorisations.
  • 6: (110) Autorisations de lecture et d'écriture.
  • 7: (111) Lire, autorisations d'écriture et d'exécution.

Chacune des trois autorisations est représentée par l'un des bits du binaire comme du nombre décimal. Ensuite, 5, Qu'est que c'est 101 en binaire, signifie lire et exécuter. 2, Qu'est que c'est 010 en binaire, signifierait l'autorisation d'écrire.

Avec cette méthode, définir les autorisations que vous souhaitez avoir; ne pas ajouter ces autorisations aux autorisations existantes. Ensuite, si les autorisations de lecture et d'écriture étaient déjà en place, il faudrait que j'utilise 7 (111) pour ajouter des autorisations d'exécution. L'utilisation de 1 (001) Je supprimerais les autorisations de lecture et d'écriture et ajouterais l'autorisation d'exécution.

Rajoutons l'autorisation de lecture sur les fichiers “.page” pour la catégorie des autres utilisateurs. Nous devons également configurer les autorisations des utilisateurs et des groupes, il faut donc les configurer dans ce qu'ils sont déjà. Ces utilisateurs ont déjà des autorisations de lecture et d'écriture, qui sont 6 (110). Nous voulons qu'ils “autres” avoir des autorisations de lecture et, pour cela, devrait être établi dans 4 (100).

La commande suivante accomplira cela:

chmod 664 *.page

Cela définit les autorisations dont nous avons besoin pour l'utilisateur, membres du groupe et autres dont nous avons besoin. Les autorisations des utilisateurs et des membres du groupe sont réinitialisées à ce qu'elles étaient déjà, et la permission de lecture des autres est réinitialisée.

ls -l

Options avancées

Si tu lire la page de manuel pour chmod Vous verrez qu'il existe des options avancées associées aux bits SETUID et SETGID, et avec l'effacement restreint ou bit “collant”.

Pour lui 99% des cas, aura besoin chmod pour, les alternatives décrites ici vous couvriront.

setTimeout(fonction(){
!fonction(F,b,e,v,m,t,s)
{si(f.fbq)revenir;n=f.fbq=fonction(){n.callMethod?
n.callMethod.apply(m,arguments):n.queue.push(arguments)};
si(!f._fbq)f._fbq=n;n.push=n;n.chargé=!0;n.version=’2.0′;
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertAvant(t,s) } (window, document,'scénario',
'https://connect.facebook.net/en_US/fbevents.js’);
fbq('init', « 335401813750447 »);
fbq('Piste', « Page View »);
},3000);

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.