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 fichiers
root
)-R
(récursif) permet d'agir sur l'ensemble des sous-répertoires.chown -R stage4 /home/stage1
chgrp [-R] nv-groupe fichiers
root
ou le propriétaire, à condition que celui-ci soit membre du nouveau groupe.chgrp -R stage4 /home/stage1
chown nv-user.nv-groupe fichiers
chown 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--
umask
umask
de fixer les permissions masquées, autrement dit les droits non accordés aux fichiers et répertoires lors de leur création.
027
777 = 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
/tmp
ls -l / ........ drwxrwxrwt root root tmp/