Utilisateurs et droits

Droits sur les fichiers

Les utilisateurs et les groupes ont des droits sur les fichiers. Pour s’en convaincre, regardez le résultat d’un ls -la .ls-la

Chaque fichier, chaque dossier possède des droits. Les droits attribués à un fichiers sont une suite de « drapeaux », que l’on peut lire dans la première colonne. Les drapeaux sont au nombre de trois : le drapeau « r« , de « force » 4, le drapeau « w« , de « force » 2, et le drapeau « x« , de « force » 1. Nous verrons l’usage de ces forces plus loin. Ces trois drapeaux peuvent apparaître 3x dans la liste des droits. Devant ces drapeaux, il existe un drapeau spécial, « d« , signifiant que le fichier est en fait un répertoire.

  • d : dossier
  • l : lien (prend la place de d)
  • r : droits de lecture (read). On peut lire le contenu du fichier.
  • w : droits d’écriture (write). on peut modifier le contenu du fichier.
  • x : droits d’exécution (execute); le « x » va prendre deux significations. S’il y a un d, le x va donner l’autorisation de traverser le dossier, donc on pourra voir les sous-dossiers avec un droit de lecture. Sinon, le x indiquera que l’on peut exécuter le fichier (qui sera dans ce cas un script ou un programme).

Si une lettre apparaît, le droit y afférant est attribué.,

chown

La commande chown (change owner) permet de changer le propriétaire d’un fichier. Seul root peut modifier le propriétaire. Cette commande attend au moins deux paramètres : le nom du nouveau propriétaire et le nom du fichier à modifier : sudo chown rudy chapDroits.txt va donc transférer la propriété du fichier chapDroits à Rudy.

chgrp

De la même manière, chgrp (change group) permet de changer le groupe propriétaire d’un fichier. Il s’utilise de la même manière que chown : sudo chgrp profs chapDroits.txt

On peut aussi changer de groupe via chown ! Regardez le manuel !

Permissions

Plus haut, j’ai dit que les triplets rwx peuvent apparaître 3x. Chaque triplet va afficher des droits différents. Le premier triplet recense les droits du propriétaire du fichier,  le second recense les droits du groupe propriétaire du fichier, et le dernier recense les droits des autres utilisateurs et groupes. Nous pouvons changer ces permissions avec la commande chmod (change mode)

chmod absolu, ou numérique

La version la plus utilisée, mais la plus dangereuse selon moi, est la version absolue de chmod. Nous allons définir les droits d’accès d’un fichier en donnant une suite de chiffres calculés savamment.

Souvenez-vous, j’ai dit plus haut que les permissions étaient divisées en triplets, et que chaque permission avait une force différente :

Droit Chiffre
r 4
w 2
x 1

En fonction des droits que l’on souhaite activer, nous allons additionner, pour chaque triplet (user, group, other), les différentes forces.

Par exemple, pour mettre le droit lecture, écriture, exécution au propriétaire, lecture et exécution au groupe, et rien aux autres, nous aurons le code suivant : 4+2+1,4+1,0 soit le code 750.

Ainsi, pour changer les droits du fichier chapDroits.txt selon les permissions ci-dessus, nous devrions taper la commande : sudo chmod 750 chapDroits.txt.

Je n’apprécie pas beaucoup cette commande. On voit souvent dans les forums Linux « tapez sudo chmod 777 pour régler les problèmes de permission ». Pourquoi cette commande est dangereuse ?

chmod relatif, ou avec des lettres

Oui, c’est plus long à taper que chmod 777. Mais, au moins, avec ce mode, déjà on ne doit plus calculer les poids, mais en plus on peut ajouter ou retirer des permissions à tout ou partie des ayant droits ! Il faut pour cela connaitre quelques sigles :

  • u signifie user;
  • g signifie group;
  • o signifie others;
  • a signifie all.

Mais aussi :

  • + pour ajouter un droit;
  • – pour le retirer;
  • = pour l’affecter (et remplacer les anciens).

Sachant tout cela, la commande sudo chmod 750 chapDroits.txt  ci-dessus peut s’écrire sudo chmod u=rwx,g=rx,,o-rx chapDroits.txt . Plus long, certes, mais plus compréhensible.

Print Friendly, PDF & Email