Autorisations

Sous Unix, chaque fichier dispose de certaines autorisations telles que la lecture, l’écriture et l’exécution. Un utilisateur peut manipuler les permissions d’un fichier en utilisant la commande ‘chmod’.

Sous UNIX, trois autorisations sont utilisées pour accorder un certain niveau d’accès à un fichier ou à un dossier.

Pour les fichiers :

  • Lire : Autoriser l’utilisateur/le groupe/d’autres personnes à lire un fichier.
  • Ecrire : Autoriser l’utilisateur/le groupe/d’autres personnes à modifier un fichier.
  • Exécuter : Autoriser l’utilisateur/le groupe/d’autres personnes à exécuter (ou exécuter) un fichier.

Celles-ci sont légèrement modifiées pour les répertoires :

  • Lire : permet à l’utilisateur/au groupe/aux autres de lister les noms de fichiers dans un répertoire.
  • Ecrire : Autoriser l’utilisateur/le groupe/d’autres personnes à créer, supprimer et renommer des fichiers dans un répertoire.
  • Exécuter : Autoriser l’utilisateur/le groupe/d’autres personnes à accéder aux métadonnées et au contenu des fichiers d’un répertoire.

Ces autorisations peuvent être représentées à l’aide des lettres « r » pour lire, « w » pour écrire et « x » pour exécuter. Ils peuvent aussi être représentés numériquement : 4 pour lire, 2 pour écrire et 1 pour exécuter.

Modifier les autorisations d’un fichier

> chmod 644 example.txt
> ls -l example.txt
-rw-r--r--  1 owner ogroup 57 Jul  3 10:13  example.txt

La commande ci-dessus modifie les autorisations de fichier pour permettre au propriétaire du fichier de lire et d’écrire dans un fichier. Il permet également aux utilisateurs du groupe du propriétaire et aux autres utilisateurs du système de lire le fichier.

Comprendre les autorisations

Disons qu’il y a un fichier que nous aimerions exécuter, un script bash nommé add.sh, par exemple. Cependant, taper ./add.sh génère une erreur d’autorisation. Obtenir les autorisations est un processus simple.

Pour déterminer les permissions d’un fichier, tapez :

ls -l filename, ou, dans notre cas, ls -l ./add.sh

Cela imprime ce qui suit sur la console :

-r--r--r-- 1 nom d'utilisateur nom de groupe 0 4 janvier 12:00 add.sh

Arrêtons-nous et comprenons ce que cela signifie. Il existe trois types différents d’autorisations : propriétaire, groupe, autres. Des autorisations distinctes s’appliquent à chaque type d’autorisation.

Il existe également trois actions d’autorisation, qui décrivent également plus largement ce qu’un utilisateur peut faire exactement sur un fichier. Ce sont : (lire : r, écrire : w, exécuter : x).

Alors, revenez à cette chaîne de tirets et de r. Chaque groupe d’autorisations a trois capacités potentielles. Les groupes sont listés dans l’ordre propriétaire-groupe-autres et les actions comme lecture-écriture-exécution.

Mais attendez, cela signifie qu’il y a un caractère supplémentaire au début de la chaîne. Il s’agit en fait du caractère descriptif du fichier. Nous pouvons voir qu’il y a un ‘-’ ici, mais d’autres caractères existent pour des choses comme les répertoires ‘(d)’, les sockets ‘(s)’, le lien symbolique ‘(l)’ etc.

Cela nous laisse essentiellement ces informations : `un fichier où le propriétaire, le groupe et d’autres ont des autorisations de lecture. Aucune autre autorisation accordée.

Modifions cela pour permettre au propriétaire d’écrire et d’exécuter également le fichier. Remarque : Selon les autorisations, il peut être nécessaire d’ajouter “sudo” à cette commande.

chmod 744 add.sh
ls -l add.sh

Imprime

-rwxr--r-- 1 username groupname 0 Month time add.sh

Maintenant, le propriétaire du fichier peut exécuter le fichier en tapant

./add.sh

Calcul CHMOD

Calcul CHMOD

CHMOD est binaire. _ / _ _ _ / _ _ _ / _ _ _ = _/4+2+1/4+2+1/4+2+1 = 777 = _/rwx/rwx/rwx = 777 Donc _rwx = _/4+2+1 = 7

D / _ _ _ / _ _ _ / _ _ _ (‘D’ = répertoire, une autre utilisation est L = Lien)

Donc par ex. _rwxr_xr_x = _/rwx/rx/r_x = 755

CHOWN

Pour changer own:group, vous utilisez la commande chown user:group

par exemple. chown owner:group ou si le propriétaire et le groupe sont identiques, vous pouvez utiliser chown owner: (car linus suppose que owner:group sont identiques).