Implement table of content.
[hacks/simpleWebSlides.git] / prog_internet / prog_internet_01.xhtml
1 <?xml version="1.0" encoding="utf-8" ?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3           "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
4 >
5 <html xmlns="http://www.w3.org/1999/xhtml" >
6   <head>
7     <title>Systèmes d'exploitation (1/2)</title>
8
9     <meta http-equiv="Content-Type"
10           content="text/html; charset=utf-8" />
11     <meta name="copyright"
12           content="Copyright &#169; 2013 Kim Nguyễn" />
13
14     <!-- Load jQuery -->
15     <script src="../jquery-1.9.1.min.js" type="text/javascript" ></script>
16     <!-- Load the library -->
17     <script src="../simpleWebSlides.js" type="text/javascript" ></script>
18
19     <link rel="stylesheet" href="../simpleWebSlides.css" type="text/css"  media="all" />
20     <!-- Load a custom Theme, the class-element marks this style-sheet
21       a "theme" that can be swtiched dynamicaly -->
22     <link class="sws-theme" rel="stylesheet"  title="U-Psud style"  href="../themes/uPsud.css" type="text/css" />
23
24     <!-- Customize some templates and initialize -->
25
26     <script type="text/javascript">
27       SWS.Config['sws-slide-change'] = SWS.Effects.slideChangeFadeOutIn;
28       SWS.Config['sws-object-deactivate'] =  SWS.Effects.objectDeactivateFadeOut;
29       SWS.Config['sws-object-activate'] = SWS.Effects.objectActivateFadeIn;
30
31       //Ensures that we load SWS at the very end, after MathJax has
32       //been initialized
33
34       $(window).load(SWS.Presentation.init);
35     </script>
36
37   </head>
38   <body>
39
40     <div class="sws-slide sws-cover sws-option-nofooter">
41       <h1>Programmation Internet</h1>
42       <h1>Cours 1</h1>
43       <a href="mailto:kn@lri.fr">kn@lri.fr</a>
44     </div>
45
46     <div class="sws-slide" >
47       <h1>Contenu du cours</h1>
48       <ol >
49         <li > Comprendre les bases du Web
50           <ul>
51             <li>Fonctionnement des ordinateusr Unix (cours 1 et 2) </li>
52             <li>Notions de réseau (cours 3 et 4) </li>
53           </ul>
54         </li>
55         <li class="sws-pause" style="padding:20pt 0;" > Programmer (pour) le Web
56         <ul>
57           <li>Pages statiques (HTML &amp; CSS cours 5)</li>
58           <li>Pages dynamiques avec PHP (cours 6, 7 et 8)</li>
59           <li>Notions de sécurité des sites Web (cours 9)</li>
60           <li>Bonus (cours 10)</li>
61         </ul>
62         </li>
63
64       </ol>
65
66     </div>
67     <div class="sws-slide" >
68       <h1>Modalités de Contrôle des Connaissances (MCC)</h1>
69       <p>2 sessions:</p>
70       <ul >
71         <li > 1<sup>ère</sup> session
72           <ul>
73             <li> Contrôle continu (50%):
74             <ul>
75               <li> Partiel (fin octobre/début novembre) 25% </li>
76               <li> 1 interro de TD (12,5 %) </li>
77               <li> 1 interro de TP (12,5 %) </li>
78             </ul>
79             </li>
80             <li> Examen (50%) </li>
81           </ul>
82         </li>
83         <li class="sws-pause" >
84           2<sup>ème</sup> session (examen 100%)</li>
85       </ul>
86       <p class="sws-pause" ><b>Rappel:</b>
87         <i>La défaillance fait obstacle au calcul de la moyenne
88           et implique l'ajournement.
89           La présence de l'étudiant étant obligatoire en TP [...], plus
90           d'une absence injustiée dans un enseignement peut entraîner
91           la défaillance de l'étudiant dans l'enseignement concerné
92         </i>
93       </p>
94     </div>
95
96     <div class="sws-slide" >
97       <h1>Organisation</h1>
98       <ul>
99         <li> 10 semaines de cours :
100           <ul>
101             <li> 16/9, 23/9, 30/9, 7/10, 14/10, 21/11 (cours
102             uniquement, ni TD, ni TP) </li>
103             <li> partiel entre le 22-25/11 </li>
104             <li> congés du 28-1/11</li>
105             <li> 4/11, 11/11 (TD/TP uniquement, pas de cours) 18/11, 25/11, 2/11, 9/11</li>
106           </ul>
107         </li>
108         <li> examen début Janvier</li>
109         <li> cours tous les lundi (15h30) </li>
110         <li> TD le mardi (3 groupes) </li>
111         <li> TP le mecrecredi/jeudi </li>
112       </ul>
113     </div>
114     <div class="sws-slide" >
115       <h1> Plan </h1>
116       <ol >
117         <li> Systèmes d'exploitation
118           <ul class="empty">
119             <li class="hl">1.1 Principes des systèmes
120             d'exploitation</li>
121             <li>1.2 Système de gestion de fichiers</li>
122             <li>1.3 Système de gestion de processus</li>
123             </ul>
124         </li>
125       </ol>
126     </div>
127
128     <div class="sws-slide">
129       <h1> Système d'exploitation </h1>
130       <p>Quelques systèmes:</p>
131       <ul>
132         <li>Windows XP/NT/2003/7/8, …</li>
133         <li>Linux, FreeBSD, NetBSD, OpenBSD, …</li>
134         <li>MacOS X (basé sur une variante de FreeBSD), …</li>
135         <li>Unix, AIX, Solaris, HP-UX, …</li>
136         <li>Symbian OS (Nokia), iOS, Android, …</li>
137       </ul>
138     </div>
139
140     <div class="sws-slide">
141       <h1> Système d'exploitation </h1>
142       <p>Qu'est-ce qu'un système d'exploitation ?</p>
143       <ul>
144         <li class="sws-pause" >c'est un <em>programme</em></li>
145         <li class="sws-pause" > qui <em>organise</em> l'accès aux <em>ressources</em> de la machine</li>
146       </ul>
147       <p class="sws-pause"> Quelles sont les ressources d'une machine?</p>
148       <ul>
149         <li>Processeur (temps d'exécution)</li>
150         <li>Mémoire</li>
151         <li>Accès aux périphériques de stockage</li>
152         <li>Accès aux périphériques d'entrées/sorties</li>
153         <li>…</li>
154       </ul>
155     </div>
156     <div class="sws-slide">
157       <h1> Système d'exploitation </h1>
158       <br/>
159       <div style="display:inline-block;vertical-align:middle;width:19%;text-align:center;">
160         Haut niveau<br/>
161       <span style="font-size:6cm;">↓</span><br/>
162       Bas niveau
163       </div>
164       <div style="display:inline-block; width:80%;vertical-align:middle;">
165         <ul class="empty">
166           <li><em>Applications</em>: navigateur Web, éditeur de
167           texte, anti-virus, jeu, compilateur, …</li>
168           <li style="margin-top:2em;" ><em><b>Système d'exploitation</b></em>:
169             <ul>
170               <li>Gestion des ressources</li>
171               <li>Interface avec le matériel (pilotes)</li>
172             </ul>
173           </li>
174           <li style="margin-top:2em;"><em>Matériel</em>: CPU, mémoire, périphériques, …</li>
175         </ul>
176       </div>
177     </div>
178     <div class="sws-slide centerbox">
179       <h1>Le système Unix</h1>
180       <table class="desc">
181         <tr><td>1965</td> <td>MultICS: <i>Multiplexed Information and Computing Service</i> (Bell &amp; MIT) </td>
182         </tr>
183         <tr><td>1969</td> <td>Unix: 1<sup>ère</sup> version en
184         assembleur (AT&amp;T)</td>
185         </tr>
186         <tr><td style="width:4em;">1972-73</td><td> Unix réécrit en C</td></tr>
187         <tr><td>1976</td><td> Invention de TCP/IP</td></tr>
188         <tr><td>1977</td><td> <i>Berkeley Software Distribution</i>
189         (BSD)</td></tr>
190         <tr><td>1985</td><td>Unix System V</td></tr>
191         <tr><td>1988</td><td>Minix</td></tr>
192         <tr><td>1992</td><td>Linux</td></tr>
193       </table>
194     </div>
195     <div class="sws-slide">
196       <div class="centerbox">
197       <h1>Unix : architecture</h1>
198       <table style="position:relative;left:5%;width:90%;" class="rounded">
199         <tr><td colspan="2" style="background:#ddf;width:100%;">
200             Applications
201             </td>
202         </tr>
203         <tr><td style="width:50%;background:#bbf;">
204             Interface utilisateur
205           </td>
206           <td style="width:50%;background:#bbf;">
207             Services
208           </td>
209         </tr>
210         <tr><td colspan="2" style="width:100%;background:#99f;color:white;">
211             Noyau (<i>kernel</i>)
212             </td>
213         </tr>
214         <tr><td style="border-style:none;"/> <td style="background:#88f;color:white;">
215             Micro-code
216           </td>
217         </tr>
218         <tr><td colspan="2" style="width:100%;background:#77f;color:white;">
219             Matériel
220             </td>
221         </tr>
222       </table>
223       </div>
224     </div>
225     <div class="sws-slide">
226       <h1>Zoom sur le noyau</h1>
227       <table style="position:relative;left:5%;width:90%;" class="rounded">
228         <tr> <td style="background:#ddf;width:20%;">
229             Applications
230             </td>
231         </tr>
232         <tr><td style="width:20%; border-style:none;" />
233           <td style="width:80%;background:#ddf;">
234             Bibliothèques
235             (<code>libc</code>, <code>DirectX</code>, <code>OpenGL</code>, …)
236           </td>
237         </tr>
238       </table>
239       <hr style="border-bottom: dashed 1pt #696968; width: 90%;border-top:none;" />
240       <table  style="position:relative;left:5%;width:90%;"
241               class="rounded sws-pause">
242         <tr><td  style="width:100%;background:#f99;color:white;">
243             Appels systèmes
244             </td>
245         </tr>
246         <tr> <td style="background:#f66;color:white;">
247             Noyau <br/>
248             <div style="font-size:smaller">
249             pilotes de périphériques <span style="display:inline-block;width:4em"> </span>
250             ordonnanceur (gestion du temps CPU)<br/>
251             gestionnaire de mémoire <span style="display:inline-block;width:4em"> </span>
252             système de fichier<br/>
253             </div>
254           </td>
255         </tr>
256         <tr><td  style="width:100%;background:#f33;color:white;">
257             Matériel
258             </td>
259         </tr>
260       </table>
261     </div>
262     <div class="sws-slide">
263       <h1>Le <i>Shell</i> Unix</h1>
264       <ul>
265         <li>Interface utilisateur <em>en mode texte</em><br/>
266         L'utilisateur écrit des commandes dont le résultat est
267           affiché à l'écran</li>
268         <li>Interface « historique » sous Unix</li>
269         <li>Expose à l'utilisateur certains concepts Unix
270         (pesmissions, propriétaires, processus, …)</li>
271         <li>(Utilisé dans la première partie du cours)</li>
272       </ul>
273     </div>
274     <div class="sws-slide">
275       <h1>Le <i>Shell</i> Unix</h1>
276       <p>Exemple de session <i>shell</i>:</p>
277       <div>
278         <code>
279           $ ls
280           <span style="color:blue">Documents   Downloads   Public    Person</span>
281           $ cd Documents
282           $ ls
283           <span style="color:blue">compte_rendu.txt</span>
284           $ mv compte_rendu.txt cr.txt
285           $ ls
286           <span style="color:blue">cr.txt</span>
287         </code>
288       </div>
289     </div>
290
291     <div class="sws-slide" >
292       <h1> Plan </h1>
293       <ol >
294         <li> Systèmes d'exploitation
295           <ul class="empty">
296             <li >1.1 Principes des systèmes
297             d'exploitation</li>
298             <li class="hl">1.2 Système de gestion de fichiers</li>
299             <li>1.3 Système de gestion de processus</li>
300             </ul>
301         </li>
302       </ol>
303     </div>
304     <div class="sws-slide">
305       <h1>Système de gestion de fichiers (<i>filesystem</i>)</h1>
306       <ul>
307         <li> <em>Organise</em> les données sur le support
308         physique </li>
309         <li>Protège contre les <em>corruptions de données</em> </li>
310         <li>Gestion optimale de l'espace disponible</li>
311         <li><em>Accès efficace</em> aux données</li>
312         <li><em>Abstraction</em> du support physique (DVD, mémoire
313         flash, disque réseau, …)</li>
314         <li>Enregistrement des <em>méta-données</em> (date de
315         création, propriétaire, taille, …)</li>
316       </ul>
317     </div>
318     <div class="sws-slide">
319       <h1>Le concept de <em>fichier</em></h1>
320       <p>
321         Un fichier est une <em>collection d'infromations
322         numériques</em> réunies sous un même <em>nom</em> et
323         enregistrée sur un support de stockage
324       </p>
325       <ul>
326         <li>Manipulable comme une unité</li>
327         <li>Selon les systèmes, le <em>nom</em> a plus ou moins
328         d'importance</li>
329         <li>possède un type</li>
330       </ul>
331     </div>
332     <div class="sws-slide">
333       <h1>Le concept de <em>fichier</em></h1>
334       <p>Ne pas confondre:</p>
335       <ul>
336         <li>type du fichier: il influe sur le comportement du système
337         (fichier « normal », répertoire, lien (raccourcis), fichier
338         système, …). C'est une méta-donnée conservée par le système
339         de fichier</li>
340         <li>type du contenu: le type des <em>données</em> contenues
341         dans le fichier:
342           <ul>
343             <li>DOS puis Windows: l'extension (les 3 derniers
344             caractères après le « . ») détermine le type de contenu
345             </li>
346             <li>MacOS puis OS X/iOS: les premiers octets du fichier
347             déterminent son type
348             </li>
349             <li>Premiers octets ou extension, selon les interfaces
350             utilisées</li>
351           </ul>
352         </li>
353       </ul>
354     </div>
355     <div class="sws-slide">
356       <h1>Les attributs d'un fichier</h1>
357       <table class="desc">
358         <tr>
359           <td><em>Nom</em></td> <td/>
360         </tr>
361         <tr>
362           <td><em>Propriétaire</em></td>
363           <td>utilisateur qui possède ce fichier</td>
364         </tr>
365         <tr>
366           <td><em>Groupe</em></td>
367           <td>groupe d'utilisateurs qui possède ce fichier</td>
368         </tr>
369         <tr>
370           <td><em>Emplacement</em></td>
371           <td>localisation du fichier sur le support physique</td>
372         </tr>
373         <tr>
374           <td><em>Taille</em></td>
375           <td>en octet (peut être la taille réelle ou la taille
376         occupée sur le support)</td>
377         </tr>
378         <tr>
379           <td><em>Permissions</em></td>
380           <td> « qui a quel droit » sur le fichier (lecture, écriture,
381           exécution, …)
382           </td>
383         </tr>
384         <tr>
385           <td><em>Type</em></td>
386           <td/>
387         </tr>
388         <tr>
389           <td><em>Dates</em></td>
390           <td>dernier accès, dernière modification, création, …</td>
391         </tr>
392       </table>
393     </div>
394 <div class="sws-slide">
395 <h1>Organisation logique des fichiers</h1>
396 <p> Usuellement, les fichiers sont regroupés en <em>répertoires</em>. Les
397 répertoires sont imbriqués les uns dans les autres de manière a former
398 une <em>arborescence</em>.
399 </p>
400 <p>
401   <em>Sous Unix</em> il y a un répertoire racine, « <em>/</em> »
402 (<i>slash</i>) qui contient toute l'arborescence du système.<br/>
403 Chaque utilisateur possède aussi un répertoire personnel
404 </p>
405 </div>
406
407 <div class="sws-slide">
408 <h1>Noms de fichiers et chemins</h1>
409 <p>
410 Un chemin est une <em>liste de répertoire</em> à traverser pour
411 atteindre un fichier ou répertoire donné.
412 Sous Unix, le séparateur de chemin est le « <em>/</em> » <br/>
413 <em>Les chemins absolus </em> commencent par un <code>/</code> et
414            dénotent des fichiers à partir de la racine. Exemple:
415            <code>
416              /home/kim/Documents/ProgInternet/cours01.pdf
417            </code>
418 <br/>
419 <em>Les chemins relatifs</em> dénotent des fichiers à partir du
420   répertoire courant. Exemple:<br/>
421 <code>
422            Documents/ProgInternet/cours01.pdf
423 </code>
424 si on se trouve dans le répertoire <code>/home/kim</code>
425 <br/>
426 <em>Les noms spéciaux</em>: « . » dénote le répertoire
427     courant,
428   « .. » le répertoire parent, « ~ » le répertoire de
429   l'utilisateur et « ~<code>toto</code> » le répertoire de l'utilisateur
430     <code>toto</code>
431 </p>
432 </div>
433
434 <div class="sws-slide">
435   <h1>Utilisation du <i>Shell</i></h1>
436   <p>
437     Le <em>shell</em> affiche un <em>invite de commande</em>
438     (<i>prompt</i>). Exemple:<br/>
439     <code>kim@machine $ <span class="sws-pause" /></code><br/><br/>
440     <span>On peut alors saisir une commande:</span><br/><br/>
441     <code>   kim@machine $ ls *.txt<span class="sws-pause"/></code><br/><br/>
442     <span>Le shell affiche la <em>sortie</em> de la commande:</span><br/><br/>
443     <code>   fichier1.txt   fichier2.txt</code><br/><br/>
444     <span>Certains caractères doivent être précédés d'un « \ » (échappés):</span><br/><br/>
445     <code>   kim@machine $ ls mon\ fichier\#1.txt</code>
446   </p>
447 </div>
448 <div class="sws-slide">
449 <h1>La ligne de commande</h1>
450 <p>
451   Une ligne de commande a la forme:<br/>
452   <code>prog item1 item2 item3 item4 … </code>
453 </p>
454   <ol>
455   <li class="sws-pause"> Si <tt>prog</tt> est un chemin il doit
456     dénoter <em>un fichier exécutable </em>
457   </li>
458   <li class="sws-pause"> Si <tt>prog</tt> est un simple nom, il doit dénoter un fichier
459     exécutable se trouvant dans un des <em>répertoires prédéfinis</em>
460     (<tt>/bin</tt>, <tt>/usr/bin</tt>, …)
461   </li>
462   <li class="sws-pause"> Pour chaque <tt>item<sub>i</sub></tt> (séparés par un ou plusieurs espaces
463     non échappés) le <i>shell</i> fait une <em>expansion de nom</em>
464   </li>
465   <li class="sws-pause"> La liste de toutes les chaînes de caractères expansées est
466     passée comme argument au programme <tt>prog</tt>
467   </li>
468   </ol>
469 </div>
470 <div class="sws-slide">
471 <h1>Expansion des noms<br/>Expressions régulières glob</h1>
472 <p>
473   Certains caractères sont <em>interprétés</em> de manière spéciale par le
474   <i>shell</i>. Ces caractères sont « expansés » selon des
475   règles. Si la forme <em>expansée</em> correspond a un ou plusieurs fichiers
476   existants, alors leurs noms sont placés sur la ligne de commande. Sinon
477   la chaîne de caractère de départ garde sa valeur textuelle.
478 </p>
479 </div>
480 <div class="sws-slide">
481   <h1>Expressions régulières glob</h1>
482   <p>Règles d'expansion:
483   <tt><em>*</em></tt> n'importe quelle chaîne<br/>
484    <tt><em>?</em></tt> n'importe quel caractère
485    <tt><em>[ab12…]</em></tt> un caractère dans la liste <br/>
486    <tt><em>[^ab12…]</em></tt> un caractère absent de liste<br/>
487    <tt><em>[a-z]</em></tt> un caractère dans l'intervalle<br/>
488    <tt><em>[^a-z]</em></tt> un caractère absent de l'intervalle<br/>
489    <tt><em>{m<sub>1</sub>, m<sub>2</sub>}</em></tt>
490   motif <tt>m<sub>1</sub></tt> ou <tt>m<sub>2</sub></tt> <br/>
491   <tt><em>?(m<sub>1</sub>|…|m<sub>n</sub>)</em></tt>
492   <span style="display:inline-block;width:2em" />
493   <tt><em>@(m<sub>1</sub>|…|m<sub>n</sub>)</em></tt>
494   <span style="display:inline-block;width:2em" />
495   <tt><em>*(m<sub>1</sub>|…|m<sub>n</sub>)</em></tt>
496   <span style="display:inline-block;width:2em" />
497   <tt><em>+(m<sub>1</sub>|…|m<sub>n</sub>)</em></tt><br/>
498   <i>k</i> motifs parmi <tt>m<sub>i</sub></tt> <br/>
499   <tt><em>?</em></tt>: <tt>0 ≤ <i>k</i> ≤ 1</tt>
500   <span style="display:inline-block;width:2em" />
501   <tt><em>@</em></tt>: <tt><i>k</i> = 1</tt>
502   <span style="display:inline-block;width:2em" />
503   <tt><em>*</em></tt>: <tt><i>k</i> ≥ 0</tt>
504   <span style="display:inline-block;width:2em" />
505   <tt><em>+</em></tt>: <tt><i>k</i> ≥ 1</tt>
506   <br/>
507   <tt><em>!(m<sub>1</sub>|…|m<sub>n</sub>)</em></tt>:
508   ni <tt>m<sub>1</sub></tt>, …, ni <tt>m<sub>n</sub></tt>
509 </p>
510 </div>
511 <div class="sws-slide">
512 <h1>Expressions régulières glob<br/>Exemples</h1>
513 <p><tt><em>ls  !(*[aeiouy]?)</em></tt> <span class="sws-pause">
514   La chaine « <tt>!(*[aeiouy]?)</tt> » est remplacée par la liste de tous
515   les fichiers dont l'avant dernière lettre du nom n'est pas une
516   voyelle. S'il n'y a pas de tel fichier, la chaîne
517   « <tt>!(*[aeiouy]?)</tt> » est passée à la commande <tt>ls</tt>.</span><br/><br/>
518   <span>
519   <tt><em>ls [0-9]*</em></tt> affiche la liste des fichiers commençant par un
520   chiffre<br/><br/>
521   <tt><em>ls +(abc)</em></tt> affiche la liste des fichiers dont le nom est une
522   répétition de «&nbsp;abc&nbsp;».
523 </span>
524 </p>
525 </div>
526 <div class="sws-slide">
527 <h1>Commandes shell de base</h1>
528 <ul class="empty">
529 <li><em>cd </em><i>chemin</i>: <i>chemin</i> devient le
530   répertoire courant. Si absent, utilise le répertoire personnel
531 </li>
532 <li><em>ls</em> <i>chemin<sub>1</sub></i> … <i>chemin<sub>n</sub></i>:
533   affiche le nom des <i>n</i> fichiers. Si <i>n=0</i> affiche le contenu du
534   répertoire courant. Avec l'option <tt><em>-l</em></tt> affiche la liste
535   détaillée.
536 </li>
537 <li><em>cp</em> <i>chemin<sub>1</sub></i>  <i>chemin<sub>2</sub></i>:
538 copie de fichier
539 </li>
540 <li><em>mv</em> <i>chemin<sub>1</sub></i>  <i>chemin<sub>2</sub></i>:
541   déplacement
542   de fichier (et renommage)
543 </li>
544 <li><em>rm</em> <i>chemin<sub>1</sub></i> … <i>chemin<sub>n</sub></i>:
545   supprime les fichiers (définitif)
546 </li>
547 </ul>
548 </div>
549 <div class="sws-slide">
550 <h1>Droits et propriétés des fichiers</h1>
551 <p>
552 Sous Unix un utilisateur est identifié par son <em>login</em> (ou nom
553 d'utilisateur). Chaque utilisateur est dans  un <em>groupe
554   principal</em>.<br/>
555 Chaque fichier appartient à un utilisateur et à un groupe.<br/>
556 Chaque fichier possède 3 permissions pour son propriétaire, son groupe
557 et tous les autres. Les permissions sont lecture, écriture, exécution
558 (plus d'autres non abordées dans ce cours).<br/>
559 <table >
560   <tr><th style="width:20%">Permission</th> <th  style="width:40%">fichier</th> <th style="width:40%">répertoire</th> </tr>
561   <tr><td><em>lecture</em> (r)</td> <td>lire le contenu du
562   fichier</td>
563     <td >lister le contenu du répertoire</td></tr>
564   
565   <tr><td style="vertical-align:top;"><em>écriture</em> (w)</td> <td style="vertical-align:top;">écrire dans le fichier</td>
566     <td style="vertical-align:top;">supprimer/renommer/créer des
567     fichiers dans le répertoire</td></tr>
568   <tr><td style="vertical-align:top;"><em>exécution</em>
569   (x)</td> <td style="vertical-align:top;">exécuter le fichier
570   (si<br/>
571
572   c'est un programme)</td>
573     <td style="vertical-align:top;">rentrer dans le répertoire
574   </td></tr>
575 </table>
576 <code>$ ls -l
577 drwxr-x---  9 kim prof 4096 Sep  7 21:31 Documents</code>
578 </p>
579 </div>
580 <div class="sws-slide">
581 <h1>La commande <em>chmod</em></h1>
582 <code>
583    chmod <i>permissions</i> <i>chemin<sub>1</sub></i> … <i>chemin<sub>n</sub></i>
584 </code>
585 <p> modifie les permissions des fichiers <i>1</i> à <i>n</i>. La chaîne
586 <i><tt>permissions</tt></i> est soit une suite de modifications de
587 permissions <em>symbolique</em> soit l'ensemble des permissions données
588 de manière <em>numérique</em>: <br/>
589 <code>
590     chmod 755 fichier.txt
591     chmod u-w,a+x,g=w fichier.txt
592 </code>
593 </p>
594 </div>
595 <div class="sws-slide">
596 <h1>Permissions numériques</h1>
597 <p>
598 On groupe les <em>bits</em> de permissions par trois puis on convertit
599 en décimal:<br/>
600 <table style="width:100%;text-align:center;" class="btable">
601 <tr> <th colspan="3" style="width:33%"> Utilisateur </th>
602   <th colspan="3" style="width:33%">
603     Groupe</th>
604   <th colspan="3" style="width:33%">Autres</th>
605 </tr>
606 <tr>
607   <td>r</td>   <td>w</td>    <td>x</td>   <td>r</td>   <td>w</td>    <td>x</td>   <td>r</td>   <td>w</td>    <td>x</td> 
608 </tr>
609 <tr>
610   <td>1</td>   <td>1</td>    <td>0</td>   <td>1</td>   <td>0</td>    <td>0</td>   <td>0</td>   <td>0</td>    <td>0</td> 
611 </tr>
612 <tr>
613 <td colspan="3"> 6 </td> <td colspan="3">
614     4</td><td colspan="3">0</td>
615 </tr>
616 </table>
617 Le fichier est lisible et modifiable mais pas exécutable par son
618 propriétaire, lisible pour le groupe. Les autres ne peuvent ni le lire
619 ni le modifier.</p>
620 </div>
621 <div class="sws-slide">
622 <h1>Permissions symboliques</h1>
623 <code>
624        cible modifieur permission
625 </code>
626 <ul class="empty">
627   <li> <em>cible</em> : u (utilisateur), g (groupe), o (others), a
628   (all)
629   </li>
630
631   <li> <em>modifieur</em> : + (autorise), - (interdit), = (laisse
632   inchangé)
633   </li>
634
635   <li><em>permission</em> : r (lecture), w (écriture), x (exécution)</li>
636 </ul>
637 <p>
638 Exemple:<br/>
639 <code>   chmod u+rw,u-x,g+r,g-wx,o-rwx fichier.txt </code>
640 </p>
641 </div>
642   </body>
643 </html>