gid , uid, ont été abordés dans l'article sur le montage des partitions, où umask a déjà été abordé.
Cette commande umask sera aussi traitée dans ce présent article.
EDIT 2022/16/10 http://blog-libre.org/wp-content/uploads/2013/07/acl_permissions_sur_fichiers.pdf n'est malheureusement plus disponible…et wayback dit No URL has been captured for this URL prefix. http://blog-libre.org/wp-content/uploads/
Petit exemple : Soit un utilisateur r51 ayant ses fichiers dans /home/r51/.
Tous ses fichiers appartiennent à l'utilisateur r51 et au groupe r51 et sont en permission 750.
Ses fichiers ne seront donc accessibles que par lui même et par les membres du groupe r51.
Pour qu'un autre utilisateur ait accès aux fichiers de r51, il faudra donc que cet autre utilisateur appartienne au groupe r51.
sudo chown utilisateur:utilisateur /media/stock
Si le propriétaire du dossier /media/stock était root, il sera dorénavant l' utilisateur loggué sur ce compte utilisateur au moment de la modification.
Ajouter la commande -R = récursivité sur le contenu du dossier indiqué en premier.
Convention: utilisateur sera util. C'est le compte courant sous lequel on a démarré la session.
Le dossier Images appartient déjà à l'utilisateur courant, mais par un curieux hasard ( qui n'en est pas un, puisqu'il s'est agit d'une opération de récupération en liveCD qui se fait en mode root, et tout ce qui est sauvé appartient à root, même si à l' origine, il était à “util”), il s'avère que ses sous-dossiers et les fichiers qu'il contient appartiennent à root.
Il faudra donc modifier le propriétaire de tous les contenus de ce dossier, donc de façon récursive:
Attention à la syntaxe ! [slash][point] —> /. Il n'y a pas de slash devant Images, car nous utilisons le chemin relatif (nous sommes dans le répertoire utilisateur et Images est un de ses sous-dossiers directs !)
Notons plusieurs points :
http://doc.ubuntu-fr.org/permissions#graphiquement1 nous dit : “Attention, cette fonctionnalité subit le Bug #371025 et ce depuis 2006 (si si), elle touche sur la modification récursive de fichiers d'un répertoire (dont vous éditez les permissions) . Si vous vous y connaissez ! L'utilisation de dolphin (KDE) permet de résoudre le problème sous ubuntu.”
Voir pour mémoire l'article commandes_de_base_et_syntaxe_Icaunux, la toute fin sur la copie de répertoire..Commande non présente dans les tutos de la do Ubuntu …
Leur signification sera traitée plus bas.
u user = utilisateur g = group = groupe o = other = autres
r read = lire w write = écrire x =execute = exécuter
La suite de caractères “rwx” donne donc tous les droits sur un fichier ou un dossier.
Les permissions maximales sont donc rwxrwxrwx, ou 777 en octal. Pourquoi trois répéter trois fois rwx car on vise les user, group et other. En ce cas, ce fichier, (ou dossier ou programme) sera accessible à tout le monde.
chmod [espace] [u ou g ou o] + rwx [espace] TEST
chmod u+rwx TEST : ajoute les permissions rwx à user pour le fichier ou le dossier TEST
chmod g+rwx TEST : ajoute les permissions rwx au groupe pour le fichier ou le dossier TEST
chmod o+rwx TEST : ajoute les permissions rwx à other pour le fichier ou le dossier TEST
Vous pouvez changer les permissions d'un dossier et de tout ses sous-répertoires en ajoutant l'option -R :
chmod -R o+r dir/
Dans cet exemple, o = autres, r (lire) dir (le nom de répertoire) suivi sans espace d'un /
Par la propriété d'un fichier, on désigne à quel utilisateur appartient le fichier, qui le possède. À partir de cette possession (ou non), il sera ensuite possible de définir des permissions d'accès sur le fichier. La possession d'un fichier se définit sur trois catégories :
Les droits sont affichés par une série de 9 caractères,associés 3 par 3 (rwx rwx rwx) définissent les droits des 3 identités (u,g et o). Voyons ci-dessous les permissions.
umask (user file creation mode mask, masque de création de fichier par l'utilisateur) est un attribut des processus Unix, ainsi que la commande POSIX qui permet de modifier cet attribut. Le umask définit les permissions par défaut d'un répertoire ou d'un fichier créé.
Les permissions se définissent sur trois niveaux d'actions.
r comme readable, lisible en anglais.
la lecture r : on peut par exemple lire le fichier avec un logiciel. Lorsque ce droit est alloué à un répertoire, il autorise l'affichage du contenu du répertoire (la liste des fichiers présents à la racine de ce répertoire).
w comme writable, que l'on peut écrire, modifier.
Le droit d' écriture permet de modifier ou de supprimer le fichier.
Lorsque ce droit est alloué à un répertoire, il autorise la création, la suppression et le changement de nom des fichiers qu'il contient, quels que soient les droits d'accès des fichiers de ce répertoire (même s'ils ne possèdent pas eux-mêmes le droit en écriture).
Néanmoins le droit spécial sticky bit permet de passer outre ce comportement.
Ce droit (traduction bit collant) est utilisé pour manier de façon plus subtile les droits d'écriture d'un répertoire. En effet, le droit d'écriture signifie que l'on peut créer et supprimer les fichiers de ce répertoire.
Le sticky bit wikipedia_Sticky_Bit permet de faire la différence entre les deux droits.
x comme la seconde lettre du mot executable, exécutable. On peut exécuter le fichier s'il est prévu pour, c'est-à-dire si c'est un fichier exécutable. Lorsque ce droit est attribué à un répertoire, il autorise l'accès (ou ouverture) au répertoire.
Chaque fichier est pourvu de droits (rwx) pour chacun des utilisateurs (u (utilisateur), g (groupe), o (other= les autres). Nous avons ainsi une série de neuf caractères. (rw-)(r–)(r–), mais il est plus simple en ligne de commande d'entrer une valeur numérique pour modifier cet umask.
En octal, chaque « groupement » de droits (pour user, group et other) sera représenté par un chiffre et à chaque droit correspond une valeur :
r = 4 w = 2 x = 1 - = 0 Par exemple, Pour rwx, on aura : 4+2+1 = 7 Pour rw-, on aura : 4+2+0 = 6 Pour r--, on aura : 4+0+0 = 4
Selon wikipedia, l' umask le plus courant vaut 0022. Il vaut (rw-)(r–)(r–), c'est-à-dire que le propriétaire du fichier a des droits en lecture et en écriture, tandis que les membres du groupe et les autres ne disposent que de la permission de lecture.Ces permissions sont restrictives comparées au fonctionnement par défaut d'ubuntu, qui accorde les permissions (rwx)(r-x)(r-x)
Les droits des fichiers d'un dossier peuvent être affichés par la commande
ls -l
Le format des droits d'accès est une liste de 10 symboles :
(d)(rwx)(r-x)(r-x)
Le premier symbole est soit « - », « l », soit « d », indiquant si le fichier en question est effectivement un fichier, est un lien ou est un dossier.
Il existe des permissions d'accès spéciales. Elles ne peuvent être attribués que par le propriétaire du fichier (ou par root).
Leurs valeurs octales sont 1000, 2000 et 4000. Les bits setuid et setgid sont ce qu'on appelle les permissions étendues
Ils permettent de “donner temporairement à un utilisateur” les droits qui sont normalement ceux du propriétaire du fichier.
Il faut utiliser la commande chmod u+s (ou chmod 4xxx). Un programme exécutant un tel fichier/dossier peut alors s'exécuter sous le nom d'un autre utilisateur. Par exemple, si un fichier appartenant à root est setuidé, tout utilisateur exécutant ce fichier peut effectuer ses tâches avec les permissions associés à root.
Il faut utiliser la commande chmod g+s (ou chmod 2xxx). C'est le même principe que setgid, mais appliqué au groupe.
Il faut utiliser la commande chmod u+t (ou chmod 1xxx). Pour les dossiers : lorsque ce droit est positionné, il empêche la suppression des fichiers du dossier à tout utilisateur n'étant pas le propriétaire du fichier. Cependant, un utilisateur ayant le droit d'écrire dans le fichier pourra toujours le modifier (et donc, le vider complètement s'il le veut !). Pour les fichiers : le positionnement de ce droit indique que le fichier devra rester en mémoire même après son exécution. Le but était d'éviter de charger/décharger trop souvent les fichiers souvent utilisés et d'améliorer ainsi les performances.
On peut différencier les droits des fichiers et ceux des dossiers.
Les dossiers devront être +x ( sinon on ne peut cliquer pour les ouvrir), mais pas les fichiers.
chmod gère cela : les lettres r w x en minuscules indiquent des fichiers, et les lettres R W X en majuscule indiquent des dossiers.
chmod -R o-x+X dir/
Dans ce cas, on accorde à tout le monde le droit d'ouvrir le dossier “dir” et son contenu (/), sauf le droit d'exécuter les fichiers (pour les exécutables).