13 choses les plus importantes à savoir
Agence web » Actualités du digital » 13 choses les plus importantes à savoir

13 choses les plus importantes à savoir

Les autorisations de fichiers sont au cœur de presque tout ce que vous faites sur votre machine Linux, de la visualisation d'un PDF à l'enregistrement d'une image et à l'exécution d'une application. Le modèle de base permet aux choses simples, mais il y a pas mal de détails de base pour commencer.

Les autorisations contrôlent ce que vous pouvez faire avec un fichier

La plupart du temps, vous gérez les autorisations, ce sera lorsque vous essaierez d'enregistrer ou de lire un fichier. Chaque fichier (techniquement, chaque inode) a un ensemble d'autorisations qui y sont attachées. Ceux-ci déterminent si vous (ou tout autre utilisateur) pouvez lire à partir d'un fichier ou y écrire.

Si vous n'avez pas la permission de lire un fichier, vous verrez une erreur lorsque vous essayez de l'ouvrir. De même, un fichier sans autorisation d'écriture entraînera des erreurs si vous essayez de l'enregistrer:

Les autorisations sont disponibles en trois sets de trois

Les autorisations ont deux parties: une action et un ensemble d'utilisateurs. Les trois actions – lire, écrire et exécuter – définissent ce qui peut être fait dans un fichier, tandis que les ensembles d'utilisateurs définissent qui peut le faire.

Chaque fichier de votre système a un propriétaire et un groupe. Cela signifie que vous pouvez avoir l'une des trois relations avec un fichier: vous êtes son propriétaire, vous êtes membre de son groupe ou aucune de ce qui précède.

Ainsi, en ce qui concerne les autorisations, il y a trois ensembles de trois et toute combinaison est possible. Votre dossier peut être lisible par tout le monde, écrivable par personne sauf le propriétaire, exécutable par les membres du groupe, etc.

Leurs étiquettes peuvent être cryptiques

Vous verrez souvent des autorisations indiquées comme une chaîne de 9 caractères, comme ceci:

        rwxr-x

Il s'agit d'une abréviation qui montre l'état des trois autorisations pour chaque ensemble d'utilisateurs auxquels ils s'appliquent. Il comprend, de gauche à droite, la lecture, l'écriture et l'exécution de l'état de l'utilisateur, du groupe et d'autres, respectivement. Une lettre signifie que l'autorisation est définie. Un trait d'union signifie que l'autorisation n'est pas définie.

Il est important de se rappeler que «O» signifie «autre», pas le propriétaire. C'est facile à oublier; Essayez de vous rappeler que «u» doit signifier «l'utilisateur», puis la signification de «O» est plus facile à déduire par élimination.

La rupture de la chaîne d'autorisation ci-dessus dans ses ensembles individuels donne:

        user: rwx
group: r-x
other:

Cela signifie que le propriétaire du fichier a un contrôle complet, les autres membres du groupe du fichier peuvent le lire et l'exécuter, tandis que tous les autres utilisateurs ne peuvent que l'exécuter.

Vous pouvez les voir avec la commande LS

Le moyen le plus simple d'afficher les autorisations de fichiers sur la ligne de commande est d'utiliser LS, la commande pour répertorier les fichiers. Par défaut, LS affichera uniquement les noms de fichiers, mais l'option -l affiche des fichiers en format long, qui comprend les détails de l'autorisation:

Vous devriez être en mesure de repérer la chaîne de caractères d'autorisations dès le début; Ce sont les neuf lettres entre les principaux «D / -» et le «@» traînant au début de chaque ligne.

Vous pouvez également utiliser la commande stat pour afficher les autorisations de fichiers

Bien que LS soit le moyen le plus simple de voir les autorisations, STAT est probablement le meilleur. La commande STAT est comme une version de niveau inférieur de LS, celle qui vous montre plus de données. C'est aussi un peu plus flexible, vous pouvez donc adapter la sortie comme vous l'aimez.

Voici une commande qui vous montre le nom et la chaîne d'autorisations:

        stat -c '%n %A' filename

Les versions incompatibles de STAT sont utilisées entre les systèmes. La commande ci-dessus fonctionne sur Ubuntu, mais sur macOS, l'équivalent est Stat -f '% n% sp' nom de fichier. Assurez-vous de consulter la page de l'homme de votre statistique pour vérifier les options qu'elle prend en charge.

Vous pouvez modifier les autorisations avec la commande chmod

CHMOD signifie «Modifier le mode» et c'est votre clé pour mettre à jour les autorisations de fichier. En raison de tous les différents paramètres, ChMOD peut sembler un peu intimidant, mais la bonne nouvelle est qu'il prend en charge …

Voici un exemple simple:

        chmod a+r myfile

Cette commande ajoute l'autorisation de lecture pour tous les utilisateurs au fichier, MyFile. Dans l'argument «A + R», le «A» représente «tous les utilisateurs» et est un raccourci pour «UGO» (utilisateur, groupe, autre). Vous pouvez utiliser n'importe quelle combinaison de ces trois lettres. Ensuite, le symbole «+» signifie «Add». Les autres options sont «-» pour supprimer une autorisation, ou «=» pour définir exactement l'autorisation. Enfin, le «R» dans cet exemple signifie «Read»; Il pourrait s'agir de n'importe quelle combinaison de «R», «W», pour écrire et «x», pour exécuter.

Vous pouvez même définir plusieurs autorisations à la fois:

        chmod u=rw,og=r new_file.txt

Cette commande permet au propriétaire de lire et d'écrire un fichier, tandis que tout le monde ne peut le lire que. Personne ne peut l'exécuter.

Vous devez garder à l'esprit que vous ne pouvez utiliser CHMOD que pour modifier les fichiers que vous possédez (sauf si vous avez des privilèges racine).

Il vaut la peine d'apprendre les bases de ChMOD et de commettre quelques cas courants en mémoire. Mais la commande est puissante et vous pouvez utiliser ChMOD de différentes manières.

Vous pouvez les utiliser pour rendre les programmes qui coulent

Nous avons mentionné l'autorisation d'exécution sans l'expliquer vraiment. Cette autorisation contrôle vraiment si vous pouvez exécuter un fichier en tant que commande. En règle générale, vous utiliserez cette autorisation avec deux types de fichiers: les binaires et les scripts shell. Les binaires sont des programmes compilés qui sont gérés par le noyau, tandis que les scripts sont exécutés par un interprète, comme un shell ou une langue de script.

Vous devez noter que la suppression du bit d'exécution n'empêche pas quelqu'un d'exécuter un programme. Bien qu'ils ne pourront pas l'exécuter en tapant directement le nom de son fichier en tant que commande, il sera toujours exécuté en passant le fichier en entrée à son interprète. Pour cette raison, vous devriez considérer le bit d'exécution comme plus d'un filet de sécurité qu'un cadenas. Il est là pour empêcher les gens de gérer accidentellement un programme, pas pour leur rendre impossible de le faire.

Les autorisations sont un filet de sécurité, pas une garantie

En fait, le bit EXECUTE n'est pas la seule autorisation qui n'est pas une garantie aussi ferme que vous pouvez vous y attendre. Vous devriez vraiment considérer les autorisations davantage comme un ensemble de garde-corps que comme un harnais de sécurité rigoureux.

Prenez le cas simple d'un fichier en lecture seule: pouvez-vous toujours le supprimer?

        touch foo
chmod a-w foo
rm foo

La commande RM vous permet toujours de supprimer un fichier, même si vous ne pouvez pas y écrire! Cela semble contre-intuitif, mais c'est vraiment juste un effet secondaire du fonctionnement des autorisations. Si vous possédez un fichier, vous pouvez toujours utiliser CHMOD pour obtenir l'accès que vous souhaitez. Il est donc logique que des outils comme RM vous donnent la possibilité de remplacer les autorisations de fichiers dans ce cas spécial.

Encore une fois, les autorisations de fichiers sont de vous empêcher de faire accidentellement la mauvaise chose. Ils sont là pour vous empêcher de ne pas faire face à un document important, et non pour vous assurer que le document reste sur votre disque jusqu'à la fin des temps.

Ils ont une signification différente pour les répertoires

Étant donné que Linux traite les répertoires comme un autre type de fichier, ils peuvent également avoir des autorisations. Cependant, en raison de leur nature, les autorisations sur les répertoires ont une signification légèrement différente.

L'autorisation de lecture vous permet de lire le contenu d'un répertoire, c'est-à-dire la liste des fichiers qu'il contient. Cela signifie, par exemple, que vous ne pouvez pas exécuter LS sur un répertoire que vous ne pouvez pas lire:

L'autorisation d'écriture vous permet d'écrire le contenu d'un répertoire. Par exemple, cela contrôle si vous pouvez créer un nouveau fichier dans un répertoire, ou en renommer un à l'intérieur:

L'autorisation d'exécution est totalement différente; Il n'y a vraiment aucune analogie qui a du sens pour l'exécution d'un répertoire! Ainsi, Linux surcharge cette autorisation pour que les répertoires signifient quelque chose comme «Accédez au répertoire».

La plupart des navigateurs de fichiers graphiques vous permettent également de les gérer

L'application de fichiers d'Ubuntu, comme de nombreux navigateurs de fichiers GUI, vous permet d'afficher les autorisations pour un fichier donné via son menu contextuel de propriétés:

Les autorisations et l'état d'exécution sont affichés au bas de cette boîte de dialogue. Vous pouvez cliquer sur la ligne des autorisations pour afficher les détails complets de l'autorisation et mettre à jour l'état de lecture / écriture pour tout ensemble d'utilisateurs:

Finder de MacOS affiche les autorisations dans la boîte de dialogue Get Info pour n'importe quel fichier:

Les autorisations s'affichent pour l'utilisateur, le groupe et autres en lignes de haut en bas. Notez que Finder ne vous permet pas de modifier l'autorisation d'exécution.

★★★★★