-
Notifications
You must be signed in to change notification settings - Fork 16
/
droits_d_acces.txt
153 lines (140 loc) · 9.29 KB
/
droits_d_acces.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
DROITS_D_ACCES
USERS ==> #Un utilisateur est un processus (considerant qu'une
#session utilisateur est un processus) possedant :
# - un nom
# - un identifiant d'utilisateur (User ID ou UID)
# - un identifiant de groupe d'utilisateur (Groupe ID
# ou GID). Can have several: first is primary, others are supplementary.
# - un mot de passe
# - un $HOME
# - un shell par defaut
#Ces entrees sont repertories dans /etc/passwd, bien
#que les mots de passe soient en fait presents dans un
#autre fichier, souvent /etc/shadow, de maniere
#encryptee.
#Tout processus est lié à un utilisateur.
ROOT ==> #L'utilisateur root est l'utilisateur ayant le plus
#haut niveau de privilege, et rien ne lui est
#impossible.
#Root peut faire ce qu'il veut, même sur un fichier
#avec permission 000 dont il n'est pas le proprietaire,
#Exception : au moins l'un de "u", "g" et "o" doit
#avoir le droit d'exécution pour que root puisse
#exécuter un fichier
TYPES D'USERS ==> #Il existe trois groupes d'utilisateurs lies a un
#fichier :
# - L'utilisateur proprietaire (à defaut de
# modification ulterieure : le createur du fichier),
# note "u"
# - Les utilisateurs appartenant au groupe
# proprietaire (a defaut de modification
# ulterieure : le groupe du createur du fichier),
# note "g"
# - Le reste des utilisateurs, note "o"
#Auquel on peut ajouter :
# - tout utilisateur, note "a"
TYPES DE PERMISSION #Il existe trois permissions d'acces a un fichier :
POUR UN FICHIER # - la lecture (read ou r) d'un fichier (donc PROGRAMME
REGULIER ==> # script, où PROGRAMME peut être "bash", "python",
# etc.)
# - la modification (write ou w) de ce fichier
# - l'execution (x) (via ./SCRIPT, que SCRIPT soit
# un binaire, ou un fichier interprété avec un
# shabang.
PERMISSIONS POUR UN #Ces permissions s'appliquent ainsi pour un repertoire :
REPERTOIRE # - la lecture (r) signifie le droit de connaitre le
# nom des fichiers qu'il contient, mais rien
# d'autre. Couplé avec (x), cela implique aussi :
# - droit de connaître le proprietaire, etc.
# - droit de lire le contenu des repertoires
# contenus par le repertoire
# - la modification (w) signifie le droit de créer,
# modifier et supprimer des fichiers dans ce
# repertoire ou le repertoire lui-même.
# - l'execution (X ou x, X ne ciblant donc que les
# répertoires contrairement à x) signifie le droit de
# parcourir le repertoire, mais non d'en connaitre le
# nom des fichiers qu'il contient, qui n'est possible
# que couplé avec (r). Par ailleurs, couplé avec (r),
# permet aussi d'exécuter ou lire les fichiers qu'il
# contient.
#Ces droits ne concerne que le répertoire désigné, et
#non les répertoires qu'il contient de manière
#récursive. Le contenu d'un repertoire n'herite pas ses
#permissions de celui-ci.
#Les droits d'accès lors de la création d'un fichier
#dépendent de l'umask, pas des droits d'accès du
#répertoire dans lequel il se trouve.
PERMISSIONS SPECIALES #Il existe des permissions speciales :
# - le sticky bit est l'interdiction de supprimer (et
# donc de mv) les fichiers que contient un
# repertoire. Le sticky bit est ignore sur les
# fichiers reguliers. Il est par exemple utilise
# sur /tmp. (note t sur un fichier pouvant etre
# execute, T sinon)
# - le setuid : lorsque l'utilisateur a le droit
# d'executer un fichier, il l'execute avec les
# permissions du proprietaire du fichier (note s sur
# un fichier pouvant etre utilise, S sinon). Permet
# par exemple a un utilisateur lambda d'executer une
# operation necessitant des privileges (exemple :
# changement de password). Peut poser des problemes
# de securite (extention illimitee du setuid apres
# une attaque de buffer overrun). Le setuid est
# ignore sur les repertoires.
# - le setgid : comme setuid, mais pour un groupe
# d'utilisateurs. Meme notation mais dans la colonne
# des groupes. Sur un repertoire, la signification
# est differente : les fichiers crees a l'interieur
# du repertoire (et non ceux deja existants)
# heriteront de son GUID (et non de celui du
# createur du fichier) et du setgid.
NOTATION SYMBOLIQUE #Pour attribuer les permissions, il existe deux
==> #notations.
#
#Symbolique :
# - D'abord le ou les utilisateurs concernes (u, g, o,
# a), concaténés.
# - Puis + pour ajouter un droit, - pour le supprimer,
# = pour ajouter les droits specifies, et supprimer
# les droits ignores (a l'exception du setuid et du
# setgid).
# - Enfin les permissions (r, w, x, s, t), concaténées.
#Exemple : ug+rw, soit le proprietaire et le groupe
#proprietaire peuvent lire et modifier le fichier
#Plusieurs permissions symobliques doivent être
#séparées par une virgule sans espace. Exemple : u=rwx,
#g=rw,o=rw
#Si u, g ou o est omis, la valeur actuelle est
#substituée
NOTATION OCTALE ==> #Octale :
#Un chiffre pour chaque utilisateurs : u, puis g, puis
#o. Le chiffre represente les permissions sous la forme
#de l'addition de ces valeurs :
# - Read : 4
# - Write : 2
# - Executer : 1
#Exemple : 664, soit tout le monde peut lire le
#fichier, et seul le proprietaire et le groupe
#proprietaire peuvent le modifier
#Un quatrieme chiffre pour etre present au debut pour
#specifie sur le meme mode (sinon 0 par défaut).
# - Setuid : 4
# - Setgid : 2
# - Sticky bit : 1
LIRE LES DROITS #Il est possible d'imprimer les droits d'acces d'un
D'ACCES ==> #fichier avec :
# - ls -l
# - stat
# - find -printf "%M" et "%m"
TESTER LES DROITS #Il est possible de tester les droits d'accès avec :
D'ACCES ==> # - avec les tests -r, -w, -x, -u, -g et -k en bash
# - avec find -perm, -executable, -writable, -readable
ECRIRE LES DROITS #Il est possible de modifier les droits d'acces avec :
D'ACCES ==> # - chmod
CREER UN FICHIER AVEC #Utiliser :
CERTAINS DROITS # - umask
D'ACCES ==> # - mkfifo -m
# - mkdir -m