Les fichiers sont protégés en lecture, écriture ou exécution pour des raisons de sécurité. Pour avoir accès à un fichier, il faut en avoir les droits. La commande chmod
permet de changer les droits d'accès à un fichier. Les droits peuvent être de lecture (r), d'écriture (w) ou d'exécution (x). On ajoute un droit à l'aide du signe ``+'' et on en retire à l'aide du signe ``-'', pour l'utilisateur (u), le groupe (g) ou les autres (o). Ainsi, la commande :
chmod +x fichier
rends exécutable un fichier (comme un script, par exemple), et
chmod ug+x fichier
rends exécutable un fichier pour l'utilisateur et tout le groupe. Les droits s'affichent avec la commande ls -l
pour l'utilisateur, le groupe et les autres.
Une autre facon de faire est d'attribuer un chiffre correspondant aux droits recherchés comme suit :
Ainsi :
rwxr-xr-x
équivaut à 400+200+100=700 pour l'utilisateur, 40+10=50 pour le groupe et 4+1=5 pour les autres, soit au total 700+50+5=755 :
chmod 755 fichier
Pour attribuer les droits d'accès par défaut, il faut exécuter la commande umask
et attribuer un numéro particulier. Ce numéro est obtenu en soustreyant le chiffre 7 à chaque chiffre du numéro de droit d'accès. Ainsi, pour attribuer par défaut la valeur 750 (tous les droits pour l'utilisateur, droits de lecture et d'exécution pour le groupe et aucun pour les autres), il faut fournir à la commande umask
la valeur 027 (7-7=0, 7-5=2 et 7-0=7) :
umask 027
Cette ligne pourra figurer dans le fichier d'initialisation .bashrc
pour que ces droits soient pris en compte à chaque session.
Pour définir des droits d'accès étendus (qui permettent à un utilisateur d'effectuer une opération sur des fichiers lui appartenant, comme modifier son mot de passe par exemple), utiliser l'option +s ou rajouter les valeurs 4000 pour l'utilisateur et 2000 pour le groupe. Pour le groupe :
chmod 2755
et pour l'utilisateur :
chmod 4755
Tout utilisateur peut copier des fichiers dans le répertoire /tmp/
. Pour que ces fichiers ne puissent pas être effacés par un autre utilisateur que celui qui les a copiés et root, il faut positionner le Sticky Bit (en tant que root, bien sûr) :
chmod u+t /tmp
ou
chmod 1777 /tmp