De façon générale, ces permissions sont consultables complètement par la commande : ls -l
Rappel : ll est un alias plus court, pour la commande ls -l
Par exemple :
[stagex@p0x stagex] ll *.html
-rw-r--r-- 1 stagex stagex 1200
oct 19 12 : 39 amoi.html
Description globale
On trouve de gauche à droite
La section u fixe les droits accordés
au propriétaire du fichier.
La section g fixe les droits accordés
aux utilisateurs faisant partie du groupe auquel appartient le fichier.
La section o fixe les droits des autres
utilisateurs.
/etc/rc.d/rc.sysinit possède
les droits rwx r-x r-x/etc/fstab : rw-r--r-- peut être lue par tous,
modifiée uniquement par rootstat /etc/passwd
r : lire le contenu, la liste des fichiers ( avec ls ou dir)w : modifier le contenu : droits de créer et de supprimer des fichiers dans le répertoire (avec cp, mv, rm)x : permet d'accéder aux fichiers du répertoire et de s'y déplacer (avec cd).Si on attribue w, il faut attribuer aussi x sur le répertoire.
Exemples :
cd / puis ls -l, pour lister les répertoires situés à la racine.
/root et /tmp
Attention !
on voit que le droit w est très étendu, et même dangereux quand il est accordé à un groupe, car un membre du groupe peut supprimer des fichiers dont il n'est pas propriétaire et sur lesquels il n'a même pas de droit d'écriture !
Remarque
Le droit x sur un répertoire est un préalable indispensable pour qu'un utilisateur (de la catégorie correspondante au positionnement du x), puisse exercer d'éventuels droits sur les fichiers contenus dans le répertoire.
chown [-R] nv-user fichiersroot)-R (récursif) permet d'agir sur l'ensemble des sous-répertoires.chown -R stage4 /home/stage1
chgrp [-R] nv-groupe fichiersroot ou le propriétaire, à condition que celui-ci soit membre du nouveau groupe.chgrp -R stage4 /home/stage1
chown nv-user.nv-groupe fichierschown new-user.fichiers
chmod (change mode, change le "mode" des fichiers) peut s'écrire de plusieurs façons équivalentes, sur le modèle :chmod droits fichiers
Ajout, retrait ou fixation des permissions
Pour chaque fichier, on désigne par :
u, g et o les 3 catégories d'utilisateurs (user, group, other) et de plus par a (=all) tous les utilisateurs.
r,w,x les 3 attributs de chaque fichier, pour chaque catégorie d'utilisateur.
+ - = l'action d'ajouter, de retirer ou de fixer un droit, qui s'applique à chaque catégorie séparément.
chmod ug+w fichier "ajouter le droit d'exécution au propriétaire et au groupe"chmod go-rwx fichier "enlever tous droits d'accès à tous les utilisateurs, sauf au propriétaire"
Notation relative (aux droits existants)
chmod [-R] <action-droits> fichiers
toto.
Notation absolue
-rwxrw-r---rwxr--??? en ne changeant pas les permissions précédentes du groupe other
-rwxr-----
/etc/shadow est inaccessible même en lecture aux utilisateurs
--------- ou 400 en octal, seul le propriétaire root peut lire
chmod u-r /etc/shadow /etc/shadow
root, sans nécessité !)
[stagex@p00 stagex]$ cp ./bashrc ./bashrc1 [stagex@p00 stagex]$ chmod ugo= ./bashrc1 aucune permission sur le fichier ! [stagex@p00 stagex]$ cat ./bashrc1 bien sûr il est totalement protégé en lecture [root@p00 stagex]# cat ./bashrc1 mais pas pour root !
Voici la table de correspondance entre les 8 chiffres en numérotation
octale (base 8) et les 8 valeurs de droits fichiers.
Par convention la présence d'un droit est noté 1, l'absence
0.
Binaire ----- Droit ----- Octal
000 -------- (---) ------- 0
001 -------- (--x) ------- 1
010 -------- (-w-) ------- 2
011 -------- (-wx) ------- 3
100 -------- (r--) ------- 4
101 -------- (r-x) ------- 5
110 -------- (rw-) ------- 6
111 -------- (rwx) ------- 7
Synthèse : notation globale pour les 3 catégories
| propriétaire | groupe | autre | ||||||
|---|---|---|---|---|---|---|---|---|
| lecture | écriture | exécution | lecture | écriture | exécution | lecture | écriture | exécution |
| 400 | 200 | 100 | 40 | 20 | 10 | 4 | 2 | 1 |
Pour obtenir les permissions exprimées en octal, il suffit d'ajouter en octal les nombres de la table de correspondance ci-dessus, pour lesquels les droits sont positionnés.
Exemples
chmod 700 /home/rep-a-moi droits par défaut pour un rép. personnel.
ls -l /home/rep-a-moi
--> drwx------
Les 2 commandes suivantes sont équivalentes :
chmod 764 test
chmod u=rwx,g=rw,o=r test
ls -l test
-rwxrw-r--
umaskumask de fixer les permissions masquées, autrement dit les droits non accordés aux fichiers et répertoires lors de leur création.
027777 = 111 111 111 permissions maxi = rwx rwx rwx - 027 = 000 010 111 masque de protection = 750 = 111 101 000 permissions effectives = rwx r-x ---
umask
umask affiche le masque de l'utilisateur actifroot et des autres utilisateurs ?
umask -S affiche les permissions correspondantes au masque, sous forme symbolique.
umask masque fixe les permissions ultérieures de création des fichiers de l'utilisateur actif, conformément à masque, en notation octale./etc/profile, on peut modifier la règle habituelle :if [ $UID == 0 ] ; then umask 022 ; else umask 077 ; fi
umask masque dans le fichier de profil personnel $HOME/.bash_profile
x du propriétaire u (mais sans écraser le droit x)4000
/usr/bin/passwd, qui permet de (re)définir un mot de passe et le comparer à ceux du fichier /etc/shadow qui contient les mots de passe cryptés.
Observez : ll /etc/shadow -r-------- root root shadow ll -l /usr/bin/passwd -r-sr-xr-x root bin passwdComme le droit
x est accordé à tous, chacun peut donc exécuter la commande passwd, mais personne ne posséde pas lui-même le droit d'écriture dans le fichier /etc/shadow qui doit le stocker. root lors de la demande d'accès au fichier et comme root a tous les droits, il est alors possible de mettre à jour ce fichier des mots de passe.
cd /usr/bin
# grep filtre les lignes produites par ls en utilisant
# l'expression rationnelle ^...s
ls -l | grep "^...s"
# pour afficher tous les fichiers possédant le SUID
cd /
ls -lR | grep "^...s"
# recherche parmi les fichiers ordinaires ceux qui ont au moins le droit s
find / -type f -perm +4000
SUID, mais transposé aux membres du groupe./usr/bin/lpr
lp a été créé dans /var/spool/lpd . Or la commande lpr écrit dans ce répertoire. Comment un utilisateur quelconque peut-il alors y écrire le fichier d'impression ?
s posé sur un répertoire, met en place un mécanisme d'héritage de groupe, de répertoire conteneur à fichiers contenus.
s, mis à la place du x du groupe, valeur octale 2000
w sur le répertoire, en interdisant à un utilisateur quelconque de supprimer un fichier dont il n'est pas le propriétaire x sur la catégorie other de ce répertoire, mais bien entendu il ne supprime pas le droit d'accès x (s'il est accordé).x n'est pas accordé à la catégorie other, à la place de t c'est la lettre T qui apparaitra.chmod +t rep --> d ... ... ..t rep si le répertoire a le droit x pour tous --> d ... ... ..T rep sinon
/tmpls -l / ........ drwxrwxrwt root root tmp/