aboutsummaryrefslogtreecommitdiff
path: root/ru_RU.KOI8-R/books/developers-handbook/secure/chapter.sgml
blob: 8f8b8fe181991819ff2e00439ec59dfa44f6a643 (plain) (blame)
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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
<?xml version="1.0" encoding="KOI8-R" standalone="no"?>
<!--
     The FreeBSD Russian Documentation Project

     $FreeBSD$
     $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/developers-handbook/secure/chapter.sgml,v 1.4 2005/07/11 11:54:33 gad Exp $

     Original revision: r24438
-->

    <chapter id="secure">
      <chapterinfo>
       <authorgroup>
         <author>
           <firstname>Murray</firstname>
           <surname>Stokely</surname>
           <contrib>íÁÔÅÒÉÁÌ ÐÒÅÄÏÓÔÁ×ÉÌ: </contrib>
         </author>
       </authorgroup>
      </chapterinfo>

    <title>âÅÚÏÐÁÓÎÏÅ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÅ</title>

    <sect1 id="secure-synopsis">
    <title>ïÂÚÏÒ</title>

    <para>üÔÁ ÇÌÁ×Á ÏÐÉÓÙ×ÁÅÔ ÎÅËÏÔÏÒÙÅ ÉÚ ÐÒÏÂÌÅÍ ÏÂÅÓÐÅÞÅÎÉÑ ÂÅÚÏÐÁÓÎÏÓÔÉ,
      ËÏÔÏÒÙÅ ÄÅÓÑÔÉÌÅÔÉÑÍÉ ÐÒÅÓÌÅÄÏ×ÁÌÉ ÐÒÏÇÒÁÍÍÉÓÔÏ× &unix;, Á ÔÁËÖÅ
      ÎÅÓËÏÌØËÏ ÎÏ×ÙÈ ÄÏÓÔÕÐÎÙÈ ÉÎÓÔÒÕÍÅÎÔÏ×, ÐÏÍÏÇÁÀÝÉÈ ÐÒÏÇÒÁÍÍÉÓÔÁÍ
      ÉÚÂÅÖÁÔØ ÎÁÐÉÓÁÎÉÑ ÎÅÂÅÚÏÐÁÓÎÏÇÏ ËÏÄÁ.</para>
  </sect1>

  <sect1 id="secure-philosophy">
    <title>íÅÔÏÄÏÌÏÇÉÑ ÏÂÅÓÐÅÞÅÎÉÑ ÂÅÚÏÐÁÓÎÏÓÔÉ</title>

    <para>îÁÐÉÓÁÎÉÅ ÂÅÚÏÐÁÓÎÙÈ ÐÒÉÌÏÖÅÎÉÊ ÔÒÅÂÕÅÔ ×ÅÓØÍÁ ËÒÉÔÉÞÅÓËÏÇÏ É
      ÐÅÓÓÉÍÉÓÔÉÞÅÓËÏÇÏ ×ÚÇÌÑÄÁ ÎÁ ÖÉÚÎØ.  ðÒÉÌÏÖÅÎÉÑ ÄÏÌÖÎÙ ÒÁÂÏÔÁÔØ ÐÏ
      ÐÒÉÎÃÉÐÕ <quote>ÎÁÉÍÅÎØÛÉÈ ÐÒÉ×ÉÌÅÇÉÊ</quote>, ÐÒÉ ËÏÔÏÒÏÍ ÎÉËÁËÏÊ
      ÐÒÏÃÅÓÓ ÎÅ ÄÏÌÖÅÎ ÒÁÂÏÔÁÔØ Ó ÐÒÉ×ÉÌÅÇÉÑÍÉ, ÐÒÅ×ÙÛÁÀÝÉÍÉ ÍÉÎÉÍÁÌØÎÏ
      ÎÅÏÂÈÏÄÉÍÙÊ ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ Ó×ÏÉÈ ÆÕÎËÃÉÊ ÍÉÎÉÍÕÍ.  òÁÎÅÅ ÐÒÏ×ÅÒÅÎÎÙÊ
      ËÏÄ ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÔÁÍ, ÇÄÅ ÔÏÌØËÏ ÜÔÏ ×ÏÚÍÏÖÎÏ ÄÌÑ ÉÚÂÅÖÁÎÉÑ
      ÏÂÝÉÈ ÏÛÉÂÏË, ËÏÔÏÒÙÅ ÍÏÇÌÉ ÂÙÔØ ÕÖÅ ÉÓÐÒÁ×ÌÅÎÙ ÄÒÕÇÉÍÉ.</para>

    <para>ïÄÎÏÊ ÉÚ ÎÅÐÒÉÑÔÎÏÓÔÅÊ × ÓÒÅÄÅ &unix; Ñ×ÌÑÅÔÓÑ ÌÅÇËÏÓÔØ ×
      ÐÒÅÄÐÏÌÏÖÅÎÉÉ ÂÅÚÏÐÁÓÎÏÓÔÉ ÜÔÏÇÏ ÏËÒÕÖÅÎÉÑ.  ðÒÉÌÏÖÅÎÉÑ ÎÉËÏÇÄÁ ÎÅ
      ÄÏÌÖÎÙ ×ÅÒÉÔØ ÐÏÌØÚÏ×ÁÔÅÌØÓËÏÍÕ ××ÏÄÕ (×Ï ×ÓÅÈ ÅÇÏ ÆÏÒÍÁÈ), ÒÅÓÕÒÓÁÍ
      ÓÉÓÔÅÍÙ, ÍÅÖÐÒÏÃÅÓÓÎÏÍÕ ×ÚÁÉÍÏÄÅÊÓÔ×ÉÀ ÉÌÉ ×ÒÅÍÅÎÉ ×ÙÐÏÌÎÅÎÉÑ ÓÏÂÙÔÉÊ.
      ðÒÏÃÅÓÓÙ &unix; ×ÙÐÏÌÎÑÀÔÓÑ ÎÅ ÓÉÎÈÒÏÎÎÏ, ÔÁË ÞÔÏ ÌÏÇÉÞÅÓËÉÅ ÏÐÅÒÁÃÉÉ
      ÒÅÄËÏ ÂÙ×ÁÀÔ ÁÔÏÍÁÒÎÙÍÉ.</para>
  </sect1>

  <sect1 id="secure-bufferov">
    <title>ðÅÒÅÐÏÌÎÅÎÉÑ ÂÕÆÅÒÁ</title>

    <para>ðÅÒÅÐÏÌÎÅÎÉÑ ÂÕÆÅÒÁ ÐÏÑ×ÉÌÉÓØ ×ÍÅÓÔÅ Ó ÐÏÑ×ÌÅÎÉÅ ÁÒÈÉÔÅËÔÕÒÙ
      æÏÎ-îÅÊÍÁÎÁ <xref linkend="COD">.

      <indexterm><primary>ÐÅÒÅÐÏÌÎÅÎÉÅ ÂÕÆÅÒÁ</primary></indexterm>
      <indexterm><primary>æÏÎ-îÅÊÍÁÎ</primary></indexterm>

      ÷ÐÅÒ×ÙÅ ÛÉÒÏËÕÀ ÉÚ×ÅÓÔÎÏÓÔØ ÏÎÉ ÐÏÌÕÞÉÌÉ × 1988 ÇÏÄÕ ×ÍÅÓÔÅ Ó
      éÎÔÅÒÎÅÔ-ÞÅÒ×ÅÍ íÏÒÒÉÓÁ (Morris).  ë ÓÏÖÁÌÅÎÉÀ, ÔÏÞÎÏ ÔÁËÁÑ ÖÅ ÁÔÁËÁ

      <indexterm><primary>ÉÎÔÅÒÎÅÔ ÞÅÒ×Ø íÏÒÒÉÓÁ</primary></indexterm>

      ÏÓÔÁ£ÔÓÑ ÜÆÆÅËÔÉ×ÎÏÊ É × ÎÁÛÉ ÄÎÉ.  éÚ 17 ÂÀÌÌÅÔÅÎÅÊ ÂÅÚÏÐÁÓÎÏÓÔÉ CERT ÚÁ 1999 ÇÏÄ,

      <indexterm>
        <primary>CERT</primary><secondary>ÂÀÌÌÅÔÅÎÉ ÂÅÚÏÐÁÓÎÏÓÔÉ</secondary>
      </indexterm>

      10 ÂÙÌÉ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏ ×ÙÚ×ÁÎÙ ÏÛÉÂËÁÍ × ÐÒÏÇÒÁÍÍÎÏÍ ÏÂÅÓÐÅÞÅÎÉÉ, Ó×ÑÚÁÎÎÙÍ
      Ó ÐÅÒÅÐÏÌÎÅÎÉÑÍÉ ÂÕÆÅÒÁ.  óÁÍÙÅ ÒÁÓÐÒÏÓÔÒÁÎÅÎÎÙÅ ÔÉÐÙ ÁÔÁË Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ
      ÐÅÒÅÐÏÌÎÅÎÉÑ ÂÕÆÅÒÁ ÏÓÎÏ×ÁÎÙ ÎÁ ÒÁÚÒÕÛÅÎÉÉ ÓÔÅËÁ.</para>

      <indexterm><primary>ÓÔÅË</primary></indexterm>
      <indexterm><primary>ÁÒÇÕÍÅÎÔÙ</primary></indexterm>

    <para>óÁÍÙÅ ÓÏ×ÒÅÍÅÎÎÙÅ ×ÙÞÉÓÌÉÔÅÌØÎÙÅ ÓÉÓÔÅÍÙ ÉÓÐÏÌØÚÕÀÔ ÓÔÅË ÄÌÑ
      ÐÅÒÅÄÁÞÉ ÁÒÇÕÍÅÎÔÏ× ÐÒÏÃÅÄÕÒÁÍ É ÓÏÈÒÁÎÅÎÉÑ ÌÏËÁÌØÎÙÈ ÐÅÒÅÍÅÎÎÙÈ.  óÔÅË
      Ñ×ÌÑÅÔÓÑ ÂÕÆÅÒÏÍ ÔÉÐÁ LIFO (ÐÏÓÌÅÄÎÉÍ ×ÏÛÅÌ ÐÅÒ×ÙÍ ×ÙÛÅÌ) × ×ÅÒÈÎÅÊ
      ÞÁÓÔÉ ÏÂÌÁÓÔÉ ÐÁÍÑÔÉ ÐÒÏÃÅÓÓÁ.  ëÏÇÄÁ ÐÒÏÇÒÁÍÍÁ ×ÙÚÙ×ÁÅÔ ÆÕÎËÃÉÀ,
      ÓÏÚÄÁÅÔÓÑ ÎÏ×ÁÑ "ÇÒÁÎÉÃÁ ÓÔÅËÁ".  üÔÁ ÇÒÁÎÉÃÁ ÓÏÓÔÏÉÔ ÉÚ ÁÒÇÕÍÅÎÔÏ×,

      <indexterm><primary>LIFO</primary></indexterm>
      <indexterm>
        <primary>ÏÂÌÁÓÔØ ÐÒÏÃÅÓÓÁ</primary>
         <secondary>ÕËÁÚÁÔÅÌØ ÓÔÅËÁ</secondary>
      </indexterm>

      ÐÅÒÅÄÁÎÎÙÈ × ÆÕÎËÃÉÀ, Á ÔÁËÖÅ ÄÉÎÁÍÉÞÅÓËÏÇÏ ËÏÌÉÞÅÓÔ×Á ÐÒÏÓÔÒÁÎÓÔ×Á
      ÌÏËÁÌØÎÙÈ ÐÅÒÅÍÅÎÎÙÈ.  "õËÁÚÁÔÅÌØ ÓÔÅËÁ" Ñ×ÌÑÅÔÓÑ ÒÅÇÉÓÔÒÏÍ, ÈÒÁÎÑÝÉÍ

      <indexterm><primary>ÇÒÁÎÉÃÁ ÓÔÅËÁ</primary></indexterm>
      <indexterm><primary>ÕËÁÚÁÔÅÌØ ÓÔÅËÁ</primary></indexterm>

      ÔÅËÕÝÅÅ ÐÏÌÏÖÅÎÉÅ ×ÅÒÛÉÎÙ ÓÔÅËÁ.  ôÁË ËÁË ÜÔÏ ÚÎÁÞÅÎÉÅ ÐÏÓÔÏÑÎÎÏ
      ÍÅÎÑÅÔÓÑ ×ÍÅÓÔÅ Ó ÐÏÍÅÝÅÎÉÅÍ ÎÏ×ÙÈ ÚÎÁÞÅÎÉÊ ÎÁ ×ÅÒÛÉÎÕ ÓÔÅËÁ, ÍÎÏÇÉÅ
      ÒÅÁÌÉÚÁÃÉÉ ÔÁËÖÅ ÐÒÅÄÕÓÍÁÔÒÉ×ÁÀÔ "ÕËÁÚÁÔÅÌØ ÇÒÁÎÉÃÙ", ËÏÔÏÒÙÊ
      ÒÁÓÐÏÌÏÖÅÎ ÏËÏÌÏ ÎÁÞÁÌÁ ÓÔÅËÁ, ÔÁË ÞÔÏ ÌÏËÁÌØÎÙÅ ÐÅÒÅÍÅÎÎÙÅ ÍÏÖÎÏ ÌÅÇËÏ
      ÁÄÒÅÓÏ×ÁÔØ ÏÔÎÏÓÉÔÅÌØÎÏ ÜÔÏÇÏ ÚÎÁÞÅÎÉÑ.  <xref linkend="COD"> áÄÒÅÓ

      <indexterm><primary>ÕËÁÚÁÔÅÌØ ÇÒÁÎÉÃÙ</primary></indexterm>
      <indexterm>
        <primary>ÏÂÌÁÓÔØ ÐÒÏÃÅÓÓÁ</primary>
        <secondary>ÕËÁÚÁÔÅÌØ ÇÒÁÎÉÃÙ</secondary>
      </indexterm>
      <indexterm><primary>×ÏÚ×ÒÁÝÁÅÍÙÊ ÁÄÒÅÓ</primary></indexterm>
      <indexterm><primary>ÐÅÒÅÐÏÌÎÅÎÉÅ ÓÔÅËÁ</primary></indexterm>

      ×ÏÚ×ÒÁÔÁ ÉÚ ÆÕÎËÃÉÉ ÔÁËÖÅ ÓÏÈÒÁÎÑÅÔÓÑ × ÓÔÅËÅ, É ÜÔÏ Ñ×ÌÑÅÔÓÑ ÐÒÉÞÉÎÏÊ
      ÎÁÒÕÛÅÎÉÊ ÂÅÚÏÐÁÓÎÏÓÔÉ, Ó×ÑÚÁÎÎÙÈ Ó ÐÅÒÅÐÏÌÎÅÎÉÅÍ ÓÔÅËÁ, ÔÁË ËÁË
      ÐÅÒÅÚÁÐÉÓÙ×ÁÎÉÅ ÌÏËÁÌØÎÏÊ ÐÅÒÅÍÅÎÎÏÊ × ÆÕÎËÃÉÉ ÍÏÖÅÔ ÉÚÍÅÎÉÔØ ÁÄÒÅÓ
      ×ÏÚ×ÒÁÔÁ ÉÚ ÜÔÏÊ ÆÕÎËÃÉÉ, ÐÏÔÅÎÃÉÁÌØÎÏ ÐÏÚ×ÏÌÑÑ ÚÌÏÕÍÙÛÌÅÎÎÉËÕ
      ×ÙÐÏÌÎÉÔØ ÌÀÂÏÊ ËÏÄ.</para>

    <para>èÏÔÑ ÁÔÁËÉ Ó ÐÅÒÅÐÏÌÎÅÎÉÅÍ ÓÔÅËÁ Ñ×ÌÑÀÔÓÑ ÓÁÍÙÍÉ ÒÁÓÐÒÏÓÔÒÁÎÅÎÎÙÍÉ,
      ÓÔÅË ÍÏÖÎÏ ÔÁËÖÅ ÐÅÒÅÚÁÐÉÓÁÔØ ÐÒÉ ÐÏÍÏÝÉ ÁÔÁËÉ, ÏÓÎÏ×ÁÎÎÏÊ ÎÁ ×ÙÄÅÌÅÎÉÉ
      ÐÁÍÑÔÉ (malloc/free) ÉÚ "ËÕÞÉ".</para>

    <para>ëÁË É ×Ï ÍÎÏÇÉÈ ÄÒÕÇÉÈ ÑÚÙËÁÈ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ, × C ÎÅ ×ÙÐÏÌÎÑÅÔÓÑ
      Á×ÔÏÍÁÔÉÞÅÓËÏÊ ÐÒÏ×ÅÒËÉ ÇÒÁÎÉÃ × ÍÁÓÓÉ×ÁÈ ÉÌÉ ÕËÁÚÁÔÅÌÑÈ.  ëÒÏÍÅ ÔÏÇÏ,
      ÓÔÁÎÄÁÒÔÎÁÑ ÂÉÂÌÉÏÔÅËÁ C ÐÏÌÎÁ ÏÞÅÎØ ÏÐÁÓÎÙÈ ÆÕÎËÃÉÊ.</para>

    <informaltable frame="none" pgwide="1">
      <tgroup cols=2>
      <tbody>
        <row>
          <entry><function>strcpy</function>(char *dest, const char
            *src)</entry>
          <entry><simpara>íÏÖÅÔ ÐÅÒÅÐÏÌÎÉÔØ ÃÅÌÅ×ÏÊ ÂÕÆÅÒ</simpara></entry>
        </row>

        <row>
          <entry><function>strcat</function>(char *dest, const char
            *src)</entry>
        <entry><simpara>íÏÖÅÔ ÐÅÒÅÐÏÌÎÉÔØ ÃÅÌÅ×ÏÊ ÂÕÆÅÒ</simpara></entry>
          </row>

        <row>
          <entry><function>getwd</function>(char *buf)</entry>
          <entry><simpara>íÏÖÅÔ ÐÅÒÅÐÏÌÎÉÔØ ÂÕÆÅÒ buf</simpara></entry>
        </row>

        <row>
          <entry><function>gets</function>(char *s)</entry>
          <entry><simpara>íÏÖÅÔ ÐÅÒÅÐÏÌÎÉÔØ ÂÕÆÅÒ s</simpara></entry>
        </row>

        <row>
          <entry><function>[vf]scanf</function>(const char *format,
            ...)</entry>
          <entry><simpara>íÏÖÅÔ ÐÅÒÅÐÏÌÎÉÔØ Ó×ÏÉ ÁÒÇÕÍÅÎÔÙ.</simpara></entry>
        </row>

        <row>
          <entry><function>realpath</function>(char *path, char
            resolved_path[])</entry>
          <entry><simpara>íÏÖÅÔ ÐÅÒÅÐÏÌÎÉÔØ ÂÕÆÅÒ path</simpara></entry>
        </row>

        <row>
          <entry><function>[v]sprintf</function>(char *str, const char
            *format, ...)</entry>
          <entry><simpara>íÏÖÅÔ ÐÅÒÅÐÏÌÎÉÔØ ÂÕÆÅÒ str.</simpara></entry>
        </row>
      </tbody>
      </tgroup>
    </informaltable>

    <sect2>
      <title>ðÒÉÍÅÒ ÐÅÒÅÐÏÌÎÅÎÉÑ ÂÕÆÅÒÁ</title>

      <para>÷ ÓÌÅÄÕÀÝÅÍ ÐÒÉÍÅÒÅ ËÏÄÁ ÉÍÅÅÔÓÑ ÏÛÉÂËÁ ÐÅÒÅÐÏÌÎÅÎÉÑ ÂÕÆÅÒÁ,
        ÐÒÅÄÎÁÚÎÁÞÅÎÎÁÑ ÄÌÑ ÐÅÒÅÚÁÐÉÓÉ ÁÄÒÅÓÁ ×ÏÚ×ÒÁÔÁ É ÏÂÈÏÄÁ ÉÎÓÔÒÕËÃÉÉ,
        ÓÌÅÄÕÀÝÅÊ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏ ÚÁ ×ÙÚÏ×ÏÍ ÆÕÎËÃÉÉ.  (ðÏ ÍÏÔÉ×ÁÍ <xref
        linkend="Phrack">)</para>

<programlisting>#include <sgmltag>stdio.h</sgmltag>

void manipulate(char *buffer) {
  char newbuffer[80];
  strcpy(newbuffer,buffer);
}

int main() {
  char ch,buffer[4096];
  int i=0;

  while ((buffer[i++] = getchar()) != '\n') {};

  i=1;
  manipulate(buffer);
  i=2;
  printf("The value of i is : %d\n",i);
  return 0;
}</programlisting>

      <para>äÁ×ÁÊÔÅ ÐÏÓÍÏÔÒÉÍ, ËÁË ÂÕÄÅÔ ×ÙÇÌÑÄÅÔØ ÏÂÒÁÚ ÐÒÏÃÅÓÓÁ, ÅÓÌÉ ×
        ÎÁÛÕ ÍÁÌÅÎØËÕÀ ÐÒÏÇÒÁÍÍÕ ÍÙ ××ÅÄÅÍ 160 ÐÒÏÂÅÌÏ×.</para>

      <para>[XXX figure here!]</para>

      <para>ïÞÅ×ÉÄÎÏ, ÞÔÏ ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ ÒÅÁÌØÎÙÈ ÉÎÓÔÒÕËÃÉÊ (ÔÁËÉÈ, ËÁË
        exec(/bin/sh)), ÍÏÖÅÔ ÂÙÔØ ÐÒÉÄÕÍÁÎ ÂÏÌÅÅ ×ÒÅÄÏÎÏÓÎÙÊ ××ÏÄ.</para>
    </sect2>

    <sect2>
      <title>ëÁË ÉÚÂÅÖÁÔØ ÐÅÒÅÐÏÌÎÅÎÉÊ ÂÕÆÅÒÁ</title>

      <para>óÁÍÙÍ ÐÒÑÍÏÌÉÎÅÊÎÙÍ ÒÅÛÅÎÉÅÍ ÐÒÏÂÌÅÍÙ ÐÅÒÅÐÏÌÎÅÎÉÑ ÓÔÅËÁ Ñ×ÌÑÅÔÓÑ
        ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÔÏÌØËÏ ÐÁÍÑÔÉ ÆÉËÓÉÒÏ×ÁÎÎÏÇÏ ÒÁÚÍÅÒÁ É ÆÕÎËÃÉÊ
        ËÏÐÉÒÏ×ÁÎÉÑ ÓÔÒÏË.  æÕÎËÃÉÉ <function>strncpy</function> É
        <function>strncat</function> Ñ×ÌÑÀÔÓÑ ÞÁÓÔØÀ ÓÔÁÎÄÁÒÔÎÏÊ ÂÉÂÌÉÏÔÅËÉ

        <indexterm>
          <primary>ÆÕÎËÃÉÉ ËÏÐÉÒÏ×ÁÎÉÑ ÓÔÒÏËÉ</primary>
            <secondary>strncpy</secondary>
        </indexterm>
        <indexterm>
          <primary>ÆÕÎËÃÉÉ ËÏÐÉÒÏ×ÁÎÉÑ ÓÔÒÏËÉ</primary>
            <secondary>strncat</secondary>
        </indexterm>

        C.  üÔÉ ÆÕÎËÃÉÉ ÂÕÄÕÔ ËÏÐÉÒÏ×ÁÔØ ÎÅ ÂÏÌÅÅ ÕËÁÚÁÎÎÏÇÏ ËÏÌÉÞÅÓÔ×Á ÂÁÊÔ
        ÉÚ ÉÓÈÏÄÎÏÊ ÓÔÒÏËÉ × ÃÅÌÅ×ÕÀ.  ïÄÎÁËÏ Õ ÜÔÉÈ ÆÕÎËÃÉÊ ÅÓÔØ ÎÅÓËÏÌØËÏ
        ÐÒÏÂÌÅÍ.  îÉ ÏÄÎÁ ÉÚ ÎÉÈ ÎÅ ÇÁÒÁÎÔÉÒÕÅÔ ÎÁÌÉÞÉÅ ÓÉÍ×ÏÌÁ NUL, ÅÓÌÉ
        ÒÁÚÍÅÒ ×ÈÏÄÎÏÇÏ ÂÕÆÅÒÁ ÂÏÌØÛÅ, ÞÅÍ ÃÅÌÅ×ÏÇÏ.  ðÁÒÁÍÅÔÒ ÄÌÉÎÙ ÔÁËÖÅ

        <indexterm><primary>ÚÁ×ÅÒÛÅÎÉÅ ÓÉÍ×ÏÌÏÍ NUL</primary></indexterm>

        ÐÏ-ÒÁÚÎÏÍÕ ÉÓÐÏÌØÚÕÅÔÓÑ × strncpy É strncat, ÔÁË ÞÔÏ ÄÌÑ
        ÐÒÏÇÒÁÍÍÉÓÔÏ× ÌÅÇËÏ ÚÁÐÕÔÁÔØÓÑ × ÐÒÁ×ÉÌØÎÏÍ ÉÓÐÏÌØÚÏ×ÁÎÉÉ.  åÓÔØ
        ÔÁËÖÅ É ÚÎÁÞÉÔÅÌØÎÁÑ ÐÏÔÅÒÑ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ ÐÏ ÓÒÁ×ÎÅÎÉÀ Ó
        <function>strcpy</function> ÐÒÉ ËÏÐÉÒÏ×ÁÎÉÉ ËÏÒÏÔËÏÊ ÓÔÒÏËÉ × ÂÏÌØÛÏÊ
        ÂÕÆÅÒ, ÐÏÔÏÍÕ ÞÔÏ <function>strncpy</function> ÚÁÐÏÌÎÑÅÔ ÓÉÍ×ÏÌÁÍÉ
        NUL ÐÒÏÓÔÒÁÎÓÔ×Ï ÄÏ ÕËÁÚÁÎÎÏÊ ÄÌÉÎÙ.</para>

      <para>äÌÑ ÉÚÂÅÖÁÎÉÑ ÜÔÉÈ ÐÒÏÂÌÅÍ × OpenBSD ÂÙÌÁ ÓÄÅÌÁÎÁ ÄÒÕÇÁÑ

        <indexterm><primary>OpenBSD</primary></indexterm>

        ÒÅÁÌÉÚÁÃÉÑ ËÏÐÉÒÏ×ÁÎÉÑ ÐÁÍÑÔÉ.  æÕÎËÃÉÉ <function>strlcpy</function>
        É <function>strlcat</function> ÇÁÒÁÎÔÉÒÕÀÔ, ÞÔÏ ÏÎÉ ÏÎÉ ×ÓÅÇÄÁ
        ÔÅÒÍÉÎÉÒÕÀÔ ÃÅÌÅ×ÕÀ ÓÔÒÏËÕ ÎÕÌÅ×ÙÍ ÓÉÍ×ÏÌÏÍ, ÅÓÌÉ ÉÍ ÂÕÄÅÔ ÐÅÒÅÄÁÎ
        ÁÒÇÕÍÅÎÔ ÎÅÎÕÌÅ×ÏÊ ÄÌÉÎÙ.  âÏÌÅÅ ÐÏÄÒÏÂÎÁÑ ÉÎÆÏÒÍÁÃÉÑ Ï ÜÔÏÍ
        ÎÁÈÏÄÉÔÓÑ ÚÄÅÓØ <xref linkend="OpenBSD">.  éÎÓÔÒÕËÃÉÉ OpenBSD
        <function>strlcpy</function> É <function>strlcat</function> ÓÕÝÅÓÔ×ÕÀÔ
        ×Ï FreeBSD ÎÁÞÉÎÁÑ Ó ×ÅÒÓÉÉ 3.3.</para>

        <indexterm>
          <primary>ÆÕÎËÃÉÉ ËÏÐÉÒÏ×ÁÎÉÑ ÓÔÒÏËÉ</primary>
            <secondary>strlcpy</secondary>
        </indexterm>

        <indexterm>
          <primary>ÆÕÎËÃÉÉ ËÏÐÉÒÏ×ÁÎÉÑ ÓÔÒÏËÉ</primary>
            <secondary>strlcat</secondary>
        </indexterm>

      <sect3>
        <title>÷ËÏÍÐÉÌÉÒÏ×ÁÎÎÁÑ ÐÒÏ×ÅÒËÁ ÇÒÁÎÉà ×Ï ×ÒÅÍÑ ×ÙÐÏÌÎÅÎÉÑ</title>

        <indexterm><primary>ÐÒÏ×ÅÒËÁ ÇÒÁÎÉÃ</primary>
        <secondary>×ËÏÍÐÉÌÉÒÏ×ÁÎÎÁÑ</secondary></indexterm>

        <para>ë ÓÏÖÁÌÅÎÉÀ, ×ÓÅ ÅÝÅ ÛÉÒÏËÏ ÉÓÐÏÌØÚÕÅÔÓÑ ÏÞÅÎØ ÂÏÌØÛÏÊ ÏÂߣÍ
          ËÏÄÁ, ËÏÔÏÒÙÊ ÓÌÅÐÏ ËÏÐÉÒÕÅÔ ÐÁÍÑÔØ ÂÅÚ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÔÏÌØËÏ ÞÔÏ
          ÒÁÓÓÍÏÔÒÅÎÎÙÈ ÆÕÎËÃÉÊ Ó ÐÒÏ×ÅÒËÏÊ ÇÒÁÎÉÃ.  ïÄÎÁËÏ ÅÓÔØ ÄÒÕÇÏÅ
          ÒÅÛÅÎÉÅ.  óÕÝÅÓÔ×ÕÅÔ ÎÅÓËÏÌØËÏ ÒÁÓÛÉÒÅÎÉÊ Ë ËÏÍÐÉÌÑÔÏÒÕ É
          ÂÉÂÌÉÏÔÅË ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ ËÏÎÔÒÏÌÑ ÇÒÁÎÉà ×Ï ×ÒÅÍÑ
          ×ÙÐÏÌÎÅÎÉÑ (C/C++).</para>

          <indexterm><primary>StackGuard</primary></indexterm>
          <indexterm><primary>gcc</primary></indexterm>

        <para>ïÄÎÉÍ ÉÚ ÔÁËÉÈ ÄÏÂÁ×ÌÅÎÉÊ Ñ×ÌÑÅÔÓÑ StackGuard, ËÏÔÏÒÙÊ
          ÒÅÁÌÉÚÏ×ÁÎ ËÁË ÍÁÌÅÎØËÉÊ ÐÁÔÞ Ë ÇÅÎÅÒÁÔÏÒÕ ËÏÄÁ gcc.  óÏÇÌÁÓÎÏ <ulink
	  url="http://immunix.org/stackguard.html">web ÓÁÊÔÕ StackGuard</ulink>:

          <blockquote>
            <para>"StackGuard ÒÁÓÐÏÚÎÁÅÔ É ÚÁÝÉÝÁÅÔ ÓÔÅË ÏÔ ÁÔÁË,
              ÎÅ ÐÏÚ×ÏÌÑÑ ÉÚÍÅÎÑÔØ ÁÄÒÅÓ ×ÏÚ×ÒÁÔÁ × ÓÔÅËÅ.  ðÒÉ ×ÙÚÏ×Å
              ÆÕÎËÃÉÉ StackGuard ÐÏÍÅÝÁÅÔ ×ÓÌÅÄ ÚÁ ÁÄÒÅÓÏÍ ×ÏÚ×ÒÁÔÁ
              ÓÉÇÎÁÌØÎÏÅ ÓÌÏ×Ï.  åÓÌÉ ÐÏÓÌÅ ×ÏÚ×ÒÁÔÁ ÉÚ ÆÕÎËÃÉÉ ÏÎÏ
              ÏËÁÚÙ×ÁÅÔÓÑ ÉÚÍÅÎÅÎÎÙÍ, ÔÏ ÂÙÌÁ ÐÏÐÙÔËÁ ×ÙÐÏÌÎÉÔØ ÁÔÁËÕ ÎÁ
              ÓÔÅË, É ÐÒÏÇÒÁÍÍÁ ÏÔ×ÅÞÁÅÔ ÎÁ ÜÔÏ ÇÅÎÅÒÁÃÉÅÊ ÓÏÏÂÝÅÎÉÑ Ï
              ÚÌÏÕÍÙÛÌÅÎÎÉËÅ × ÓÉÓÔÅÍÎÏÍ ÖÕÒÎÁÌÅ, Á ÚÁÔÅÍ ÐÒÅËÒÁÝÁÅÔ
              ÒÁÂÏÔÕ."</para>
          </blockquote>

          <blockquote>
            <para>"StackGuard ÒÅÁÌÉÚÏ×ÁÎ × ×ÉÄÅ ÍÁÌÅÎØËÏÇÏ ÐÁÔÞÁ Ë ÇÅÎÅÒÁÔÏÒÕ
              ËÏÄÁ gcc, Á ÉÍÅÎÎÏ ÐÒÏÃÅÄÕÒ function_prolog() É
              function_epilog().  function_prolog() ÕÓÏ×ÅÒÛÅÎÓÔ×Ï×ÁÎÁ ÄÌÑ
              ÓÏÚÄÁÎÉÑ ÐÏÍÅÔÏË × ÓÔÅËÅ ÐÒÉ ÎÁÞÁÌÅ ÒÁÂÏÔÙ ÆÕÎËÃÉÉ, Á
              function_epilog() ÐÒÏ×ÅÒÑÅÔ ÃÅÌÏÓÔÎÏÓÔØ ÐÏÍÅÔËÉ ÐÒÉ ×ÏÚ×ÒÁÔÅ ÉÚ
              ÆÕÎËÃÉÉ.  ôÁËÉÍ ÏÂÒÁÚÏÍ, ÌÀÂÙÅ ÐÏÐÙÔËÉ ÉÚÍÅÎÅÎÉÑ ÁÄÒÅÓÁ
              ×ÏÚ×ÒÁÔÁ ÏÐÒÅÄÅÌÑÀÔÓÑ ÄÏ ×ÏÚ×ÒÁÔÁ ÉÚ ÆÕÎËÃÉÉ."</para>
          </blockquote>
        </para>

        <indexterm><primary>ÐÅÒÅÐÏÌÎÅÎÉÅ ÂÕÆÅÒÁ</primary></indexterm>

        <para>ðÅÒÅËÏÍÐÉÌÑÃÉÑ ×ÁÛÅÇÏ ÐÒÉÌÏÖÅÎÉÑ ÓÏ StackGuard Ñ×ÌÑÅÔÓÑ
          ÜÆÆÅËÔÉ×ÎÙÍ ÓÐÏÓÏÂÏÍ ÏÓÔÁÎÏ×ÉÔØ ÂÏÌØÛÉÎÓÔ×Ï ÁÔÁË ÐÅÒÅÐÏÌÎÅÎÉÊ
          ÂÕÆÅÒÁ, ÎÏ ×ÓÅ ÖÅ ÐÏÌÎÏÓÔØÀ ÜÔÏ ÐÒÏÂÌÅÍÙ ÎÅ ÒÅÛÁÅÔ.</para>
      </sect3>

      <sect3>
        <title>ðÒÏ×ÅÒËÁ ÇÒÁÎÉà ×Ï ×ÒÅÍÑ ×ÙÐÏÌÎÅÎÉÑ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ
          ÂÉÂÌÉÏÔÅË.</title>

         <indexterm>
           <primary>ÐÒÏ×ÅÒËÁ ÇÒÁÎÉÃ</primary>
           <secondary>ÏÓÎÏ×ÁÎÁ ÎÁ ÂÉÂÌÉÏÔÅËÅ</secondary>
         </indexterm>

        <para>íÅÈÁÎÉÚÍÙ ÎÁ ÏÓÎÏ×Å ËÏÍÐÉÌÑÔÏÒÁ ÐÏÌÎÏÓÔØÀ ÂÅÓÐÏÌÅÚÎÙ ÄÌÑ
          ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ, ÐÏÓÔÁ×ÌÑÅÍÏÇÏ × Ä×ÏÉÞÎÏÍ ×ÉÄÅ, ËÏÔÏÒÏÅ ×Ù
          ÎÅ ÍÏÖÅÔÅ ÐÅÒÅËÏÍÐÉÌÉÒÏ×ÁÔØ.  ÷ ÜÔÉÈ ÓÉÔÕÁÃÉÑÈ ÉÍÅÅÔÓÑ ÎÅËÏÔÏÒÏÅ
          ËÏÌÉÞÅÓÔ×Ï ÂÉÂÌÉÏÔÅË, × ËÏÔÏÒÙÈ ÒÅÁÌÉÚÏ×ÁÎÙ ÎÅÂÅÚÏÐÁÓÎÙÅ ÆÕÎËÃÉÉ
          ÂÉÂÌÉÏÔÅËÉ C (<function>strcpy</function>,
          <function>fscanf</function>, <function>getwd</function>, É ÔÁË
          ÄÁÌÅÅ..), ÏÂÅÓÐÅÞÉ×ÁÀÝÉÅ ÎÅ×ÏÚÍÏÖÎÏÓÔØ ÚÁÐÉÓÉ ÐÏÓÌÅ ÕËÁÚÁÔÅÌÑ
          ÓÔÅËÁ.</para>

        <itemizedlist>
          <listitem><simpara>libsafe</simpara></listitem>
          <listitem><simpara>libverify</simpara></listitem>
          <listitem><simpara>libparanoia</simpara></listitem>
        </itemizedlist>

        <para>ë ÓÏÖÁÌÅÎÉÀ, ÜÔÉ ÚÁÝÉÔÙ ÉÍÅÀÔ ÎÅËÏÔÏÒÏÅ ËÏÌÉÞÅÓÔ×Ï ÎÅÄÏÓÔÁÔËÏ×.
          üÔÉ ÂÉÂÌÉÏÔÅËÉ ÍÏÇÕÔ ÚÁÝÉÔÉÔØ ÔÏÌØËÏ ÐÒÏÔÉ× ÍÁÌÏÇÏ ËÏÌÉÞÅÓÔ×Á
          ÐÒÏÂÌÅÍ, É ÎÅ ÍÏÇÕÔ ÉÓÐÒÁ×ÉÔØ ÒÅÁÌØÎÙÅ ÐÒÏÂÌÅÍÙ.  üÔÉ ÚÁÝÉÔÙ ÍÏÇÕÔ
          ÎÅ ÓÒÁÂÏÔÁÔØ, ÅÓÌÉ ÐÒÉÌÏÖÅÎÉÅ ÓËÏÍÐÉÌÉÒÏ×ÁÎÏ Ó ÐÁÒÁÍÅÔÒÏÍ
          -fomit-frame-pointer.  ë ÔÏÍÕ ÖÅ ÐÅÒÅÍÅÎÎÙÅ ÏËÒÕÖÅÎÉÑ LD_PRELOAD É
          LD_LIBRARY_PATH ÍÏÇÕÔ ÂÙÔØ ÐÅÒÅÏÐÒÅÄÅÌÅÎÙ/ÓÎÑÔÙ
          ÐÏÌØÚÏ×ÁÔÅÌÅÍ.</para>
      </sect3>
    </sect2>
  </sect1>

  <sect1 id="secure-setuid">
    <title>ðÒÏÂÌÅÍÙ Ó ÕÓÔÁÎÏ×ÌÅÎÎÙÍ ÂÉÔÏÍ UID</title>

      <indexterm><primary>seteuid</primary></indexterm>

    <para>éÍÅÅÔÓÑ ÐÏ ËÒÁÊÎÅÊ ÍÅÒÅ 6 ÒÁÚÌÉÞÎÙÈ ÉÄÅÎÔÉÆÉËÁÔÏÒÏ× (ID), Ó×ÑÚÁÎÎÙÈ
      Ó ÌÀÂÙÍ ×ÚÑÔÙÍ ÐÒÏÃÅÓÓÏÍ.  ðÏÜÔÏÍÕ ×Ù ÄÏÌÖÎÙ ÂÙÔØ ÏÞÅÎØ ÏÓÔÏÒÏÖÎÙ Ó
      ÔÅÍ, ËÁËÉÅ ÐÒÁ×Á ÉÍÅÅÔ ×ÁÛ ÐÒÏÃÅÓÓ × ËÁÖÄÙÊ ÍÏÍÅÎÔ ×ÒÅÍÅÎÉ.  ÷
      ÞÁÓÔÎÏÓÔÉ, ×ÓÅ seteuid-ÐÒÉÌÏÖÅÎÉÑ ÄÏÌÖÎÙ ÐÏÎÉÖÁÔØ Ó×ÏÉ ÐÒÉ×ÉÌÅÇÉÉ, ËÁË
      ÔÏÌØËÏ × ÎÉÈ ÏÔÐÁÄÁÅÔ ÎÅÏÂÈÏÄÉÍÏÓÔØ.</para>

      <indexterm>
        <primary>ÉÄÅÎÔÉÆÉËÁÔÏÒÙ ÐÏÌØÚÏ×ÁÔÅÌÑ</primary>
          <secondary>ÒÅÁÌØÎÙÊ ID ÐÏÌØÚÏ×ÁÔÅÌÑ</secondary>
      </indexterm>
      <indexterm>
        <primary>ÉÄÅÎÔÉÆÉËÁÔÏÒÙ ÐÏÌØÚÏ×ÁÔÅÌÑ</primary>
          <secondary>ÜÆÆÅËÔÉ×ÎÙÊ ID ÐÏÌØÚÏ×ÁÔÅÌÑ</secondary>
      </indexterm>

    <para>òÅÁÌØÎÙÊ ID ÐÏÌØÚÏ×ÁÔÅÌÑ ÍÏÖÅÔ ÂÙÔØ ÉÚÍÅÎÅÎ ÔÏÌØËÏ ÐÒÏÃÅÓÓÏÍ
      ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ.  ðÒÏÇÒÁÍÍÁ <application>login</application>
      ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ÅÇÏ, ËÏÇÄÁ ÐÏÌØÚÏ×ÁÔÅÌØ ×ÈÏÄÉÔ × ÓÉÓÔÅÍÕ, É ÏÎ ÒÅÄËÏ
      ÍÅÎÑÅÔÓÑ.</para>

    <para>üÆÆÅËÔÉ×ÎÙÊ ID ÐÏÌØÚÏ×ÁÔÅÌÑ ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÆÕÎËÃÉÑÍÉ
      <function>exec()</function>, ÅÓÌÉ Õ ÐÒÏÇÒÁÍÍÙ ÕÓÔÁÎÏ×ÌÅÎ ÂÉÔ seteuidt.
      ðÒÉÌÏÖÅÎÉÅ ÍÏÖÅÔ ×ÙÐÏÌÎÉÔØ ×ÙÚÏ× <function>seteuid()</function> × ÌÀÂÏÊ
      ÍÏÍÅÎÔ ÄÌÑ ÕÓÔÁÎÏ×ËÉ ÜÆÆÅËÔÉ×ÎÏÇÏ ID ÐÏÌØÚÏ×ÁÔÅÌÑ × ÚÎÁÞÅÎÉÅ ÒÅÁÌØÎÏÇÏ
      ID ÐÏÌØÚÏ×ÁÔÅÌÑ ÉÌÉ ÓÏÈÒÁÎÑÅÍÏÇÏ set-user-ID.  ëÏÇÄÁ ÜÆÆÅËÔÉ×ÎÙÊ ID
      ÐÏÌØÚÏ×ÁÔÅÌÑ ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÆÕÎËÃÉÑÍÉ <function>exec()</function>, ÅÇÏ
      ÐÒÅÄÙÄÕÝÅÅ ÚÎÁÞÅÎÉÅ ÓÏÈÒÁÎÑÅÔÓÑ × ÓÏÈÒÁÎÑÅÍÏÍ set-user-ID.</para>
  </sect1>

  <sect1 id="secure-chroot">
    <title>ïÇÒÁÎÉÞÅÎÉÅ ÓÒÅÄÙ ÒÁÂÏÔÙ ×ÁÛÅÊ ÐÒÏÇÒÁÍÍÙ</title>

      <indexterm><primary>chroot()</primary></indexterm>

    <para>ôÒÁÄÉÃÉÏÎÎÏ ÉÓÐÏÌØÚÕÅÍÙÍ ÍÅÔÏÄÏÍ ÏÇÒÁÎÉÞÅÎÉÑ ÐÒÏÃÅÓÓÁ
      Ñ×ÌÑÅÔÓÑ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÓÉÓÔÅÍÎÏÇÏ ×ÙÚÏ×Á <function>chroot()</function>.
      üÔÏÔ ÓÉÓÔÅÍÎÙÊ ×ÙÚÏ× ÍÅÎÑÅÔ ËÏÒÎÅ×ÏÊ ËÁÔÁÌÏÇ, ÏÔÎÏÓÉÔÅÌØÎÏ ËÏÔÏÒÏÇÏ
      ÏÐÒÅÄÅÌÑÀÔÓÑ ×ÓÅ ÏÓÔÁÌØÎÙÅ ÐÕÔÉ × ÓÁÍÏÍ ÐÒÏÃÅÓÓÅ É ×ÓÅÈ ÐÏÒÏÖÄÅÎÎÙÈ ÉÍÉ
      ÐÒÏÃÅÓÓÁÈ.  äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÜÔÏÔ ×ÙÚÏ× ÂÙÌ ×ÙÐÏÌÎÅÎ ÕÓÐÅÛÎÏ, ÐÒÏÃÅÓÓ
      ÄÏÌÖÅÎ ÉÍÅÔØ ÐÒÁ×Ï ÎÁ ×ÙÐÏÌÎÅÎÉÅ (ÐÏÉÓË) ËÁÔÁÌÏÇÁ, Ï ËÏÔÏÒÏÍ ÉÄÅÔ ÒÅÞØ.
      îÏ×ÁÑ ÓÒÅÄÁ ÒÅÁÌØÎÏ ÎÅ ×ÓÔÕÐÉÔ × ÓÉÌÕ, ÐÏËÁ ×Ù ÎÅ ×ÙÐÏÌÎÉÔÅ ×ÙÚÏ×
      <function>chdir()</function> × ×ÁÛÅÊ ÎÏ×ÏÊ ÓÒÅÄÅ.  óÌÅÄÕÅÔ ÔÁËÖÅ
      ÏÔÍÅÔÉÔØ, ÞÔÏ ÐÒÏÃÅÓÓ ÍÏÖÅÔ Ó ÌÅÇËÏÓÔØÀ ×ÙÊÔÉ ÉÚ chroot-ÓÒÅÄÙ, ÅÓÌÉ ÏÎ
      ÉÍÅÅÔ ÐÒÉ×ÉÌÅÇÉÉ ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ.  üÔÏ ÍÏÖÅÔ ÂÙÔØ ÄÏÓÔÉÇÎÕÔÏ ÓÏÚÄÁÎÉÅÍ
      ÆÁÊÌÏ× ÕÓÔÒÏÊÓÔ× ÄÌÑ ÞÔÅÎÉÑ ÐÁÍÑÔÉ ÑÄÒÁ, ÐÏÄËÌÀÞÅÎÉÅÍ ÏÔÌÁÄÞÉËÁ Ë
      ÐÒÏÃÅÓÓÕ ×ÎÅ ÕÚÎÉÃÙ É ÍÎÏÇÉÍÉ ÄÒÕÇÉÍÉ ÓÐÏÓÏÂÁÍÉ.</para>

    <para>ðÏ×ÅÄÅÎÉÅ ÓÉÓÔÅÍÎÏÇÏ ×ÙÚÏ×Á <function>chroot()</function> ÍÏÖÎÏ
      ÎÅËÏÔÏÒÙÍ ÏÂÒÁÚÏÍ ËÏÎÔÒÏÌÉÒÏ×ÁÔØ <command>sysctl</command>-ÐÅÒÅÍÅÎÎÏÊ
      kern.chroot_allow_open_directories.  ëÏÇÄÁ ÜÔÁ ÐÅÒÅÍÅÎÎÁÑ ÕÓÔÁÎÏ×ÌÅÎÁ ×
      0, <function>chroot()</function> ÎÅ ÓÒÁÂÏÔÁÅÔ Ó ÏÛÉÂËÏÊ EPERM, ÅÓÌÉ
      ÅÓÔØ ËÁËÉÅ-ÌÉÂÏ ÏÔËÒÙÔÙÅ ËÁÔÁÌÏÇÉ.  åÓÌÉ ÏÎÁ ÕÓÔÁÎÏ×ÌÅÎÁ × ÚÎÁÞÅÎÉÅ ÐÏ
      ÕÍÏÌÞÁÎÉÀ, ÒÁ×ÎÏÅ 1, ÔÏ <function>chroot()</function> ÎÅ ÓÒÁÂÏÔÁÅÔ Ó
      ÏÛÉÂËÏÊ EPERM, ÅÓÌÉ ÅÓÔØ ËÁËÉÅ-ÌÉÂÏ ÏÔËÒÙÔÙÅ ËÁÔÁÌÏÇÉ É ÐÒÏÃÅÓÓ ÕÖÅ
      ÐÏÄ×ÅÒÇÎÕÔ ×ÙÚÏ×Õ <function>chroot()</function>.  äÌÑ ×ÓÅÈ ÄÒÕÇÉÈ
      ÚÎÁÞÅÎÉÊ ÐÒÏ×ÅÒËÁ ÏÔËÒÙÔÏÓÔÉ ËÁÔÁÌÏÇÏ× ÂÕÄÅÔ ÐÏÌÎÏÓÔØÀ ÏÐÕÝÅÎÁ.</para>

    <sect2>
      <title>æÕÎËÃÉÏÎÁÌØÎÏÓÔØ ÄÖÅÊÌÏ× (jail) ×Ï FreeBSD</title>

      <indexterm><primary>jail</primary></indexterm>

      <para>ëÏÎÃÅÐÃÉÑ ÄÖÅÊÌÏ× (Jail) ÒÁÓÛÉÒÑÅÔ ×ÏÚÍÏÖÎÏÓÔÉ
        <function>chroot()</function>, ÏÇÒÁÎÉÞÉ×ÁÑ ×ÌÁÓÔØ ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ
        ÓÏÚÄÁÎÉÅÍ ÎÁÓÔÏÑÝÉÈ `×ÉÒÔÕÁÌØÎÙÈ ÓÅÒ×ÅÒÏ×'.  ëÁË ÔÏÌØËÏ ÔÀÒÅÍÎÁÑ
        ËÁÍÅÒÁ ÓÏÚÄÁÎÁ, ×ÓÅ ÓÅÔÅ×ÙÅ ËÏÍÍÕÎÉËÁÃÉÉ ÄÏÌÖÎÙ ÏÓÕÝÅÓÔ×ÌÑÔØÓÑ ÞÅÒÅÚ
        ×ÙÄÅÌÅÎÎÙÊ ÁÄÒÅÓ IP, Á ÓÉÌÁ "ÐÒÉ×ÉÌÅÇÉÊ ÐÏÌØÚÏ×ÁÔÅÌÑ root" × ÜÔÏÊ
        ÔÀÒØÍÅ ÄÏ×ÏÌØÎÏ ÏÇÒÁÎÉÞÅÎÁ.</para>

      <para>ðÒÉ ÒÁÂÏÔÅ ×ÎÕÔÒÉ ÔÀÒØÍÙ, ÌÀÂÙÅ ÐÒÏ×ÅÒËÉ ÓÉÌÙ ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ ×
        ÑÄÒÅ ÐÒÉ ÐÏÍÏÝÉ ×ÙÚÏ×Á <function>suser()</function> ÂÕÄÕÔ
        ÏËÁÎÞÉ×ÁÔØÓÑ ÎÅÕÄÁÞÎÏ.  ïÄÎÁËÏ ÎÅËÏÔÏÒÙÅ ×ÙÚÏ×Ù Ë
        <function>suser()</function> ÂÙÌÉ ÉÚÍÅÎÅÎÙ ÎÁ ÎÏ×ÙÊ ÉÎÔÅÒÆÅÊÓ
        <function>suser_xxx()</function>.  üÔÁ ÆÕÎËÃÉÑ ÏÔ×ÅÞÁÅÔ ÚÁ
        ÒÁÓÐÏÚÎÁÎÉÅ É ÒÁÚÒÅÛÅÎÉÅ ÄÏÓÔÕÐÁ Ë ×ÌÁÓÔÉ ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ ÄÌÑ
        ÐÒÏÃÅÓÓÏ×, ÎÅ ÎÁÈÏÄÑÝÉÈÓÑ × ÎÅ×ÏÌÅ.</para>

      <para>ðÒÏÃÅÓÓ ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ ×ÎÕÔÒÉ ÓÒÅÄÙ ÄÖÅÊÌÁ ÉÍÅÅÔ ÐÒÁ×Ï:</para>

      <itemizedlist>
        <listitem><simpara>íÁÎÉÐÕÌÉÒÏ×ÁÔØ ÐÒÉ×ÉÌÅÇÉÑÍÉ Ó ÐÏÍÏÝØÀ
          <function>setuid</function>, <function>seteuid</function>,
          <function>setgid</function>, <function>setegid</function>,
          <function>setgroups</function>, <function>setreuid</function>,
          <function>setregid</function> É
          <function>setlogin</function></simpara>
        </listitem>

        <listitem><simpara>õÓÔÁÎÁ×ÌÉ×ÁÔØ ÏÇÒÁÎÉÞÅÎÉÑ ÎÁ ÉÓÐÏÌØÚÏ×ÁÎÉÅ
          ÒÅÓÕÒÓÏ× ÐÒÉ ÐÏÍÏÝÉ
          <function>setrlimit</function></simpara>
        </listitem>

        <listitem><simpara>íÏÄÉÆÉÃÉÒÏ×ÁÔØ ÎÅËÏÔÏÒÙÅ sysctl-ÐÅÒÅÍÅÎÎÙÅ
          (kern.hostname)</simpara>
        </listitem>

        <listitem><simpara><function>chroot()</function></simpara></listitem>

        <listitem><simpara>õÓÔÁÎÁ×ÌÉ×ÁÔØ ÓÌÅÄÕÀÝÉÅ ÆÌÁÇÉ ÎÁ vnode:
          <function>chflags</function>,
          <function>fchflags</function></simpara>
        </listitem>

        <listitem><simpara>õÓÔÁÎÁ×ÌÉ×ÁÔØ ÔÁËÉÅ ÁÔÒÉÂÕÔÙ vnode, ËÁË ÐÒÁ×Á
          ÄÏÓÔÕÐÁ Ë ÆÁÊÌÕ, ÉÚÍÅÎÑÔØ ÅÇÏ ×ÌÁÄÅÌØÃÁ, ÇÒÕÐÐÕ, ÒÁÚÍÅÒ, ×ÒÅÍÑ
          ÄÏÓÔÕÐÁ É ÍÏÄÉÆÉËÁÃÉÉ.</simpara>
        </listitem>

        <listitem><simpara>ïÓÕÝÅÓÔ×ÌÑÔØ ÐÒÉ×ÑÚËÕ Ë ÐÒÉ×ÉÌÅÇÉÒÏ×ÁÎÎÏÍÕ ÐÏÒÔÕ
          × ÏÂÌÁÓÔÉ ÐÏÒÔÏ× éÎÔÅÒÎÅÔ (ÐÏÒÔÙ Ó ÎÏÍÅÒÁÍÉ < 1024)</simpara>
        </listitem>
      </itemizedlist>

      <para><function>Jail</function> Ñ×ÌÑÅÔÓÑ ÏÞÅÎØ ÐÏÌÅÚÎÙÍ ÉÎÓÔÒÕÍÅÎÔÏÍ
        ÄÌÑ ÚÁÐÕÓËÁ ÐÒÉÌÏÖÅÎÉÊ × ÚÁÝÉÝÅÎÎÏÍ ÏËÒÕÖÅÎÉÉ, ÎÏ ÅÓÔØ É ÎÅËÏÔÏÒÙÅ
        ÎÅÄÏÓÔÁÔËÉ.  îÁ ÔÅËÕÝÉÊ ÍÏÍÅÎÔ Ë ÆÏÒÍÁÔÕ
        <function>suser_xxx</function> ÎÅ ÐÒÅÏÂÒÁÚÏ×ÁÎÙ ÍÅÈÁÎÉÚÍÙ IPC, ÔÁË
        ÞÔÏ ÔÁËÉÅ ÐÒÉÌÏÖÅÎÉÑ, ËÁË MySQL, ÎÅ ÍÏÇÕÔ ÒÁÂÏÔÁÔØ × ÄÖÅÊÌÅ.  ðÒÁ×Á
        ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ ÍÏÇÕÔ ÉÍÅÅÔ ÍÁÌÕÀ ÓÉÌÕ ×ÎÕÔÒÉ ÄÖÅÊÌÁ, ÎÏ ÎÅÔ
        ÓÐÏÓÏÂÁ ÏÐÒÅÄÅÌÉÔØ, ÞÔÏ ÚÎÁÞÉÔ "ÍÁÌÕÀ".</para>
    </sect2>

    <sect2>
      <title>&posix;.1e ×ÏÚÍÏÖÎÏÓÔÉ ÐÒÏÃÅÓÓÏ×</title>

      <indexterm><primary>POSIX.1e ×ÏÚÍÏÖÎÏÓÔÉ ÐÒÏÃÅÓÓÏ×</primary></indexterm>
      <indexterm><primary>TrustedBSD</primary></indexterm>

      <para>&posix; ×ÙÐÕÓÔÉÌÁ ÒÁÂÏÞÉÊ ÄÏËÕÍÅÎÔ, ËÏÔÏÒÙÊ ÄÏÂÁ×ÌÑÅÔ ÁÕÄÉÔ ÓÏÂÙÔÉÊ,
        ÓÐÉÓËÉ ÕÐÒÁ×ÌÅÎÉÑ ÄÏÓÔÕÐÏÍ, ÔÏÎËÏ ÎÁÓÔÒÁÉ×ÁÅÍÙÅ ÐÒÉ×ÉÌÅÇÉÉ, ÍÅÔËÉ
        ÉÎÆÏÒÍÁÃÉÉ É ÖÅÓÔËÏÅ ÕÐÒÁ×ÌÅÎÉÅ ÄÏÓÔÕÐÏÍ.</para>

      <para>üÔÏÔ ÄÏËÕÍÅÎÔ ÎÁÈÏÄÉÔÓÑ × ÒÁÂÏÔÅ É ÎÁÈÏÄÉÔÓÑ × ÃÅÎÔÒÅ ×ÎÉÍÁÎÉÑ
        ÐÒÏÅËÔÁ <ulink url="http://www.trustedbsd.org/">TrustedBSD</ulink>.
        îÅËÏÔÏÒÁÑ ÎÁÞÁÌØÎÁÑ ÆÕÎËÃÉÏÎÁÌØÎÏÓÔØ ÕÖÅ ÂÙÌÁ ÄÏÂÁ×ÌÅÎÁ ×Ï
        &os.current; (cap_set_proc(3)).</para>
    </sect2>
  </sect1>

  <sect1 id="secure-trust">
    <title>äÏ×ÅÒÉÅ</title>

    <para>ðÒÉÌÏÖÅÎÉÅ ÎÉËÏÇÄÁ ÎÅ ÄÏÌÖÎÏ ÐÏÌÁÇÁÔØ, ÞÔÏ ÓÒÅÄÁ ÐÏÌØÚÏ×ÁÔÅÌÑ
      ÂÅÚÏÐÁÓÎÁ.  óÀÄÁ ×ËÌÀÞÁÅÔÓÑ (ÎÏ ÜÔÉÍ ÎÅ ÏÇÒÁÎÉÞÅÎÏ): ××ÏÄ ÐÏÌØÚÏ×ÁÔÅÌÑ,
      ÓÉÇÎÁÌÙ, ÐÅÒÅÍÅÎÎÙÅ ÓÒÅÄÙ, ÒÅÓÕÒÓÙ, IPC, ÏÔÏÂÒÁÖÁÅÍÁÑ × ÆÁÊÌ ÐÁÍÑÔØ (mmap),
      ÒÁÂÏÞÉÊ ËÁÔÁÌÏÇ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ, ÄÅÓËÒÉÐÔÏÒÙ ÆÁÊÌÏ×, ÞÉÓÌÏ ÏÔËÒÙÔÙÈ
      ÆÁÊÌÏ× É ÐÒÏÞÅÅ.</para>

      <indexterm><primary>ÐÏÚÉÔÉ×ÎÁÑ ÆÉÌØÔÒÁÃÉÑ</primary></indexterm>
      <indexterm><primary>ÐÏÄÔ×ÅÒÖÄÅÎÉÅ ÐÒÁ×ÉÌØÎÏÓÔÉ ÄÁÎÎÙÈ</primary></indexterm>

    <para>îÉËÏÇÄÁ ÎÅ ÄÕÍÁÊÔÅ, ÞÔÏ ÓÍÏÖÅÔÅ ÐÒÅÄÕÓÍÏÔÒÅÔØ ×ÓÅ ÆÏÒÍÙ
      ÎÅÐÒÁ×ÉÌØÎÏÇÏ ××ÏÄÁ, ËÏÔÏÒÙÊ ÍÏÖÅÔ ÄÁÔØ ÐÏÌØÚÏ×ÁÔÅÌØ.  ÷ÍÅÓÔÏ ÜÔÏÇÏ
      ×ÁÛÅ ÐÒÉÌÏÖÅÎÉÅ ÄÏÌÖÎÏ ÏÓÕÝÅÓÔ×ÌÑÔØ ÐÏÚÉÔÉ×ÎÕÀ ÆÉÌØÔÒÁÃÉÀ, ÐÒÏÐÕÓËÁÑ
      ÔÏÌØËÏ ËÏÎÅÞÎÏÅ ÍÎÏÖÅÓÔ×Ï ×ÏÚÍÏÖÎÙÈ ×ÁÒÉÁÎÔÏ× ××ÏÄÁ, ËÏÔÏÒÙÅ ×Ù
      ÓÞÉÔÁÅÔÅ ÂÅÚÏÐÁÓÎÙÍÉ.  îÅÐÏÌÎÁÑ ÐÒÏ×ÅÒËÁ ÄÁÎÎÙÈ ÂÙÌÁ ÐÒÉÞÉÎÏÊ ÍÎÏÇÉÈ
      ÎÁÒÕÛÅÎÉÊ ÚÁÝÉÔÙ, ÏÓÏÂÅÎÎÏ CGI-ÓËÒÉÐÔÏ× ÎÁ ×ÅÂ-ÓÁÊÔÁÈ.  äÌÑ ÉÍÅÎ ÆÁÊÌÏ×
      ×ÁÍ ÎÕÖÎÏ ÕÄÅÌÑÔØ ÏÓÏÂÏÅ ×ÎÉÍÁÎÉÅ ÐÕÔÑÍ ("../", "/"), ÓÉÍ×ÏÌÉÞÅÓËÉÍ
      ÓÓÙÌËÁÍ É ÜËÒÁÎÉÒÕÀÝÉÍ ÓÉÍ×ÏÌÁÍ ÏÂÏÌÏÞËÉ.</para>

      <indexterm><primary>âÅÚÕÐÒÅÞÎÙÊ ÒÅÖÉÍ × Perl</primary></indexterm>

    <para>÷ Perl ÉÍÅÅÔÓÑ ÔÁËÁÑ ÏÞÅÎØ ÐÏÌÅÚÎÁÑ ×ÅÝØ, ËÁË "ÂÅÚÕÐÒÅÞÎÙÊ" (taint)
      ÒÅÖÉÍ, ËÏÔÏÒÙÊ ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÄÌÑ ÚÁÐÒÅÝÅÎÉÑ ÓËÒÉÐÔÁÍ ÉÓÐÏÌØÚÏ×ÁÔØ
      ÄÁÎÎÙÅ, ÐÏÒÏÖÄÅÎÎÙÅ ×ÎÅ ÐÒÏÇÒÁÍÍÙ, ÎÅ ÂÅÚÏÐÁÓÎÙÍ ÓÐÏÓÏÂÏÍ.  üÔÏÔ ÒÅÖÉÍ
      ÐÒÏ×ÅÒÑÅÔ ÁÒÇÕÍÅÎÔÙ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ, ÐÅÒÅÍÅÎÎÙÅ ÏËÒÕÖÅÎÉÑ, ÉÎÆÏÒÍÁÃÉÀ
      ÌÏËÁÌÉÚÁÃÉÉ, ÒÅÚÕÌØÔÁÔÙ ÎÅËÏÔÏÒÙÈ ÓÉÓÔÅÍÎÙÈ ×ÙÚÏ×Ï×
      (<function>readdir()</function>, <function>readlink()</function>,
      <function>getpwxxx()</function> É ×ÅÓØ ÆÁÊÌÏ×ÙÊ ××ÏÄ.</para>
  </sect1>

  <sect1 id="secure-race-conditions">
    <title>îÅÏÖÉÄÁÎÎÏÅ ÐÏ×ÅÄÅÎÉÅ</title>

    <para>îÅÏÖÉÄÁÎÎÏÅ ÐÏ×ÅÄÅÎÉÅ - ÜÔÏ ÁÎÏÍÁÌØÎÏÅ ÐÏ×ÅÄÅÎÉÅ, ×ÙÚ×ÁÎÎÏÅ
      ÎÅÐÒÅÄÕÓÍÏÔÒÅÎÎÏÊ ÚÁ×ÉÓÉÍÏÓÔØÀ ÏÔ ÏÔÎÏÓÉÔÅÌØÎÏÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ
      ÓÏÂÙÔÉÊ.  äÒÕÇÉÍÉ ÓÌÏ×ÁÍÉ, ÐÒÏÇÒÁÍÍÉÓÔ ÎÅÐÒÁ×ÉÌØÎÏ ÐÒÅÄÐÏÌÏÖÉÌ, ÞÔÏ
      ÎÅËÏÔÏÒÏÅ ÓÏÂÙÔÉÅ ×ÓÅÇÄÁ ÓÌÕÞÁÅÔÓÑ ÐÅÒÅÄ ÄÒÕÇÉÍ.</para>

      <indexterm><primary>ÎÅÏÖÉÄÁÎÎÏÅ ÐÏ×ÅÄÅÎÉÅ</primary>
      <secondary>ÓÉÇÎÁÌÙ</secondary></indexterm>

      <indexterm><primary>ÎÅÏÖÉÄÁÎÎÏÅ ÐÏ×ÅÄÅÎÉÅ</primary>
      <secondary>ÐÒÏ×ÅÒËÉ ÎÁ ÄÏÓÔÕÐ</secondary></indexterm>

      <indexterm><primary>ÎÅÏÖÉÄÁÎÎÏÅ ÐÏ×ÅÄÅÎÉÅ</primary>
      <secondary>ÏÔËÒÙÔÉÑ ÆÁÊÌÏ×</secondary></indexterm>

    <para>îÅËÏÔÏÒÙÅ ÉÚ ÛÉÒÏËÏ ÒÁÓÐÒÏÓÔÒÁÎÅÎÎÙÈ ÐÒÉÞÉÎ ×ÏÚÎÉËÎÏ×ÅÎÉÑ ÔÁËÉÈ
      ÐÒÏÂÌÅÍ Ñ×ÌÑÀÔÓÑ ÓÉÇÎÁÌÙ, ÐÒÏ×ÅÒËÉ ÄÏÓÔÕÐÁ É ÏÔËÒÙÔÉÑ ÆÁÊÌÏ×.  óÉÇÎÁÌÙ
      ÐÏ Ó×ÏÅÊ ÐÒÉÒÏÄÅ Ñ×ÌÑÀÔÓÑ ÁÓÉÎÈÒÏÎÎÙÍÉ ÓÏÂÙÔÉÑÍÉ, ÔÁË ÞÔÏ ÐÏ ÏÔÎÏÛÅÎÉÀ
      Ë ÎÉÍ ÎÕÖÎÏ ÐÒÏÑ×ÌÑÔØ ÏÓÏÂÏÅ ×ÎÉÍÁÎÉÅ.  ðÒÏ×ÅÒËÁ ÄÏÓÔÕÐÁ ÆÕÎËÃÉÅÊ
      <function>access(2)</function> Ó ÐÏÓÌÅÄÕÀÝÉÍ ×ÙÚÏ×ÏÍ
      <function>open(2)</function> ÐÏÌÎÏÓÔØÀ ÎÅ ÁÔÏÍÁÒÎÏ.  ðÏÌØÚÏ×ÁÔÅÌÉ ÍÏÇÕÔ
      ÐÅÒÅÍÅÓÔÉÔØ ÆÁÊÌÙ × ÐÒÏÍÅÖÕÔËÅ ÍÅÖÄÕ Ä×ÕÍÑ ×ÙÚÏ×ÁÍÉ.  ÷ÍÅÓÔÏ ÜÔÏÇÏ
      ÐÒÉ×ÉÌÅÇÉÒÏ×ÁÎÎÏÅ ÐÒÉÌÏÖÅÎÉÅ ÄÏÌÖÎÏ ×ÙÐÏÌÎÉÔØ
      <function>seteuid()</function>, Á ÚÁÔÅÍ ÓÒÁÚÕ ×ÙÚ×ÁÔØ
      <function>open()</function>.  ÷ ÔÅÈ ÖÅ ÓÔÒÏËÁÈ ÐÒÉÌÏÖÅÎÉÅ ÄÏÌÖÎÏ ×ÓÅÇÄÁ
      ÕÓÔÁÎÁ×ÌÉ×ÁÔØ Ñ×ÎÏ ÍÁÓËÕ ÐÒÁ× ÄÏÓÔÕÐÁ (umask) ÐÅÒÅÄ ×ÙÚÏ×ÏÍ ÆÕÎËÃÉÉ
      <function>open()</function> ×Ï ÉÚÂÅÖÁÎÉÅ ÂÅÓÐÏÒÑÄÏÞÎÙÈ ×ÙÚÏ×Ï×
      <function>chmod()</function>.</para>
  </sect1>
</chapter>