Newer
Older
cours-unix-shell / src / commandes / droits.md

Gestion des droits

ll (alias de ls -alF)

Cette commande permet d'obtenir la description complète d'un répertoire, y compris les fichiers et répertoires cachés (qui commencent par un point) :

ll

L'affichage résultant se lit ligne par ligne, par exemple :

drwxrwxr-x  3 houdry   dps   1024 Apr 28 15:28 ./
drwxr-xr-x 16 houdry   dps    512 Apr 18 16:19 ../
-rw-rw-r--  1 parmentf dilib 2848 Apr 25 11:08 Make.gif
-rw-rw-r--  1 parmentf dilib 2631 Apr 25 11:08 Shell.gif
-rw-rw-r--  1 houdry   dps   7817 Apr 25 11:44 redirPipes.html
-rw-rw-r--  1 parmentf dilib 2405 Apr 24 17:36 make.html
-rwxrwxr--  1 houdry   dps    235 Apr 24 17:01 exotp.sh*

De nombreux éléments d'information sont visibles avec une commande de listing long. Ils sont au nombre de sept, avec dans l'ordre des colonnes :

  • la liste des droits sur 10 positions (ex.: drwxrwxrwx)

    • position 1 : le type d'entrée, fichier ou répertoire
    • positions 2-4 : les droits de l'utilisateur (user)
    • positions 5-7 : les droits du groupe de l'utilisateur
    • positions 8-10: les droits des autres groupes| | | | --- | :------------------------------------------- | | d | entrée répertoire | | - | entrée fichier | | r | lecture autorisée | | w | écriture autorisée (et écrasement) | | x | fichier exécutable ou répertoire parcourable |
  • la taille en blocs de l'entrée (peu utile pour nous)

  • le nom du propriétaire (user unix)
  • le groupe du propriétaire attaché à l'entrée
  • la taille de l'entrée en octets
  • les date et heure de la création ou de la dernière mise à jour
  • le nom du répertoire ou du fichier

💡 l'option -h vous donnera la taille de l'entrée dans un format plus... humain.

who, whoami, id

Un utilisateur unix est identifié par deux choses :

  1. son code utilisateur (ex.: parmentf ou houdry)
  2. son ou ses groupes (ex.: dps)

Différentes commandes permettent de retrouver ces informations.

Identification de l'utilisateur courant :

whoami

Identification des utilisateurs du système :

who

Affichage des code et groupe de l'utilisateur :

id

chmod

Cette commande permet de modifier les droits d'un fichier ou d'un répertoire.
Pour pouvoir le faire, il faut en être propriétaire.

Il y a deux façons d'utiliser cette commande : avec les groupes ugoa et les droits rwx ou bien avec un profil octal.

Les droits des 3 entités propriétaire (u), groupe du propriétaire (g) et autres groupes (o) doivent être précisés :

  • a=rx pour mettre les droits r et x seulement, pour tous les groupes (a=ugo, all)
  • ug+w pour ajouter le droit w aux groupes u et g seulement
  • 775 est un masque en octal, équivalent de a=rx,ug+w - voir tableau qui suit

Le tableau suivant résume les cas possibles :

lettres binaire octal
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7

Par exemple, pour positionner les droits d'un fichier File à rwxr-xr-- :

chmod 754 [File]
chmod u=rwx,g=rx,o=r [File]

Pour modifier des droits positionnés à r--r----x en rwxrw-r--, on peut aussi écrire :

chmod ug+w,u+x,a+r,o-x [File]

chgrp

Cette commande permet de changer le groupe attaché à un fichier ou à un répertoire.
Par exemple, un fichier File est lié au groupe dps et il faut le changer pour le lier au groupe veille (attention, il faut que le user appartienne aux deux groupes) :

chgrp veille [File]

newgrp

Cette commande permet de changer le groupe d'appartenance de l'utilisateur.
Cela peut être nécessaire pour accéder à des fichiers dont l'emploi est limité à certains groupes (par ex., veille par rapport à dps).
Pour changer de groupe, il faut appartenir aux deux (l'ancien et le nouveau).

À partir du moment où cette commande est lancée, les fichiers et répertoires créés le seront sous ce nouveau groupe.

newgrp veille