Вы находитесь на странице: 1из 791

За пределами

Beyond L IN U X from Scratch

LINUX
с нуля Том 1
Версия 7.4

о м »
Beyond Linux®
From Scratch

Version 7.4

The BLFS Development Team


З а пределами
проекта
«Ыпих® с нуля»
Версия 7.4

Команда разработчиков В1_Р5

ТОМ I

М о ск ва, 2014
УДК 004.451Linux
ББК 32.973.26-018.2
Б60

Б60 Команда разработчиков BLFS


За пределами проекта «Linux® с нуля». Версия 7.4. Том 1 / пер. с англ.
Ромоданов Н. А. - М.: ДМК Пресс, 2014. - 792 с.: ил.

ISBN 978-5-97060-060-3

Проект «За пределами «Linux с нуля» является развитием проекта


«Linux с нуля». Перевод сделан с англоязычной версии 7.4 - пер­
вой стабильной версии, выпущенной в течение последних пяти лет.
Эта версия синхронизирована с версией 7.4 проекта «Linux с нуля»
и представляет собой расширение последнего приблизительно 750
пакетами.
В первой части проекта, которая представлена в настоящей книге,
приводится подробное описание установки и настройки пакетов, не­
обходимых для безопасного использования системы и подключения
ее к локальным и глобальным сетям. Из этой части вы также узнаете
как правильно установить общесистемные библиотеки, сетевые и сис­
темные утилиты, основные командные оболочки и некоторые тексто­
вые редакторы. Вы также сможете установить среду виртуализации и
ряд инструментальных пакетов, необходимых при программирования
на таких языках, как С, C++, Perl, Python, PHP, Ruby и Java.

УДК 004.451 Linux


ББК 32.973.26-018.2

Linux® является зарегистрированной торговой маркой Linus Torvalds.


Вес права защищены. Любая часть этой книги не может быть воспроиз­
ведена в какой бы то ии было форме и какими бы то ни было средствами без
письменного разрешения владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но, пос­
кольку вероятность технических ошибок все равно существует, издательство
не может гарантировать абсолютную точность и правильность приводимых
сведений. В связи с этим издательство не несет ответственности за возможные
ошибки, связанные с использованием книги.

© 2001-2013, The BLFS Development Team


ISBN 978-5-97060-060-3 (рус.) © Оформление, перевод на русский язык
ДМК Пресс, 2014
ОГЛАВЛЕНИЕ
П р о л ог.......................................................................... 14
П р ед и сл о в и е ........................................................................................15
Для кого предназначена данная к н и га ......................................................17
Структура к н и г и ...............................................................................................18
Возможные проблемы ................................................................................... 20

ЧАСТЬ I.
В в е д е н и е ....................... ..21
Глава 1. Добро пожаловать в проект B L F S ................... 22
Какие разделы книги вам не о б хо д и м ы ?..................................................22
Типограф ские соглашения, используемые в данной к н и г е ............... 24
Версия книги ................................................................................................... 25
Сайты з е р к а л ................................................................................................... 26
Как получить пакеты с исходным кодом ..................................................26
Журнал и зм енени й......................................................................................... 27
С писки р а с с ы л о к ............................................................................................ 27
Страницы Wiki проекта BLFS........................................................................ 27
Как обратиться за помощью и часто задаваемые вопросы F A Q 28
Вклад в п р о е к т .................................................................................................30
Контактная ин ф о р м а ц и я .............................................................................. 32
Глава 2. Важная инф орм ация............................ 33
Замечания, касающ иеся сборки п р о гр а м м ............................................33
В чем разница между /u s r и /u s r/lo c a l.......................................................41
Необязательные п а тч и .................................................................................. 43
Загрузочные скрипты B L F S ......................................................................... 43
библиотеки: статические или динамически разд еляем ы е? 44
Вопросы, касающиеся локалей .................................................................47
За пределами BLFS ....................................................................................... 52

ЧАСТЬ II.
Постпроектная настройка LFS и дополнительные
програм м ы ................... 57
Глава 3. Вопросы конфигурирования, не вош едш ие
в LFS.................................................. 58
ШШШШЩШШ Оглавление

Создание специального загрузочного носителя...................................59


Конф игурирование процесса добавления пользователей................ 60
О системных пользователях и гр у п п а х .................................................... 62
Об ус тр о й с тв а х ................................................................................................64
Файлы запуска командной оболочки B ash.............................................. 68
Файлы /e tc/vim rc и -/.v im rc ........................................................................ 76
Настраиваем ваш вход в систему с помощью /e tc /is s u e ...................78
Файл /e tc/sh e lls ............................................................................................. 79
Генерация случайных чи се л ......................................................................... 80
Сжатие страниц Man и In fo .......................................................................... 80
Пакет lsb_release-1.4 .................................................................................... 93

Глава 4. Б езо п асн о сть ......................... 94


У я зв и м о сти .......................................................................................................94
Пакет acl-2.2.52 .............................................................................................. 96
Пакет attr-2.4.47 ............................................................................................. 98
Сертификаты Certificate A uthority........................................................... 100
Пакет C onsoleKit-0.4.6 ................................................................................107
Пакет C rackLib-2.9.0 ....................................................................................110
Пакет Cyrus SASL-2.1.26 ............................................................................ 113
Пакет GnuPG-1.4 .1 4 .....................................................................................117
Пакет GnuPG-2.0.21 .....................................................................................118
Пакет G nuT LS -3.2.4...................................................................................... 122
Пакет GPGME-1.4.3 .....................................................................................125
Пакет lptab les-1.4.20 .................................................................................. 126
Настройка сетевого б р а нд м а уэр а ...........................................................130
Пакет lib ca p2-2.22 ....................................................................................... 141
Пакет Linux-PAM -1.1 .7 ................................................................................. 143
Пакет MIT Kerberos V 5 -1 .1 1 .3 ................................................................... 146
Пакет Nettle-2.7.1 .........................................................................................154
Пакет N SS -3.15.1 ..........................................................................................156
Пакет OpenSSH-6.3p1 ................................................................................. 158
Пакет OpenSSL-1.0.1e ................................................................................163
Пакет p 1 1-kit-0.20.1 .....................................................................................166
Пакет P olkit-0.111 .........................................................................................168
Пакет S hadow -4.1.5.1 ................................................................................. 171
Пакет stunnel-4.56 ....................................................................................... 180
Пакет S ud o-1 .8.7 .......................................................................................... 184
Пакет T rip w ire -2 .4 .2 .2 .................................................................................. 187

Глава 5. Файловые системы и управление д и с к а м и 192


О файловой системе initramfs .................................................................. 192
Пакет F use-2.9.3............................................................................................ 200
Пакет jfs u tils-1 .1 .1 5 ......................................................................................203
Пакет LVM2-2.02.100 ................................................................................ 205
Оглавление

О массиве ИАЮ ............................................................................................ 207


Пакет тс1ас1т-3 .3..........................................................................................211
Пакет г^ з -3 д -2 0 1 3 .1.13...............................................................................213
Пакетдр11сПзк-0.8.7...................................................................................... 216
Пакет раПес1-3.1 ...........................................................................................218
Пакет ге1зе^8ргод8-3.6.24......................................................................... 220
Пакет 88ИТ8^и8е-2.4.....................................................................................222
Пакет xfs p ro g s -3 .1 .1 1 .................................................................................. 223
Глава 6. Текстовые редакторы .............................................. 2 27
Пакет В1иеЛзИ-2.2.4...................................................................................... 227
П акетЕ сМ .9 .................................................................................................. 228
Пакет Е т а с з -2 4 .3 ........................................................................................ 230
Пакет чЮЕ-3.7................................................................................................. 231
Пакет № по-2 .3.2 ..........................................................................................233
Пакет \/1 т -7 .4 ................................................................................................. 235
Другие редакторы ........................................................... 238
Глава 7. Командные оболочки .......... 2 39
Пакет Оаз1>0.5.7........................................................................................... 239
naKeTTcsh-6.18.01 ....................................................................................... 241
Пакет ггИ -Б .0.2 ................................... 243

Глава 8. В и р туали заци я.......................... .2 4 7


Пакет д е т и -1 .6 . 0 ..........................................................................................247

ЧАСТЬ III.
Библиотеки и утилиты общ его назначения ...................... 253
Глава 9. Библиотеки общ его назначения................ ....2 5 4
Пакет Арг-1.4.8 ............................................................................................. 255
Пакет Арг-1ЛН -1.5.2...................................................................................... 256
Пакет АзреП-0.60.6.1 .................................................................................. 258
Пакет В о о гМ .5 4 .0 ...................................................................................... 260
Пакет с1Ьи8-дПЬ-0.100.2............................................................................. 262
Пакет е п с И а п М .6.0 .....................................................................................264
Пакет Е хетр'1-2.2.1....................................................................................... 265
Пакет Ехра1-2.1.0..........................................................................................266
Пакет О а т т - 0 . 1 . 1 0 ...................................................................................... 268
Пакет О иЬ -2.36.4 ....................................................................................... 269
Пакет О и Ь т т - 2 .3 6 .2 ................................................................................. 272
П акет0 1\/И те-2.6.17.....................................................................................274
Пакет доЬ^есЫггёгозресйогМ.36.0 ......................................................... 275
Пакет Оз1-1.16 ...............................................................................................277
Пакет 1Си-51. 2 ...............................................................................................278
Пакет 1БО СосЗез-З.^46 ............................................................................... 281
ШШШШШШ Оглавление

Пакет 08-17.0.0 ............................................................................................ 282


Пакет иБО Ы -С-0.11 ...................................................................................... 283
Пакет ОБОМ-ОШЬ-О.16.0 ............................................................................285
Пакет кеуиИ1з-1.5.6 ...................................................................................... 286
Пакет ПЬагсЫуе-3.1.2 .................................................................................. 287
Пакет ПЬа8зиап-2.1.1 .................................................................................. 288
Пакет lib a ta sm a rt-0 .1 9 ................................................................................. 290
Пакет ЬЬа1:отю_ор8-7.2с1............................................................................291
Пакет ПЬсгосо-0.6.8 .....................................................................................293
Пакет ПЬс1аетоп-0.14.................................................................................. 294
Пакет ПЬс1Ьи8тепи-д1-0.9.2....................................................................... 296
Пакет ПЬс1гт-2.4.46..................................................................................... 297
Пакет ПЬЕБМТР-1.0 .6 ................................................................................... 299
Пакет \ Ш \ - 3 . 0.13 ..........................................................................................300
Пакет ПЬдсгурМ .5.3 ................................................................................... 301
Пакет ПЬдее-0.6.8..........................................................................................303
ПакетПЬд1ас1е-2.6.4 .....................................................................................304
Пакет ПЬдрд-еггог-1 .1 2 ................................................................................306
naK eTlibgsf-1.14.28 ................................................................................... 307
Пакет ПЬдизЬ-0.1.6 ......................................................................................309
Пакет ПЫсаМ .0 ............................................................................................ 310
Пакет иЬЮ1_-0.8.14 ...................... 312
Пакет ПЫс1п-1.28 ...........................................................................................313
Пакет ПЫос1Ьс-3.52.8................................................................................... 315
Пакет иЬкзЬ а-1.3.0 .................................................................................317
Пакет ПЬз1дс++-2.2.11 .................................................................................318
Пакет П ^азп 1-3.3 ........................................................................................ 319
Пакет ПЬигпз1:ппд-0.9.3.................................................................................321
Пакет ПЬизЬ-1.0.9 ........................................................................................ 322
Пакет П ЬизЬ-сотра1-0.1. 5 ......................................................................... 323
Пакет ПЬхт12-2.9.1 ....................................................................................... 325
Пакет ПЬхз1М .1.28 ....................................................................................... 327
Пакет ПЬ2ейде1з^0.3.18.............................................................................. 328
Пакет 1_гО-2.06 ............................................................................................ 330
Пакет т1с1еу-1. 1 . 4 ........................................................................................ 331
Пакет Ы 5РР-4.10 ......................................................................................... 332
Пакет ОрепОВЕХ-1.7.1 ................................................................................334
Пакет РСРЕ-8.33 ......................................................................................... 336
Пакет Р о р М .1 6 ............................................................................................ 338
Пакет Р ^ -2 .0 .7 ............................................................................................. 339
Пакет P tlib -2 .1 0 .1 0 ....................................................................................... 341
Пакет О са-2.0.3 ............................................................................................342
Пакет О ^ о п - 0 .8.1 ........................................................................................ 344
Пакет Б В С -1 .1 ................................................................................................345
Оглавление -

Пакет SLIB-3b4 ............................................................................................. 346


Пакет Та11ос-2.1 .0 ......................................................................................... 348
Пакет w v-1 .2 .9 ................................................................................................349
Глава 10. Графические библиотеки и библиотеки
ш р и ф то в ................................................................... .3 5 1
Пакет AAIib-1.4 г с 5 ........................................................................................ 351
Пакет b a b l-0 .1 .1 0 ..........................................................................................353
Пакет Exiv2-0.23 ......................................................................................... 354
Пакет FreeType-2.5.0.1 ................................................................................355
Пакет F ontconfig-2.10.93 .......................................................................... 357
Пакет FriB idi-0.1 9 .5 ......................................................................................360
Пакет g e g l-0 .2 .0 ............................................................................................ 362
Пакет g iflib -5 .0 .5 ............................................................................................ 363
Пакет Harfbuzz-0.9.20 ............................................................................... 365
Пакет IJ S -0 .3 5 .............................................................................................. 366
Пакет Im lib2-1.4.5 ........................................................................................ 368
Пакет JasPer-1.900.1 ................................................................................. 369
Пакет Little C M S -1 .19 .................................................................................. 371
Пакет Little C M S -2 .5 .....................................................................................373
Пакет libexif-0.6.21 ....................................................................................... 374
Пакет lib jp e g -tu rb o -1 .3 . 0 ............................................................................ 376
Пакет lib m ng-2.0.2 ....................................................................................... 378
П а кетП Ь рп д -1.6 .4........................................................................................ 379
Пакет librsvg-2.37.0 ......................................................................................381
Пакет LibTIFF-4.0.3 ......................................................................................383
Пакет libw ebp-0.3.1 ......................................................................................385
Пакет OpenJPEG-1.5 .1 .................................................................................387
Пакет P ixm an-0.30.2................................................................................... 388
Пакет P oppler-0.24.51................................................................................. 389
Пакет Q p d f-5 .0 . 0 ...........................................................................................393
Глава 11. Утилиты общ его назначения ........................3 9 5
Пакет Ь с-1.06.95 .......................................................................................... 395
n a K eT C o m pfa ce -1 .5.2 ................................................................................. 396
Пакет d e skto p -file -u tils-0 .2 2 ..................................................................... 398
Пакет G perf-3.0 . 4 ..........................................................................................400
Пакет Graphviz-2.34.0 .................................................................................401
Пакет G T K -D oc-1.19 .....................................................................................408
Пакет Hd2u-1.0.3 ..........................................................................................410
Пакет ico n -n a m in g -u tils-0 .8 .9 0 ................................................................ 411
Пакет lm a g e M a g ic k -6 .8 .6 -9 ....................................................................... 4 1 2
Пакет lntltool-0.50.2 .....................................................................................4 1 6
Пакет P IN -E n try-0 .8 .3 .................................................................................. 418
Пакет qtchooser-31 ...................................................................................... 4 1 9
ШЛЖШШ Оглавление

Пакет Rarian-0.8.1 ........................................................................................ 422


Пакет R ep-gtk-0.90.8.1 .............................................................................. 424
Пакет rxvt-un ico de-9.1 8 .............................................................................. 425
Пакет S c re e n -4 .0 .3 .......................................................................................428
Пакет S harutils-4.13.5 .................................................................................430
Пакет НТМL Tidy-cvs_20101110 ..............................................................431
Пакет unixODBC-2.3.1 .................................................................................433
Пакет XScreenSaver-5.22 ...........................................................................436

Глава 12. Системные ути ли ты ....................................................4 3 9


Пакет a cp id -2 .0 .1 9 ........................................................................................ 439
Пакет a t-3 .1 .1 4 .............................................................................................. 441
Пакет au to fs-5 .0 .7 ......................................................................................... 443
Пакет B lueZ -4.101 ........................................................................................ 447
Пакет C olord-1.0 .3 ........................................................................................ 451
Пакет cpio-2.11 ............................................................................................. 453
Пакет D -B us-1.6 .1 4 ......................................................................................455
Пакет e je ct-2 .1 . 5 ...........................................................................................460
Пакет F c ro n -3 .1 .2 ......................................................................................... 461
Пакет G P M -1.20.7 ........................................................................................ 464
Пакет Hdparm -9.43 ......................................................................................468
Пакет I B u s-1.5.3 ........................................................................ 469
Пакет LSB Tools для управления загрузочны ми с кр и п та м и 471
Пакет lm _sensors-3.3.4 .............................................................................. 472
Пакет М С -4.8.10 ...........................................................................................475
Пакет obex-data-server-0.4.6 ................................................................... 478
Пакет Obexd-O.48 ........................................................................................ 479
Пакет p c iu tils -3 .2 .0 .......................................................................................480
Пакет p m -u tils-1 .4.1 .................................................................................... 482
Пакет R a ptor-2.0.1 0 ......................................................................................484
Пакет Rasqal-0.9.30 .................................................................................... 486
Пакет R edland-1.0 .1 6 ................................................................................... 487
Пакет sg3_utils-1.36 .................................................................................... 488
Пакет S trigi-0.7.8 ......................................................................................... 493
Пакет S ysstat-10.1. 7 .................................................................................... 495
Пакет Udev - версия, установленная в L F S .......................................... 498
Дополнения пакета Udev (из пакета s y s te m d )..................................... 500
Пакет UDisks-1.0 . 4 ....................................................................................... 503
Пакет U D isks-2.1.1 ....................................................................................... 504
Пакет UnRar-5.0.11 ......................................................................................506
Пакет UnZip-6.0 ............................................................................................ 507
Пакет UPower-0.9.21 ................................................................................... 510
Пакет usbutils-007 ....................................................................................... 512
Пакет W hich-2.20 и его альтернативные варианты ............................514
Пакет Zip-З.О ................................................................................................. 516
оглавление т м ш ш ш аяш
Глава 13. П р о гр ам м и р о в а н и е......................... 518
Пакет Bazaar-2.5.1 ....................................................................................... 518
Пакет C h e c k -0 .9 .1 0 ......................................................................................519
Пакет C M ake-2.8.11 . 2 ................................................................................. 520
Пакет C VS-1.11.23 ...................................................................................... 522
Запуск сервера CVS ................................................................................... 525
Пакет DejaGnu-1.5.1 ................................................................................... 528
Пакет D oxygen-1.8.5 ................................................................................... 529
Пакет e lfu tils-0 .156 ...................................................................................... 531
Пакет Expect-5.45 ....................................................................................... 532
Пакет GCC-4.8.1 .................................................................... 536
Пакет G C -7.2d ...............................................................................................543
Пакет G D B -7.6.1 ............................................................................................ 545
Пакет G it-1. 8 . 4 ...............................................................................................547
Пакет G u ile -2 .0 .9 ...........................................................................................551
Пакет Librep-0.92.3 .................................................................................... 553
Пакет LLVM-3.3 ............................................................................................. 554
Пакет Lua-5.1. 5 ............................................................................................. 559
Пакет Mercurial-2.7.1 .................................................................................. 561
Пакет N AS M -2.10.09 .................................................................................. 562
Пакет Perl M o d u le s ....................................................................................... 564
Пакет Р Н Р -5 .5 .3 ............................................................................................ 569
Пакет p kg -co n fig -0 .28 ............................................................................... 574
Пакет P y th o n -2 .7 .5 ....................................................................................... 576
Пакет P y th o n -3 .3 .2 ....................................................................................... 579
Пакет Python Modules ................................................................................. 581
Модуль D-Bus Python .................................................................................582
Модуль Notify Python-0.1.1 ....................................................................... 584
Модуль Py2cairo-1.10.0 ............................................................................. 585
Модуль PyCairo-1.10.0 .............................................................................. 586
Модуль PyGObject-2.28.6 ..........................................................................587
Модуль PyGObject-3.8.3 ............................................................................ 588
Модуль PyGTK-2.24.0 .................................................................................590
Модуль PyAtSpi2-2.8.0 .............................................................................. 592
Модуль Ругех-0.9.9..................................................................................... 593
Модуль PyXDG-0.25.................................................................................... 594
Пакет Ruby-2.0.0 ..........................................................................................595
Пакет SCons-2.3.0 ....................................................................................... 596
Пакет S -Lang-2.2.4 ...................................................................................... 597
Пакет S u bversion-1 .8.3 ................................................................................599
Запуск сервера Subversion ....................................................................... 603
ПакетТсІ-8.6.0 ...............................................................................................607
Пакет Т к-8 .6 .0 ................................................................................................609
Пакет Vala-0.20.1 ..........................................................................................611
Пакет yasm -1.2.0 ..........................................................................................613
12 Оглавление

Другие инструментальные средства п р о гр а м м и р о в а н и я ............... 614


О языке J a v a .................................................................................................. 648
Пакет J U n it-4 .1 1 ............................................................................................ 650
Пакет a p ach e-a nt-1.9.2 .............................................................................. 652
Пакет O penJD K-1.7.0.40/lcedTea-2.4.1 .................................................655

ЧАСТЬ IV.
С е т ь .......................................................................................................671
Глава 14. Подклю чение к с е т и ......................... 672
Пакет d h cp cd -6 .0 .5 ....................................................................................... 672
Пакет DHCP-4.2.5-P1 .................................................................................. 675
Глава 15. Программы для работы с с е т ь ю ............................ 681
Пакет b rid g e -u tils-1 .5 .................................................................................. 681
Пакет cifs-utils-6.1 ....................................................................................... 684
Пакет NcFTP-3.2.5 ....................................................................................... 686
Пакет Net-tools-CVS_20101030 .............................................................. 688
Пакет N FS-U tils-1.2.8 .................................................................................. 691
Конф игурирование сетевых файловых систем ..................................696
Пакет ntp-4.2.6p5 ........................................................................................ 697
Пакет rp cb in d -0 .2.1 ......................................................................................701
Пакет rsync-3.0.9 ......................................................................................... 702
Пакет S a m b a -4 .0 .9 ....................................................................................... 705
Пакет W g e t-1 .1 4 ............................................................................................717
Пакет Wireless Tools-29 .............................................................................. 719
Пакет w pa_supplicant-2.0 ...........................................................................721
Д ругие программы для работы ссетью .................................................727
Глава 16. Сетевые утилиты ..........................................................7 2 9
Пакет Avahi-0.6.31 ....................................................................................... 729
Пакет BIND U tilitie s-9 .9 .3 -P 2 ......................................................................733
Пакет m o d _ d n ssd -0 .6 .................................................................................. 734
Пакет N etw o rkM a n a g e r-0 .9 .8 .2 .................................................................736
Пакет N m ap-6.40 ......................................................................................... 739
Пакет Traceroute-2.0.19 ............................................................................. 740
Пакет W hois-5.0.26 ......................................................................................742
П акетW icd-1.7.2.4 ....................................................................................... 743
Пакет W ireshark-1.1 0 .2 ................................................................................746

Глава 17. Сетевые б и б л и о теки .................................................. 7 5 2


Пакет cURL-7.32.0 ....................................................................................... 752
Пакет G eoC lue-0.12.0 .................................................................................754
Пакет glib-netw orking-2.36.2 ................................................................... 756
naKeTldns-1.6.16 ......................................................................................... 757
Пакет libevent-2.0.21 ................................................................................... 759
Оглавление 13

Пакет lib n ice -0 .1.4 ....................................................................................... 761


Пакет libnl-3.2.22 ........................................................................................ 762
Пакет libpcap-1.4.0 ......................................................................................764
Пакет libsoup-2.42.2 ................................................................................... 765
Пакет lib tirp c-0 .2.3 ....................................................................................... 767
Пакет neon-0.30.0 ........................................................................................ 768
Пакет S e rf-1 .3.1 ...................................................................................... ....7 7 0
Глава 18. Текстовые в е б -б р а у зе р ы ............... 772
Пакет L in ks -2 .7 .............................................................................................. 772
Пакет Lynx-2.8.8dev. 1 6 ................................................................................774
Пакет W 3m -0.5 . 3 ...........................................................................................777
Глава 19. Клиентские программы для работы
с почтой и новостными группам и.............................................. 7 8 0
Пакет Heirloom m ailx-12.4 ......................................................................... 780
Пакет Procm ail-3.22 ................................................................................... 782
Пакет Fetchm ail-6.3.26 ................................................................................784
Пакет M utt-1.5.21 ...................................... 786
Пакет R e-alpine-2.03 .................................................................................. 789
Другие программы для работы с почтой и новостными
группами ........................................................................................................ 791
Этот выпуск посвящен Энди Бентону (Andy Benton).
Да упокоится он с миром.

ПРО ЛО Г

После пяти лет непрерывной разработки команда BLFS рада предс­


тавить версию 7.4 Beyond Linux From Scratch («За пределами про­
екта Linux® с нуля»). Эта версия включает в себя около 750 пакетов,
которые были добавлены к книге «Linux From Scratch» («Linux® с
нуля») версии 7.4.
Оперативно обновлять пакеты, которые полезны для пользовате­
лей, является непростой задачей. В среднем, каждый день семь дней
в неделю выпускаются три новых пакета. На момент публикации все
пакеты в BLFS обновлены. Подавляющее большинство пакетов в
книге были проверены на работу в среде LFS-7.4, однако, несколько
(26) пакетов были только собраны и не проверялись, в первую оче­
редь, из-за аппаратных ограничений.
Эта версия не была бы выпущена без помощи многих людей на про­
тяжении многих лет. Особое спасибо следующим участникам проекта
за многие часы, потраченные ими на то, что они сделали для BLFS:
• Andy Benton
• Wayne Blaszczyk
• Guy Dalziel
• Ag Hatzimanikas
• DJ Lucas
• Randy McMurchy
• Ken Moffat
• Fernando de Oliveria
• Chris Staub
• Ragnar Thomsen
• Thomas Trepl
• Igor Zivkovic

Брюс Добс (Bmce Dubbs)


13 сентября, 2013
ПРЕДИСЛОВИЕ

Участвуя в течение короткого времени в оказании помощи проекту


Linux From Scratch, я обратил внимание, что нам поступало много
вопросов, связанных с тем, что выходило за рамки базовой системы
LFS. На тот момент единственной помощью, предлагаемой в проек­
те LFS, были рекомендации LFS (http://w w w .linuxfromscratch.org/
hints). Большая часть рекомендаций исключительно качественные и
хорошо написаны, но я (и другие) все еще считаю, что нужно ока­
зывать более обстоятельную помощь - в результате появился проект
«Beyond LFS» («За пределами проекта LFS»), т. е. BLFS.
Цель проекта BLFS не просто преобразовать рекомендации в фор­
мат XML, хотя большая часть нашей работы основывается на этих
рекомендациях и некоторые авторы, по существу, пишут как реко­
мендации, так и соответствующие разделы BLFS. Мы надеемся, что
сможем предоставить вам информацию, достаточную не только для
управления сборкой вашей системы в том виде, как вы захотите, будь
то веб сервер или настольная мультимедийная система, но и для того,
чтобы вы попутно научились многому, что связано с конфигурирова­
нием системы.
Как и всегда, спасибо всем членам сообщества LFS/BLFS; особен­
но тем, кто предоставлял инструкции, писал тест, отвечал на вопросы
и, вообще, сразу сообщал, если что-то оказывалось неправильным.
Наконец, мы призываем вас к участию в жизни сообщества; зада­
вайте вопросы в списках рассылок или новостных группах и присо­
единяйтесь к любителям LFS (канал #lfs на irc.linuxfromscratch.org).
Более подробную информацию о всех этих возможностях можно най­
ти в разделе «Введение» (Том 1) данной книги.
Получайте удовольствие от участия в проекте BLFS.
Марк Хаймерс. (M ark Hymers)
markh@linuxfromscratch.org
Редактор BLFS (июль 2001- март 2003)
16 Н І Н І Предисловие

Я до сих пор помню, как обнаружил проект BLFS и начал пользо­


ваться инструкциями, которые в нем были на тот момент. Я не мог по­
верить, насколько удивительно быстро удалось установить и запус­
тить приложение благодаря инструкциям, в которых объяснялось,
что и как следует делать. К сожалению, для меня, это продолжалось
недолго, поскольку я столкнулся с приложениями, для которых была
только фраза «То be done» («Нужно сделать»). Я делал то, что делает
большинство, т. е. ждал что кто-то сделает все за меня. Проходило не
так много времени прежде, чем я с помощью Bugzilla определял, как
решить проблему. Как и в любом другом практическом случае, удава­
лось находить то, что можно было легко поправить.
Мы по-прежнему призываем вас присоединиться, поскольку проект
BLFS действительно никогда не будет завершен. Независимо от того,
внесете ли вы свой вклад или просто воспользуетесь проектом BLFS,
мы надеемся, вы получите удовольствие от использования BLFS.
Ларри Лоуренс (Larry Lawrence)
larry@linuxfromscratch.org
Редактор BLFS (март 2003 - июнь 2004)

Проект BLFS является естественным развитием проекта LFS. Эти


проекты вместе предоставляют собой уникальный ресурс для сооб­
щества Open Source Community. Они раскрывают тайну процесса
сборки полнофункциональной системы программного обеспечения
из исходного кода, созданного многими талантливыми разработчика­
ми во всем мире. Они действительно позволяют пользователям реа­
лизовать лозунг «Ваш дистрибутив, ваши правила».
Наша задача заключается в предоставлении лучших из имеющихся
ресурсов, которые покажут вам как собирать вместе много важных
приложений, имеющих открытый исходный код. Поскольку эти при­
ложения постоянно обновляются и разрабатываются новые прило­
жения, эта книга никогда не будет завершена. Кроме того, всегда есть
возможность ее улучшить, разъясняя нюансы, описывающие уста­
новку различных пакетов. Чтобы делать такие улучшения, нам нуж­
на с вами обратная связь. Я призываю вас принять участие в работе в
различных списках рассылок, новостных группах и каналах IRC, что
поможет нам решить нашу задачу.
Брюс Добс (Bruce Dubbs)
bdubbs@linuxfromscratch.org
Редактор BLFS (июнь 2004 - декабрь 2006)
предисловие

Мое знакомство с проектом [BJLFS произошло, в сущности, слу­


чайно. Я пытался собрать среду GNOME, используя для этого неко­
торые HO W -ТО и другую информацию, которую я нашел в интерне­
те. Пару раз я сталкивался с некоторыми вопросам, связанными со
сборкой, и с помощью Google я смог найти несколько старых сооб­
щений из списков рассылок BLFS. Из любопытства я посетил сайт
Linux From Scratch и вскоре после этого я попал в его плен. С тех пор
для своих личных целей я не пользовался никакими другими дистри­
бутивами Linux.
Я никому не могу обещать, что вы почувствуете такое же удовлет­
ворение, которое я почувствовал после создания нескольких моих
первых систем, собранных с использованием инструкций [B]LFS, но
я искренне надеюсь, что ваш опыт использования BLFS окажется по­
лезным для вас настолько же, насколько он оказался полезным для
меня.
За последние пару лет проект BLFS значительно вырос. Появилось
гораздо больше, чем это было раньше, инструкций, описывающих па­
кеты и связанные с ними зависимости. Чтобы успех проекта продол­
жался, требуется ваше участие. Если вы обнаружите, что вам нравит­
ся сборка системы BLFS, пожалуйста, подумайте о помощи в любом
виде, которую вы можете оказать проекту Проекту BLFS, даже если
поддерживать его в полуактуальном состоянии, требуются сотни ча­
сов поддержки. Если вы достаточно уверены в своих возможностях в
качестве редактора инструкций, пожалуйста, обдумайте возможность
своего присоединения к команде BLFS. Просто включайтесь в обсуж­
дения, имеющиеся в списках рассылок, предлагайте свои советы и
патчи для правки книги в формате XML и это, возможно, послужит
причиной вашего приглашения присоединиться к команде.
Рэнди Мак-Мурчи (Randy McMurchy)
randy@linuxfromscratch.org
Редактор BLFS (декабрь 2006 - январь 2011)

Для кого предназначена данная


книга
Эта книга рассчитана, прежде всего для тех, кто собрал систему с ис­
пользованием книги LFS. Она также будет полезна для тех, кто ис­
пользует другие дистрибутивы, но по той или иной причине должен
вручную собирать программное обеспечение и нуждается в некото-
18 Предисловие

рой помощи. Обратите внимание, что материал, имеющийся в этой


книге, в частности, касающийся списков зависимостей, основывается
на предположении, что вы в качестве базовой системы используете
систему Ы ^ , причем каждый пакет, указанный в книге Ы ^ , уже ус­
тановлен и настроен. Проект В Ы ^ можно использовать для созда­
ния целого ряда разнообразных систем и поэтому целевая аудитория,
вероятно, почти столь же широка, как и для книги ЬРБ. Если вы ре­
шили, что книга УтБ является полезной, то так же полезной для вас
окажется и эта книга!
Перевод с оригинала от 2012-08-22 13:45:43 +0000.

Структура книги
Настоящая книга состоит из двух томов и включает в себя следующие
части.
ТОМ 1.
Часть I. Введение
В этой части представлена информация, которая важна для всей
остальной части книги.
Часть II. Постпроектная настройка 1_РБ
и дополнительные программы
В этой части книги мы познакомим вас с базовой конфигурацией
и вопросами, связанными с безопасностью. Мы также обсудим ряд
текстовых редакторов, файловые системы, и командные оболочки,
которые не были рассмотрены в рамках книги и з .
Часть III. Библиотеки и утилиты общего назначения
В этом разделе мы рассмотрим библиотеки, которые будут часто
использоваться в остальной части книги, а также системные утилиты.
Завершает эту часть информация, связанная с программированием
(в том числе перекомпиляция пакета ССС с тем, чтобы он поддержи­
вал весь спектр имеющихся в пакете языков программирования).
Часть IV. Сеть
Здесь мы рассмотрим, как подключиться к сети в случае, когда
вы не пользуетесь простой статической настройкой 1Р, которая была
приведена в книге ВЕБ. Также рассматриваются сетевые библиотек и
инструментальные средства, предназначенные для работы с сетью из
командной строки.
Предисловие il штт 19

ТОМ 2.
Часть V. Серверы
В этом разделе мы будем рассматривать настройку почтового сер­
вера и других серверов (например, SSH, Apache и т. д.).
Часть VI. Система X + оконные менеджеры
В этом разделе будет объяснено, как выполнить базовую настройку
системы X Window, а также настройку некоторых основных библио­
тек системы X и оконных менеджеров Window.
Часть VII. KDE
Эта часть предназначена для тех, кто хочет использовать среду ра­
бочего стола К Desktop Environment или какую-либо ее часть.
Часть VIII. GNOME
GNOME является главной альтернативой KDE в роли среды для
рабочего стола и в этом разделе мы рассмотрим пакет GNOME-3.6.
Часть IX. Xfce
Среда Xfce является легковесным альтернативным вариантом сре­
ды GNOME и среды KDE.
Часть X. Программы для системы X
Для большинства важными являются офисные программы и веб­
браузеры. Их, вместе с некоторыми основными программами систе­
мы X, можно найти в этой части книги.
Часть XI. Мультимедиа
Здесь мы рассматриваем настройку мультимедийных библиотек и
драйверов, а также настройку некоторых программ, работающих с ау­
дио и видеофайлами и осуществляющих запись на компакт-диски.
Часть XII. Печать, сканирование и издательские
возможности (PST)
В части PST настоящей книги рассматривается обработка до­
кументов с помощью таких приложений, как Ghostscript, CUPS и
DocBook.
Приложения
В приложениях приводится информация, не относящаяся к основ­
ной части книги; это, в основном, информация справочного характера.
Перевод с оригинала от 2013-08-20 10:31:41 -0700.
Возможные проблемы
Программы, используемые для создания приложений В и з , посто­
янно обновляются и улучшаются. После того, как книга ВЬЕЗ выпу­
щена, могут появиться предупреждения, связанные с безопасностью
системы, и патчи, исправляющие ошибки. Перед тем, как присту­
пить к сборке, пожалуйста, посетите страницу h ttp://www.linuxfrom-
scratch.Org/blfs/e rra ta/7 .4 / с тем, чтобы проверить, нужно ли в связи
с вопросами безопасности или с тделыо исправления ошибок исполь­
зовать другие версии пакетов или изменить инструкции, приводимые
в настоящей версии ВЬЕЗ. Вам нужно обратить внимание на все из­
менения процесса сборки ВЬЕЗ и применить их в соответствующих
разделах книги.
Если вы столкнулись с проблемой, то подходящее место, где можно
поискать решение, является версия книги, предназначенная для раз­
работчиков. Это та веросия, в которую каждый день добавляются но­
вые пакеты, обновляются версии пакетов и делаются исправления.
Перевод с оригинта от 2013-09-13 12:50:39 -0700.
Введение
ГЛАВА 1.
Добро пожаловать
в проект BLFS

Книга Beyond Linux From Scratch предназначена для продолжения


работ с того места, где вы остановились после завершения книги LFS.
Но, в отличие от книги LFS, в ней не требуется читать все разделы
подряд. Изучение раздела «Какие разделы книги вам необходимы?»,
имеющегося в настоящей главе, должно помочь вам выбрать порядок
изучения книги.
Пожалуйста, внимательно прочитайте часть I, поскольку в ней
объясняются несколько соглашений, используемых повсюду в насто­
ящей книге.

Какие разделы книги вам


необходимы?
В отличие от книги Linux From Scratch, книга BLFS не предназначе­
на для последовательного чтения всех ее глав. Это связано с тем, что
в LFS приводятся инструкции, описывающие создание базовой сис­
темы, которую можно превратить в любую систему, начиная веб-сер­
вером и заканчивая мультимедийной настольной системой. В книге
BLFS мы стараемся помочь вам перейти от базовой системы к сис­
теме, которая вам необходима. Важной составляющей является воз­
можность сделать выбор.
Каждый, кто будет читать книгу, должен прочитать определенные
ее разделы. В части «Введение», которое вы сейчас читаете, содер­
жится общая информация. Особенно обратите внимание на главу 2
«Важная информация», поскольку пей приведены комментарии о
распаковке программ, разъяснены особенности использования раз­
личных локалей, а также рассмотрены другие вопросы, используемые
на протяжении всей книги.
Какие разделы книги вам необходимы? |1 И М И и И И Н Ь И !

Затем, большинство читателей захочет перейти к разделу «Пост-


проектные настройки в системе LFS и дополнительные программы».
В нем рассматриваются не только вопросы, связанные с конфигури­
рованием, но и с безопасностью (глава 4 «Безопасность»), файловыми
системами (глава 5, «Файловые системы»), текстовыми редакторами
(глава 6, «Текстовые редакторы») и командными оболочками (гла­
ва 7, «Командные оболочки»). Безусловно, в процессе сборки своей
системы вы можете обращаться к определенным главам этого раздела
(особенно к главам «Текстовые редакторы» и «Файловые системы»).
После ознакомления с этими основными разделами, большая часть
читателей захотят, как минимум, просмотреть раздел «Библиотеки и
утилиты общего назначения». В этом разделе содержится информа­
ция, связанная со многими вопросами, понимание которых необходи­
мо в других разделах книги, а также некоторые темы (например, гла­
ва 13 «Программирование»), которые могут быть полезными сахМИ по
себе. Заметим, что вам не придется устанавливать все эти библиотеки
и пакеты из этого раздела, поскольку в BLFS вначале каждой проце­
дуры установки указывается, от каких пакетов есть зависимость и,
поэтому, вы можете выбрать программу, которую хотите установить,
и посмотреть, какие зависимости ей требуются.
Кроме того, большинство читателей захотят познакомиться с раз­
делом «Базовые сетевые возможности». Речь идет о подключении
к интернету или к вашей локальной сети (глава 14, «Подключение
к сети») с использованием различных методик, например, D H C P и
РРР, и о таких темах, как библиотеки для работы с сетью (глава 17,
«Библиотеки для работы с сетью») и основные сетевые программы и
утилиты.
После того, как вы познакомитесь с этими основными темами, у
вас может появиться желание настроить более современные сетевые
сервисы. Они рассматриваются в части «Серверы». Для тех, кто хочет
собирать серверы, этот раздел должен стать хорошей отправной точ­
кой. Обратите внимание, что в этом разделе также есть информация
о различных пакетах баз данных.
Оставшаяся часть книги связана, главным образом, с настольными
системами. Эта часть книги начинается с раздела «Система X + окон­
ные менеджеры». В этой части рассматриваются также некоторые
общие библиотеки системы X (глава 25 «Библиотеки системы X»).
Затем идут отдельные разделы, в которых рассматривается среда ра­
бочего стола KDE и среда GNOME, а затем идет раздел «Программы
для системы X».
ШЁЛ ИИ И М 111Kl л Глава 1. Добро пожаловать в проект BLFS

Затем в книге рассматриваются мультимедийные пакеты. Заме­


тим, что в самом начале своего турне по системе BLFS многие могут
захотеть воспользоваться инструкциями ALSА-1.0.27 из этой главы;
эти инструкции расположены здесь, просто потому, что это наиболее
логичное для них место.
Заключительным разделом книги BLFS является раздел «Печать,
сканирование и издательские возможности (PST)». Раздел принесет
пользу большинству читателей, которые имеют дело с настольными
системами, и даже окажется полезным для тех, кто, в основном, стро­
ит серверные системы.
Мы надеемся, что вам понравится книга BLFS и вы посчитаете ее
полезной.
Перевод с оригинала от 2012-12-19 19:57:20 +0000

Типографские соглашения,
используемые в данной книге
Чтобы было проще понять излагаемый материал, везде в настоящей
книге используются следующие типографские соглашения. Ниже
проведено несколько примеров:
./configure —prefix=/usr
С помощью этого варианта оформления текста указывает­
ся, как нужно точно вводить команду, если, конечно, иное
не указано в сопровождающем тексте. Этот вариант также
используется для идентификации ссылок на конкретные ко­
манды.
install-info: unknown option
'--dir-file=/mnt/lfs/usr/inf o/dir'

С помощью этого варианта оформления текста (моноши­


ринный текст) изображаются данные, выводимые на экран,
обычно, это результат ввода команды. Такой вариант офор­
мления используется также для указания имен файлов, на­
пример, / b o o t/g r u b /g r u b . c o n f.

Выделение
Этот вариант оформления текста используется в книге для
нескольких целей. В основном так выделяются важные мо­
менты или компоненты.
h ttp ://www.linuxfromscratch.org/
Этот вариант оформления используется для гиперссылок на
страницы, расположенные вне книги, например, на различ­
ные HOW TO, места скачивания данных, веб-сайты и т.д.
SeaMonkev-2.20
Этот вариант оформления используется для ссылок внутри
книги, например, на другой раздел, описывающий другой
пакет.
cat > $LFS/etc/group « "EOF"
r o o t :x :0:
b in: x: 1 :

EOF

Этот вариант оформления используется, когда показыва­


ются конфигурационные файлы. В первой команде систе­
ме сообщается, ЧТО нужно создать файл $ L F S / e t c / g r o u p из
того, что будет введено в следующих строках, и продолжать
добавлять данные в файл до тех, пока не встретится символ
конца файла (EO F). Следовательно, все надо набирать так,
как изображено.
ЗАМЕНЯЕМЫЙ ТЕКСТ>

Этот вариант оформления используется для указания текс­


та, который не следует вводить так, как он показан, и не сле­
дует копировать .и вставлять без каких-либо изменений.
r oo t
Этот вариант оформления теста используется для указания
конкретного пользователя системы или группы, на которые
в инструкциях делаются ссылки.
Перевод с оригинала от 2007-04-04 19:42:53 +0000

Версия книги
Это книга BLFS версии 7.4 от 13 сентября 2013 г., текущая стабиль­
ная версия книги BLFS, которая предназначена для использова­
ния с текущей стабильной версией книги LFS. Если данной версии
(версия 7.4) более, чем месяц, то это значит, что достаточно давно не
происходила синхронизация сайтов зеркал и, вероятно, уже есть бо­
лее новая версия, доступная для загрузки или просмотра. Поищите
Глава 1. Добро пожаловать в проект BLFS

обновленную версию на одном из зеркал, перечисленных на h ttp ://


www.linuxfromscratch.org/in irrors.htinl.
Перевод с оригинала от 2008-05-11 01:20:50 +0000

Сайты зеркал
У проекта BLFS есть ряд сайтов зеркал, которые размещены по всему
миру, что делает более удобным доступ к веб-сайту. Пожалуйста, по­
сетите страницу веб-сайта h ttp ://www.hnuxfromscratch.org/m irrors.
html, на которой можно найти список сайтов зеркал, имеющихся в
текущий момент.
Перевод с оригинала от 2007-04-04 19:42:53 +0000

Как получить пакеты с исходным


кодом
В инструкциях BLFS для каждого пакета указываются две ссылки
для получения исходных кодов этого пакета - ссылка HTTP и ссыл­
ка FTP (для некоторых пакетов может быть только одна из этих ссы­
лок). Было приложено масса усилий с тем, чтобы эти ссылки были
точными. Однако, World Wide Web постоянно меняется. Иногда па­
кеты перемещаются на другое место или обновляются и не всегда уда­
ется указать точный URL.
Чтобы преодолеть эту проблему, команда BLFS при содействии
компании Server Beach создала H T T P /F T P сайт, доступный на
anduin.linuxfromscratch.org. На этом сайте находятся все исходные
коды именно тех версий, которые используются в BLFS. Если вы не
можете найти пакет BLFS, который вам нужен, то возьмите его с на­
шего сайта.
Однако, мы просим вас об одном одолжении. Хотя это обществен­
ный ресурс, предназначенный для того, чтобы им вы пользовались,
мы не хотим, чтобы вы им злоупотребляли. У нас уже был один лег­
комысленный пользователь, который скачал более 3 Гб данных, в том
числе множество копий одних и тех же файлов, размещенных в раз­
ных местах (через символические ссылки) для того, чтобы было легче
найти нужный пакет. Этот индивид ясно не понимал, какие файлы
ему нужны, и загрузил все, что было. Самое лучшее место загрузки
файлов - это сайт или сайты, созданные разработчиками исходных
кодов. Пожалуйста, попробуйте сначала скачать пакеты оттуда.
Перевод с оригинала от. 2012-12-19 19:57:20 +0000
Страницы W iki проекта BLFS тш ш тш ш
Журнал изменений
На сайте проекта BLFS имеются архивы журналов изменений за
2008-2012 годы.
Перевод с оригинала от 2013-09-13 12:50:39 -0700

Списки рассылок
Сервер linuxfromscratch.org является хостингом ряда списков рассы­
лок, которые предназначены для разработки книги BLFS. Среди этих
списков есть, кроме всего прочего, список основной разработки и спи­
сок поддержки.
Для получения дополнительной информации о том, какие списки
доступны, как на них подписаться, где находятся архивы и т. д., посе­
тите страницу h ttp://www.linuxfromscratch.org/m ail.htm l.
Перевод с оригинала от 2007-04-04 19:42:53 +0000.

Страницы Wiki проекта BLFS


В проекте BLFS для пользователей на h ttp :/ / wiki.linuxfromscratch.
org/blfs/w iki созданы страницы Wiki, на которых публикуются ком­
ментарии и инструкции. Комментарии принимаются от всех пользо­
вателей.
Правила публикации следующие:
• Чтобы редактировать страницы, пользователи должны заре­
гистрироваться и войти в Wiki;
• Предложения по изменению книги должны осуществляться с
помощью создания новой заявки ticket, а не с помощью ком­
ментария в Wiki.
• Вопросы, связанные с вашими конкретными проблемами
установки, должны осуществляться с помощью подписки и
отправки письма в предназначенный для поддержки список
рассылки «BLFS Support Mailing List» по адресу mailto:blfs-
support AT linuxfromscratch DOT org.
• Обсуждения инструкций rio сборке должны осуществляться
с помощью подписки и отправки письма в предназначенный
для разработки список рассылки «BLFS Development List» но
адресу mailto:blfs-dev AT linuxfromscratch DOT org.
• Неуместные материалы будут удаляться.
Перевод с оригинала от 2007-04-04 19:42:53 +0000.
28 fP lj <HU ) Глава1. Добро пожаловать в проект BLFS

Как обратиться за помощью


и часто задаваемые вопросы
FAQ
Если вы при использовании этой книги столкнулись с проблемой,
и ваша проблема отсутствует среди часто задаваемых вопросов FAQ
(h ttp :// www.linuxfromscratch.org/faq), вы обнаружите, что вам готовы
помочь большинство присутствующих в чате (IR C ) и использующих
списки рассылок. Обзор списков рассылок LFS можно найти в разде­
ле «Списки рассылок». Чтобы помочь нам в диагностике и решении
вашей проблемы, добавьте к вашей просьбе о помощи информацию,
максимально характеризующую вашу проблему.

Что нужно проверить перед тем,


как задавать вопросы
Прежде чем просить о помощи, вы должны проверить следующее:
• Есть ли аппаратная поддержка в ядре или она доступна в моду­
ле, загружаемом в ядро? Если это модуль, то правильно ли он
сконфигурирован в m o d p r o b e .c o n f и был ли он загружен? Д ля
того, чтобы увидеть, загружен ли модуль, вы должны в роли
пользователя r o o t выполнить команду lsmod. Чтобы посмот­
реть, были ли сообщения об ошибках, посмотрите файл s y s .
l og или запустите команду modprobe <дра йвер>. Если модуль
загружается так, как надо, вам может понадобиться добавить в
ваш скрипт загрузки команду modprobe.
• Правильно ли установлены у вас права доступа, и, особенно,
для устройств? В LFS используются группы, благодаря кото­
рым делать такие настройки становится проще, но при этом
для того, чтобы получить доступ, требуется выполнить допол­
нительный шаг, добавляющий пользователей в группы. Для
того, чтобы пользователь получил доступ к системе звука, все,
что вам может потребоваться, это простая команда usermod
-G audio < п о л ь з о в а т е л ь > . Любой вопрос, который начинает­
ся с «Это работает для пользователя root, но не работает ...»
требует перед тем, как задавать вопрос, тщательного анализа
прав доступа.
• BLFS либерально относится к использованию каталога
/ o p t / <пакет>. Основное возражение против него связано с
Как обратиться за помощью и часто задаваемые вопросы у Щ |j||J J 29

тем, что для каждого пакета, находящегося здесь (например,


PA TH=$PATH:/opt/kde/bin), нужно добавлять значения в
ваши переменные среды окружения. В большинстве случаев,
в инструкциях к пакетам рассказывается, как это сделать, но
иногда это не так. В разделе «За пределами BLFS» есть под­
сказка, которая поможет вам в этом.

О чем следует упомянуть


Помимо краткого объяснения проблемы, с которой вы столкнулись,
в каждую просьбу о помощи включите следующую важную инфор­
мацию:
• версию книги, которая используется (в данном случае 7.4);
• пакет или раздел, в котором встретилась проблема;
• точное сообщение об ошибке или симптом, которые были по­
лучены;
• отклонились ли вы от инструкции книги или вообще от проек­
та LFS;
• устанавливали ли вы пакет BLFS на систему, отличную от LFS.
(Заметьте, что если вы сообщите, что отклонились от инструкций
книги, это не будет означать, что мы вам не поможем. Просто это нам
поможет найти другие возможные причины вашей проблемы).
Скорее всего, вы получите общий совет, а не конкретные инструкции.
Если вам посоветуют что-нибудь прочитать, то, пожалуйста, сделайте
это. Как правило, при этом предполагается, что ответ слишком очеви­
ден и что этот вопрос не был бы задан, если перед тем, как его задавать,
проблема была бы достаточно изучена. Не следует отдавать предпоч­
тение обращению к добровольцам, поддерживающих список рассылок,
вместо вашего собственного вдумчивого изучения проблемы. Вдобавок
к тому, что благодаря такому изучению повысится ваша собственная
квалификация, связанная с использованием BLFS, у добровольцев не
сложится мнение, что их личным временем злоупотребляют, и, следо­
вательно, будет больше шансов, что вам будет оказана помощь.
В интернете есть отличная статья о том, как надо задавать вопросы,
написанная Эриком С. Реймондом (Eric S. Raymond.). Она доступна
по ссылке h ttp : / / catb.org/-esr/faqs/sm art-questions.ht mL Чтобы по­
высить шанс получить нужную вам помощь, прочитайте ее и следуйте
изложенным в ней рекомендациям.
Перевод с оригинала от 2009-09-24 22:43:37 -0700.
Глава 1. Д обро пожаловать в проект BLFS

Вклад в проект
Многие внесли свой вклад в проект BLFS, причем как непосредствен­
но, так и косвенным образом. На этой странице перечислены все те,
которых мы хотим поблагодарить. Возможно, мы кого-то пропусти­
ли, и если это так, то напишите нам об этом. Большое спасибо всему
сообществу LFS за их помощь в этом проекте.

Редакторы текущ ей версии


• Fernando de Oliveira
• Bruce Dubbs
• Ken Moffat
• Ragnar Thomsen
• Igor Zivkovic

Участники и редакторы предыдущих версий


Список участников слишком большой с тем, чтобы приводить под­
робную информацию о вкладе в проект каждого участника. В течение
многих лет перечисленные ниже участники внесли существенный
вклад в разработку настоящего проекта:
Timothy Bauscher
Daniel Bauman
Jeff Bauman
Andy Benton
Wayne Blaszczyk
Paul Campbell
Nathan Coulson
Jeroen Coumans
Guy Dalziel
Robert Daniels
Richard Downing
Manuel Canales Esparcia
Jim Gifford
Manfred Glombowski
Ag Hatzimanikas
Mark Hvmers
James Iwanek
Armin Krejzi
David Jensen
Jeremy Jones
Вклад в проект

Seth Klein
Alex Kloss
Eric Konopka
Larry Lawrence
DJ Lucas
Chris Lynn
Randy McMurchy
Andrew McMurry
Billy O'Connor
Alexander Patrakov
Olivier Peres
Andreas Pedersen
Henning Rohde
M att Rogers
James Robertson
Henning Rohde
Chris Staub
Jesse Tie-Ten-Quee
Thomas Trepl
Tushar Teredesai
Jeremy Utley
Zack Winkles
Christian W urst

Мы такж е благодарим
Fernando Arbeiza
Miguel Bazdresch
Gerard Beekmans
Oliver Brakmann
Jeremy Byron
Ian Chilton
David Ciecierski
Jim Harris
Lee Harris
Marc Heerdink
Steffen Knollmann
Eric Konopka
Scot McPherson
Ted Riley
Перевод с оригинала от 2013-09-08 08:20:07 -0700
ш тж ж тш г Глава 1. Добро пожаловать в проект В1_Р5

Контактная информация
Пожалуйста, направляйте ваши письма в один из списков рассылки
ВЬР8. Для получения дополнительной информации о доступных
списках рассылок смотрите раздел «Списки рассылок».
Перевод с оригинала от 2012-02-05 21:15:51 -0800
ГЛАВА 2 .
В ажная информация

Настоящая глава используется для объяснения некоторых подходов,


используемых повсюду в данной книге, определения важных понятий
и объяснения некоторых ситуаций, которые у вас *могут возникнуть с
рассматриваемыми пакетами.

Замечания, касающиеся сборки


программ
Те, кто собирал систему LFS, знакомы с общими принципами загруз­
ки и распаковки программ. Однако мы повторим некоторую инфор­
мацию об этом для тех, кто является новичком в сборке своего собст­
венного программного обеспечения.
В каждом наборе инструкций, описывающих установку, имеется
URL, по которому вы можете скачать пакет. Впрочем, мы сохрани­
ли возможность выбора патчей, которые доступны через HTTP. Эти
ссылки потребуются в инструкциях по установке.
Хотя вы можете хранить файлы с исходным кодом где угодно, мы
предполагаем, что вы должны распаковывать пакет и хранить его в
каталоге, созданном в процессе распаковки (каталог ‘build’). Мы так­
же предполагаем, что вы должны распаковать все требуемые патчи и
хранить их в каталоге, на уровень выше каталога ‘build’.
Мы обязаны еще раз дополнительно напомнить, что каждый раз вы
должны начать с чистого дерева исходных кодов. Это значит, что если
у вас во время конфигурирования или компиляции были ошибки, то
прежде, чем делать следующую попытку, обычно лучше удалить де­
рево с исходными кодами, а затем снова его распаковать. Очевидно
этому можно не следовать, если вы опытный пользователь и разбира­
етесь в файлах M a k e f i l e и коде С, но, если есть какие-нибудь сомне­
ния, то начинайте с чистого дерева.
34 Глава 2. Важная информация

Сборка программ в роли


непривилегированного пользователя
(не root)
Золотое правило системного администрирования в Unix - пользо­
ваться ролью суперпользователя только в случае, когда это действи­
тельно необходимо. Поэтому в BLFS рекомендуется собирать про­
граммы в роли непривилегированного пользователя и использовать
роль r o o t только при установке программы. Это правило использу­
ется во всех пакетах в данной книги. Если не указано иное, все инс­
трукции следует выполнять в роли непривилегированного пользова­
теля. В книге будет указано, для каких инструкций вам потребуются
привилегии root.

Распаковка программного обеспечения


Если файл имеет формат .tar и он сжат, то его можно распаковать
одной из следующих команд:
tar -xvf f ile n a m e . t a r . gz
tar -xv f file n a m e .tg z
tar -xvf f i le n a m e . t a r . Z
tar -xvf file n a m e . t a r .b z 2

Зам ечан ие
В командах, приведенных выше, и тех, что будут указаны далее, вы
можете не пользоваться параметром v, если вы не хотите выдавать
список всех файлов по мере того, как они будут распаковываться из
архива. Это, вероятно, ускорит распаковку, а также облегчит про­
смотр ошибок, возникающих при распаковке.

Вы также можете воспользоваться несколько иным способом:


b z c a t f ile n a m e . t a r .b z 2 | ta r -xv

Наконец, вам иногда потребуется распаковывать патчи, в которых,


как правило, формат . t ar не используется. Лучший способ это сде­
лать - скопировать файл патча в каталог, в котором находится ката­
лог ‘build’, а затем в зависимости от того, является ли это файл фай­
лом . gz или . b z 2 ,выполнить одну из следующих команд:
g unzip - v patchnam e.gz
b u n z i p 2 - v p a t c h n a m e .b z 2
Замечания, касающиеся сборки программ 35

Проверка целостности файлов с помощью


контрольной суммы md5sum
Как правило, чтобы убедиться, что загруженный файл является под­
линным и скачан полностью, многие, кто осуществляет сопровожде­
ние пакетов, также предоставляют для файлов контрольные суммы
md5sums. Чтобы проверить контрольную сумму md5sums загружен­
ных файлов, поместите в один и тот же каталог файл и соответст­
вующий ему файл с контрольной суммой md5sums (взятые в сети
желательно из разных мест), и, при условии, что файл file.mdSsum
является контрольной суммой md5sum загруженного файла, выпол­
ните следующую команду:
md5sum - с file.m d5sum

Если есть ошибки, то о них будет выданы сообщения. Обратите


внимание, что в книге BLFS для всех файлов исходных кодов так­
же указаны контрольные суммы md5sums. Чтобы использовать кон­
трольные суммы md5sums, которые есть в BLFS, вы можете создать
файл file .md5sum (поместите на той же самой строке контрольную
сумму md5sum и, через пробел, точное имя загруженного файла) и за­
пустить команду, приведенную выше. Либо просто запустите коман­
ду, приведенную ниже, и сравните результат со значением md5sum,
указанным в книге BLFS.
md5sum <имя_загруженного_файла>

Создание журнальных файлов в процессе


инсталляции
Для более крупных пакетов удобно создать журнальный файл, а не
смотреть на экран в надежде не пропустить определенную ошибку
или предупреждение. Журнальные файлы также удобны для отлад­
ки и сохранения результатов. Следующая команда позволит вам со­
здать журнальный файл, который будет использоваться в процессе
установки. Замените < c o m m a n d > на команду, которую вы намерены
выполнить.
( <command> 2>&1 | t e e c o m p i l e . l o g && e x i t $PIPESTATUS )

2>&1 перенаправляет сообщения об ошибках туда же, куда направлен


стандартный выходной поток. Команда tee позволит перехватить вы­
ходной поток и записать результат в файл. Скобки вокруг команды поз­
К З И И Н Я i l 11 Глава 2. Важная информация

волят запустить команду в отдельной подоболочке и, наконец, команда


exit $PIPESTATUS обеспечит, чтобы результатом этой всей команды
был результат команды <command>, а не результат команды tee.

Автоматизированные процедуры сборки


Есть моменты, когда может пригодиться автоматизированная сборка
пакетов. У каждого есть свои собственные причины использовать ав­
томатизировать сборку и каждый приходит к этому своим собствен­
ным путем. Создание файлов M a k e f il e , скрипты Bash, скрипты Perl
или просто список, из которого вы будете вырезать или в который
вы будете добавлять команды, - это всего лишь некоторые из мето­
дов, которые можно использовать для автоматизизированной сборки
пакетов BLFS. Подробное описание методов автоматизации и кон­
кретные примеры многочисленных способов автоматизации сборки
пакетов в этом разделе рассматриваться не будут. В этом разделе мы
покажем вам, как использовать перенаправление файлов и как ав­
томатически вводить команду yes, что должно должно помочь вам с
идеями, как автоматизировать ваш процесс сборки.
Перенаправление файлов для автоматического
ввода
Во время своего турне по BLFS вы столкнетесь с ситуацией, когда
пакет запрашивает от вас ввод информации. Этой информацией мо­
гут быть конкретные особенности конфигурации, путь к каталогу или
согласие с лицензионным соглашением. Такая ситуация может пред­
ставлять проблему при автоматизации сборки такого пакета. Иног­
да вам будет предложено ввести различную информацию в ответ на
серию вопросов. Один из способов автоматизации такого сценария
состоит в записи нужных ответов в файл и в использовании перена­
правления файлов таким образом, чтобы программа в качестве отве­
тов на вопросы использовала данные, имеющиеся в файле.
Сборка пакета CUPS является хорошим примером, в котором пока­
зано, как перенаправлять файл во входной поток в качестве ответа на
запросы. Этот пример поможет вам автоматизировать процесс сбор­
ки. Если вы запустите тестовый набор, вас попросят ответить на ряд
вопросов, касающихся типа теста, который должен быть запущен, и
наличия у вас каких-либо дополнительных программ, которые может
использовать тест. Чтобы автоматизировать запуск тестов, вы можете
создать файл с вашими ответами, по одному ответу в каждой строке, и
использовать команду, наподобие той, что приведена ниже:
Замечания, касающиеся сборки программ 37

make c h e c k < . . / c u p s - 1 . 1 . 2 3 - t e s t s u i t e _ p a r m s

В сущности, эта команда заставляет набор тестов использовать в


качестве ответов на вопросы ответы, находящиеся в файле. Иногда
вам может потребоваться в итоге сделать несколько попыток и по
ошибкам определить точный формат вашего входного файла, но как
только вы с этим разберетесь, вы сможете использовать результат при
автоматизации сборки пакетов.

Использование команды yes для автоматического


ввода
Иногда вам нужен только один ответ или один и тот же ответ нуж­
но повторить много раз. Во всех этих случаях действительно хорошо
воспользоваться командой yes. Команду yes можно использовать для
формирования ответа (одного и того же) на один или на несколько
запросов. Эту команду можно использовать просто для имитации на­
жатия клавиши Enter, ввода значения клавиши Y или ввода строки
текста. Возможно, проще всего на примере показать использование
этой команды.
Во-первых, создайте короткий скрипт Bash следующим образом:
cat > blfs-yes-testl « "EOF"
# ! /b in /b a sh

echo -n - e " \n \n P lea s e type something (or nothing) and p ress Enter -----> "

r e a d A_STRING

i f t e s t "$A_STRING" = then A_STRING="Just the Enter key was pressed"


e l s e A_STRING="You e n t e r e d ' $A_STRING'"
fi

e c h o - e "\n\n$A_STRIN G\n\n"
EOF
chmod 755 blfs-yes-testl

Теперь запустите скрипт, набрав в командной строке команду


./b lfs-yes-testl. Она будет ждать ответа, в качестве которого можно
вести все, что угодно (или вообще ничего не вводить), а затем нажать
клавишу Enter. То, что было введено, после ввода эхом будет выда­
но на экран. Теперь воспользуйтесь командой yes для автоматизации
ввода ответа:
yes I ./b lfs -y e s -te stl
38 ■ I l l l l Глава 2. Важная информация

Обратите внимание, что благодаря тому, что команда y e s перена­


правляет результаты в скрипт, нажатие клавиши у будет передано в
скрипт. Теперь попробуйте использовать текстовую строку:
yes 'T his i s some t e x t ' | . /b lfs-y e s-te stl

В качестве ответа скрипту будет использована именно эта строка.


Наконец, попробуйте использовать пустую строку (null) :
yes w | . /b lfs-y e s-testl

Обратите внимание, что в результате в скрипт будет просто переда­


но нажатие клавиши Enter. Это полезно в тех случаях, когда в ответе
на запрос достаточно использовать значение, используемое по умолча­
нию. Этот синтаксис используется в инструкциях для пакета Net-tools,
в которых во многих случаях в процессе конфигурации в качестве от­
вета на запросы используются значения, определяемые по умолчанию.
Теперь, если захотите, вы можете удалить тестовый скрипт.

Перенаправление файлов на автоматический


вывод
Чтобы автоматизировать сборку некоторых пакетов, особенно тех,
в которых требуется, чтобы вы постранично читали лицензионное
соглашение, необходимо использовать способ, который позволил бы
избежать необходимости нажимать клавишу для отображения каж­
дой следующей страницы. В таких случаях при автоматизации вам
может помочь перенаправление выходного потока в файл. В преды­
дущем разделе рассказывалось о том, как создать журнальные файлы,
куда перенаправляется вывод процесса сборки. В методе перенаправ­
ления, показанном там, используется команда tee, с помощью кото­
рой выходной поток перенаправляется в файл и одновременно отоб­
ражается на экране. В методе, описываемом здесь, выходной поток
отправляется только в файл.
Опять же, самый простой способ продемонстрировать методику -
привести пример. Во-первых, выполните команду:
Is -1 / u s r / b i n | more

Конечно, поскольку был использован фильтр m o re , вам нужно бу­


дет просматривать выдаваемый текст по одной странице. Теперь ис­
пользуйте ту же команду, но на этот раз перенаправьте вывод в файл.
Вместо того, чтобы указывать имя файла, можно использовать специ­
альный файл /d e v /n u ll, но в этом случае у вас не будет журнального
файла, который можно было бы просмотреть:
Замечания, касающиеся сборки программ

I s -1 / u s r / b i n | more > r e d i r e c t _ t e s t . l o g 2>&1

Обратите внимание, что на этот раз команда сразу же вернет при­


глашение командной строки, не выдавая страницу в выходной поток.
Теперь вы можете удалить журнальный файл.
В последнем примере для того, чтобы обойти необходимость вы­
вода страницы в выходной поток, а затем отвечать у на запрос, будет
использована команды yes в сочетании с перенаправлением вывода.
Эту технологию можно использовать в случае, если нужно пролисты­
вать выдаваемый текст (например, лицензионный договор), а затем
отвечать на вопрос «Do you accept the above?» («Принимаете ли вы
соглашение, указанное выше?»). Для этого примера потребуется еще
один короткий скрипт Bash:
cat > blfs-yes-test2 « "EOF"
# ! /b in /b a sh

Is -1 / u s r / b i n | more

e c h o - n - e " \ n \ n D i d you e n j o y r e a d i n g t h i s ? ( y ,n ) "

r e a d A_STRING

i f t e s t "$A_STRING" = "y"; t h e n A_STRING=//You e n t e r e d t h e 'y ' key"


e l s e A_STRING="You d i d NOT e n t e r t h e 'y ' key"
fi

e ch o - e "\n\n$A_STRING\n\n"
EOF
chmod 755 blfs-yes-test2

Этот скрипт можно использовать для имитации программы, в


которой прежде, чем программа что-либо установит, вам требуется
прочитать лицензионное соглашение, а затем принять соглашение.
Сначала запустите скрипт без какой-либо автоматизации, набрав для
этого команду ./blfs-yes-test2.
Теперь введите следующую команду, в которой используется два
способа автоматизации, что позволяет ее использовать в скрипте ав­
томатической сборки:
yes | . /b lfs-y e s-te st2 > b l f s - y e s - t e s t 2 . l o g 2>&1

Если желаете, то наберите команду tail blfs-yes-test2.log чтобы


увидеть последние строки выданной страницы и убедиться в том,
что в скрипт было передано значение у. После того, как вы будете до­
вольны работой команды, вы можете удалить скрипт и журнальный
файл.
Е ш В И Ш И Глава 2. Важная информация

Наконец, имейте в виду, что есть много способов автоматизации


и/и ли использования скриптов в процесса сборки пакетов. Нет
единственного «правильного» способа. Вы ограничены только своим
воображением.

Зависимости
Для каждого описываемого пакета в BLFS перечисляются известные
зависимости. Они подразделяются на несколько групп с различными
названиями, смысл которых в следующем
• Обязательные означает, что целевой пакет не может быть пра­
вильно собран, если предварительно не будет установлен па­
кет, от которого зависит целевой пакет.
• Рекомендуемые означает, что в BLFS настоятельно рекоменду­
ется сначала установить этот пакет для чистой и беспроблем­
ной сборки целевого пакета, с которым в результате не будет
вопросов ни во время процесса сборки, или во время его вы­
полнения.
• Необязательные означает, что этот пакет можно установить
для получения дополнительных функций. Зачастую в BLFS
будет описываться зависимость и будет указывается, какие в
результате дополнительные функции могут быть получены.

Используйте самые последние пакеты


с исходным кодом
В некоторых случаях вы можете столкнуться в книге с ситуацией,
когда пакет не будет собираться или не будет работать должным об­
разом. Хотя редакторы книги пытались обеспечить, чтобы каждый
пакет в книге собирался и работал должным образом, иногда может
так случиться, что пакет может выпасть поля зрения или окажется
непроверенным с данной версией BLFS.
Если вы обнаружите, что пакет не будет собираться или работать
должным образом, вы должны посмотреть, есть ли более новая вер­
сия пакета. Обычно значит, что вы должны пойти на веб-сайт, на ко­
тором осуществляется поддержка этого пакета, скачать самый све­
жий архив tar и собрать пакет. Если вы не сможете по загрузочному
URL определить веб-сайт пакета, то используйте Google и укажите
в запросе имя пакета. Например, в строке запроса Google наберите:
«имя_пакета download» (без кавычек) или нечто подобное. Иногда,
В чем разница между / usr и /u s r/іо с а і Д ИЁ ДНИИ Д
если набрать «имя_пакета home page», вы в результате сможете найти
веб-сайт пакета.

Еще раз об отладочных символах


В проекте LFS пару раз обсуждался вопрос об отказе от использова­
ния отладочных символо. При сборке пакетов BLFS нет вообще ни­
каких специальных инструкций, в которых этот вопрос обсуждался
бы снова. Вероятно, будет не очень хорошо, если в тот момент, когда
используются исполняемый файл или библиотека, они исчезнут, по­
этому лучше всего воспользоваться отдельным окном с его собствен­
ной средой окружения. Тогда вы можете сделать следующее:
find / { , u s r / } { b i n , l i b , s b i n } - t y p e f - e x e c s t r i p — s t r i p - u n n e e d e d {} \ ;

Если вы установили программы в другой каталог, например, /o p t


или /u s r/local, то и в них вы можете применять данный подход.
Дополнительную информацию смотрите по ссылке http://w w w .
technovelty.org /lin u x /stripping-shared-libraries.html.

Файлы Libtool
Одним из побочных эффектов пакетов, которые используются в
Autotools, в том числе и в libtool, является то, что они создают много
файлов с расширением .1а. Эти файлы не нужны в среде LFS. Если
возникнут конфликты с записями pkgconfig, то они действительно
могут помешать успешной сборке. Вы можете принять решение о пе­
риодическом удалении этих файлов:
find / l i b /u sr /lib - n o t - p a t h "*Image*" - a -name \ * . l a -d elete

Приведенная выше команда удаляет все файлы .1а, за исключением


лишь тех, в пути которых есть «Image» (ImageMagick). Файлы .la ис­
пользуются модулями пакета ImageMagick. Для пакетов, выходящих
за рамки BLFS, могут быть другие исключения.
Перевод с оригинала от 2013-08-02 20:44:50 -0700

В чем разница между


/usr и /usr/local
Должен ли я устанавливать пакет X X X в каталоге / u s r или в ката­
логе / u s r / l o c a l ?
42 Глава 2. Важная информация

Ответ на этот вопрос не очевиден в базовой системе LFS.


В традиционных системах Unix в каталоге / u s r обычно хранят­
ся файлы, которые поставляются в составе дистрибутива, а дерево
/u s г / l o c a l является свободным и им может распоряжаться местный
администратор. Единственное жесткое и постоянное правило, что
дистрибутивы Unix не должны использовать каталог / u s r / l o c a l , за
исключением, возможно, создания внутри него основных подкатало­
гов.
В дистрибутивах Linux, таких как Red Hat, Debian, и т. д., применя­
ется правило, согласно которому управление каталогом / u s r осущест­
вляется системой управления пакетами дистрибутива, а управление
каталогом / u s r / l o c a l - нет. Таким образом, база данных менеджера
пакетов знает о каждом файле внутри каталога /u s r.
Пользователь LFS собирает свою собственную систему, поэтому
решить, где завершается система и начинаются локальные файлы
конкретной системы, не совсем просто. Поэтому выбор должен быть
такой, чтобы можно было упростить администрирование системы.
При распределении файлов между каталогами / u s r и / u s r / l o c a l
нужно иметь в виду следующее.
• В сети из нескольких машин, на которых запущены только
системы LFS или системы LFS и другие дистрибутивы Linux,
каталог / u s r / l o c a l должен использоваться для хранения па­
кетов, которые являются общими для всех компьютеров в сети.
Он может быть смонтирован как раздел NFS или может быть
зеркалом одного и того же сервера. Здесь понятие локальный
(local) указывает на конкретное место.
• В сети из нескольких компьютеров, на которых работают иден­
тичные системы LFS, в каталоге / u s r / l o c a l можно хранить
пакеты, которые различны на различных машинах. В этом
случае понятие локальный (local) относится к отдельным ком­
пьютерам.
• Даже на одном компьютере каталог / u s r / l o c a l может быть
полезен, если у вас одновременно установлены несколько дис­
трибутивов, и вы можете поместить в этот каталог пакеты, ко­
торые одинаковы во всех дистрибутивах.
• Либо вы, возможно, регулярно пересобираете вашу систему
LFS и хотите поместить в этот каталог файлы, которые вы не
хотите каждый раз пересобирать. Таким образом, вы можете
каждый раз стирать все файлы системы LFS и начать с чистого
раздела, ничего при этом не теряя.
Загрузочные скрипты BLFS 43

Некоторые спрашивают, почему бы не использовать свое собствен­


ное дерево каталогов, например, / u s r / s i t e , а не / u s r / l o c a l ?
Нет ничего, чтобы вам помешало сделать это - создавать свои
собственные деревья каталогов, однако это усложнит установку но­
вого программного обеспечения. Автоматические инсталляторы час­
то ищут зависимости в каталогах / u s r и / u s r / l o c a l и, если искомый
файл находится в каталоге / u s r / s i t e , инсталлятор, возможно, не
найдет его, если вы не укажете, где конкретно его искать.
Какова позиция BLFS по этому поводу?
Все инструкции, изложенные в BLFS, устанавливают программы в
каталог / u s r , а для некоторых конкретных пакетов с помощью допол­
нительных инструкций установка осуществляется в каталог /o p t.
Перевод с оригинала от 2007-04-04 19:42:53 +0000

Необязательные патчи
По мере того, как вы будете изучать различные разделы книги, вы
обнаружите, что в книге иногда указываются патчи, которые необхо­
димы для успешной и надежной установки пакетов. Общая стратегия
книги состоит в том, что указываются патчи, которые соответствуют
одной из следующих категорий:
• исправляют проблему с компиляцией;
• исправляют проблему с безопасностью;
• исправляют неверную функциональность.
Короче говоря, в книге указываются только патчи, которые либо
обязательные, либо рекомендуемые. Есть подпроект Patches, в кото­
ром собраны различные патчи (в том числе и те патчи, на которые в
книге есть ссылки), позволяющие сконфигурировать вашу систему
LFS так, как вам нравится.
Перевод с оригинала от 2007-04-04 19:42:53 +0000

Загрузочные скрипты BLFS


В пакете BLFS Bootscripts находятся инициализационные скрипты,
которые используются на протяжении всей книги. Предполагается,
что вы будете использовать пакет BLFS Bootscripts вместе с совмес­
тимым с ним пакетом LFS-Bootscripts. Подробности, связанные с па­
кетом LFS-Bootscripts, смотрите в главе 7 книги LFS.
Е м Я Н Н я В П ! Глава 2 - Важная информация

Инф ормация о пакете

• Загрузка пакета: http://www.linuxfrom scratch.org/blfs/down-


loads/svn/blfs-bootscripts-20130908.tar.bz2
Пакет BLFS Bootscripts будет использоваться на протяжении всей
книги BLFS для запуска скриптов. В отличие от LFS, в пакете BLFS
Bootscripts каждый инициализационный скрипт предназначен для
решения своей собственной конкретной задачи. Рекомендуется со­
хранять каталог с исходными кодами пакета до тех пор, пока не будет
завершена сборка вашей системы BLFS. Когда потребуется скрипт из
пакета BLFS Bootscripts, просто перейдите в этот каталог и в роли
пользователя r o o t выполните необходимую команду make install-
<init-script>. Эта команда установит скрипт init в надлежащее место
(вместе с всеми необходимыми другими вспомогательными конфигу­
рационными скриптами), а также создаст на соответствующем уров­
не запуска run-level символические ссылки для запуска и остановки
сервиса.

Зам ечан ие
Желательно, чтобы перед тем, как устанавливать загрузочные
скрипты, вы просмотрели каждый из них с тем, чтобы удостоверить­
ся, что они соответствуют вашим потребностям. Также проверьте,
что символические ссылки, создаваемые скритами для запуска и
остановки сервисов, отвечают вашим задачам.

Перевод с оригинала от 2007-04-04 19:42:53 +0000

Библиотеки: статические или


динамически разделяемые?
Первоначально библиотеки были просто архивом подпрограмм, из
которых необходимые процедуры извлекались и компоновались с ис­
полняемой программой. Такие библиотеки считаются статическими
библиотеками (ИЬкю.а). На некоторых старых операционных систе­
мах они являются единственным типом имеющихся библиотек.
Почти на всех платформах Тлпих есть и динамически разделяемые
библиотеки (НЬАоо.зо) - одна копия библиотеки загружается в вир­
туальную память и совместно используется всеми программами, ко­
торые обращаются к ее функциям. В этом случае более эффективно
используется память.
Библиотеки: статические или динамически разделяемые? jj| Д И И И Ш Л

В прошлом, наиболее важные программы, такие как командная обо­


лочка, часто компоновались статически с тем, чтобы существовала ми­
нимальная возможность восстановления системы в в случае, даже если
были повреждены динамически разделяемые библиотеки, например,
libc.so (например, перемещения их в каталог l o s t + f o u n d в результате
выполнения операции fsck после некорректного выключения систе­
мы). В настоящее время большинство людей, если им нужно восста­
новить систему, пользуются альтернативными вариантами установки
системы или используют Live CD. Журналируемые файловые также
уменьшают вероятность возникновения проблем такого рода.
Разработчики, по крайней мере пока осуществляют разработку,
часто предпочитают использовать статические версии библиотек, с
которыми они компонуют код.
В книге есть различные места, где используются такие конфигу­
рационные переключатели, как -disable-static, и есть места, где об­
суждается возможность использования системных версий библиотек
вместе версий, входящих в другие пакеты. Основная причина этого
заключается в более простом обновлении библиотек.
Если пакет скомпонован с динамической библиотекой, обновление
до более новой версии библиотеки происходит автоматически сразу,
как только устанавливается более новая библиотека и запускается
или перезапускается программа (при условии что основной номер
версии не меняется, например, происходит переход с версии libfoo.
so.2.0 на версию libfoo.so.2.1; переход на версию libfoo.so.3 потребу­
ет перекомпиляции - для того, чтобы найти, в каких программах ис­
пользуется старая версия, можно использовать ldd). Если программа
скомпонована со статической библиотекой, то программу всегда нуж­
но будет перекомпилировать. Если вам известно, какие программы
скомпонованы с конкретной статической библиотекой, то это вызо­
вет лишь некоторое неудобство. Но обычно вам не будет известно,
какие программы необходимо перекомпилировать.
Большинство библиотек являются динамически разделяемыми, но
если вы делаете что-то необычное, например, переместите разделяе­
мую библиотеку в /lib, случайно разорвав символическую ссылку
.so, находящуюся в /usr/lib, и у вас в / li b есть статическая биб­
лиотека, то статическая библиотека, когда она потребуется, будет без
всяких сообщений прикомпонована к программам.
Один из способов определить, что используется статическая биб­
лиотека, это применять ее в конце установки каждого пакета. Напи­
шите скрипт, который находит все статические библиотеки в каталоге
/ u s r / l i b или там, где вы их установили, а затем либо перемешает
Ш1ШH I ЯЛ 11 Й?1, 3 Глава 2. Важная информация

их в другой каталог, чтобы их больше не мог найти редактор связей,


либо переименуйте их так, чтобы библиотека libfoo.a стала, например,
библиотекой libfoo.a.hidden. Затем статическая библиотека может
быть временно восстановлена, если в ней действительно возникнет
необходимость, и может быть идентифицирован пакет, в которой
она необходима. Если вы так сделаете, то для упрощения компиля­
ции, вы можете исключить некоторые статические библиотеки, вхо­
дящие в glibc ( l i b c _ n o n s h a r e d . a , libg.a, li b i e e e . a , libm.a,
l i b p t h r e a d _ n o n s h a r e d .a, librpcsvc.a, l i b s u p c + + .a).
Если вы воспользуетесь этим подходом, вы можете обнаружить,
что статические библиотеки используются в большем количестве па­
кетов, чем вы ожидали. Именно так обстоит дело с пакетом nettle-2.4 с
его используемой по умолчанию конфигурацией типа static-only: это
требовалось для пакета GnuTLS-3.0.19. но также требовалось и для
компоновки пакетов, в которых использовался пакет GnuTLS, напри­
мер, glib-networking-2.32.3.
Во многих пакетах некоторые их обычные функции помещаются в
статическую библиотеку, которая используется только в программах
внутри пакета и которая, самое главное, не устанавливается как отде­
льно используемая от пакета. С такими внутренними библиотеками
не возникнет проблемы в случае, если пакет должен быть пересобран
для исправления ошибки или уязвимости, поскольку с ними нечего
другого не скомпоновано.
Когда в проекте BLFS упоминаются системные библиотеки, то это
означает динамически разделяемые версии библиотек. В некоторых па­
кетах, таких как, Firefox-23.0.1 и ghostscript-9.10, есть много других биб­
лиотек. Когда они компонуются с этими библиотеками, то компоновка
статическая, поэтому программы будут большего размера. Версия биб­
лиотек, с которыми поставляются пакеты, часто более старая, чем вер­
сия, используемых в системе, так что в ней могут быть ошибки - иногда
разработчики сталкиваются с необходимостью исправления ошибок в
этих библиотеках, в других случаях они этого не делают.
Иногда, решение использовать системные библиотеки является
более простым. В других случаях, для этого может потребоваться из­
менить системную версию библиотеки (например, libpng-1.6.4. если
используется Fircfox-23.0.1Y Иногда пакет поставляется со старой
библиотекой и его нельзя компоновать с новой версией, но можно
компоновать с более старой версией. В этом случае, в проекте BLFS,
как правило, просто используется версия, поставляемая с пакетом.
Иногда в пакет входят библиотеки, которые больше не разрабатыва­
ются отдельно, или основное направление их разработки уже другое,
Вопросы, касающиеся локален

и те версии, которые есть в пакете, нигде больше не используются.


В этих случаях вы можете принять решение использовать статичес­
кую библиотеку, входящую в состав пакета, даже если вы обычно
предпочитаете использовать системные библиотеки.
Замечания для пользователя:
http://wiki.linuxfrom scratch.org/blfs/w iki/libraries
Перевод с оригинала от 2013-02-11 18:51:17 +0000

Вопросы, касающиеся локалей


На этой странице приведена информация о проблемах, связанных
с локалями. Ниже будет приведен общий обзор ситуаций, которые
могут возникнуть, когда вы конфигурируете систему, использующую
различные локали. Многие (но не все) существующие проблемы, свя­
занные с локалями, могут быть расклассифицированы и помещены в
одну из групп, перечисленных ниже. Степень серьезности проблемы
определяется в соответствие со следующими критериями:
• Критическая: Программа не выполняет свою основную функ­
цию. Исправление может оказаться очень сложным, лучше по­
искать замену.
• Высокая: Часть функций, для которых предназначена про­
грамма, использовать нельзя. Если эти функции необходимы,
то лучше поискать замену.
• Низкая: Программа работает во всех типичных случаях, но не
хватает некоторых функций, для которые обычно есть эквива­
лентная замена.
Если известно, что для конкретного пакета есть вариант решения
проблемы, он будет указан на домашней странице пакета. Самую пос­
леднюю информацию, касающуюся вопросов, связанных с локалями,
смотрите в «Замечаниях для пользователя» на BLFS Wiki.

Необходимая кодировка является


недопустимой в программе
Серьезность: Критическая
В некоторых программах требуется, чтобы пользователь указал ко­
дировку символов для их входных или выходных данных, причем
присутствует только ограниченный выбор кодировок. Это параметр
-х в пакетах a2ps-4.14 и Enscript-1.6.6. параметр - i n p u t - c h a r s e t в
непропатченном пакете Cdrtools и наборы символов, предлагаемые
KJ 3I t l l S l 11 j ] j | | Глава 2. Важная информация

для отображения меню в пакете Links-2.7. Если требуется кодиров­


ка, не указанная в списке, программы обычно становятся совершенно
непригодными для использования. Для неинтерактивных программ
проблему можно обойти, если преобразовать документ в поддержива­
емый входной набор символов перед отправкой его в программу.
Проблему такого рода можно решить либо с помощью патча, при­
меняемого к исходной программе, который добавляет требуемую
поддержку для отсутствующей кодировки, либо с помощью другой
программы, которая заменит исходную.

Внутри самой программы определяется,


в какой кодировке должны быть внешние
документы
Серьезность: Высокая для нетекстовых документов и низкая
для текстовых документов
В некоторых программах, например, в папо-2.3.2 или ТОЕ-3.7 пред­
полагается, что в документах всегда используется кодировка, задава­
емая текущей локалыо. Хотя это предположение может быть спра­
ведливо для документов, созданных пользователем внутри системы,
это может оказаться неверным для внешних документов. Когда это
предположение оказывается неверным, символы, не являющиеся
символами ASCII, будут отображаться неправильно и документ не
удастся прочитать.
Если внешний документ является исключительно текстовым, его
можно преобразовать в кодировку текущей локали при помощи прог­
раммы iconv.
Для нетекстовых документов такое преобразование сделать не­
возможно. Чаще всего такая ситуация возможна с документами, в
которых де-факто используются стандарты операционной системы
Microsoft Windows. Примером такой проблемы являются теги ID3vl
в файлах MP3 (более подробную информацию смотрите на страни­
це BLFS Wiki ID 3vlCoding). Для этих случаев, единственным реше­
нием является поиск другой программы, в которой такая проблема
отсутствует (например, такой, в которой вы можете указать нужную
кодировку документа).
Среди пакетов BLFS, эта проблема имеется в пакетах папо-2.3.2,
ТОЕ-3.7 и во всех медиаплейерах, за исключением Audacious-3.4.1.
Еще одна проблема из этой категории заключается в том, что некто
не может прочитать документы, которые вы ему послали, поскольку
Вопросы, касающиеся локален 'ш Ш Ы Ш Ш Ш Ш Ш Ш шЯ А Л
его операционная система по другому настроена для обработки ко­
дировок символов. Часто это может быть связано с тем, что с дру­
гой стороны используется система Microsoft Windows, в которой для
конкретной страны используется только одна кодировка символов.
Например, из-за этого возникают проблемы с документами ТеХ в ко­
дировке UTF-8, созданными в Linux. В Windows большинство при­
ложений будет считать, что эти документы были созданы в 8-битной
кодировке Windows, используемой по умолчанию. Более подробную
информацию смотрите на странице Wiki teTeX.
В исключительных случаях вопросы совместимости с кодировкой
Windows можно решить, только если запускать программы Windows
под Wine.

Программа использует или создает имена


файлов в неправильной кодировке
Серьезность: Критическая
Стандарт POSIX обязывает, чтобы в качестве кодировки имен фай­
лов использовалась кодировка, определяемая настройкой текущей
локали, указываемой в LC_CTYPE. Эта информация хорошо скрыта
и определяет поведение программ Таг и Cpio. Некоторые программы
по умолчанию используют эту информацию неправильно (или просто
не могут получить эту информацию). В результате они создают имена
файлов, которые затем не удается правильно отображать командой
i s , либо они отказываются принимать имена файлов, которые коман­
да i s показывает правильно. Для библиотеки GLib-2.36.4 проблему
можно исправить с помощью задания в переменной среде окружения
g _ f i l e n a m e _ e n c o d i n g специального значения “@1оса1е”. Программы,
пользующиеся библиотекой Glib2 и не учитывающие значение этой
переменной, работают неправильно.
Эта проблема есть в пакетах Zip-З.О и UnZip-6.0. поскольку в них
жестко задана используемая кодировка имен файлов. В пакете UnZip
есть жестко закодированная таблица преобразования кодировок
СР850 (DO S) и ISO-8859-1 (UNIX); таблица используется при рас­
крытии архивов, созданных под DOS или Microsoft Windows. Но та­
кое решение хорошо работает в случае, когда используется настройка
US, и не работает в случае использования локали UTF-8. В разархи­
вированных файлах символы, не являющиеся символами ASCII, бу­
дут искажены.
Общее правило, позволяющее избежать проблем этого класса,
состоит в отказе от установки неправильно работающих программ.
50 Глава 2. Важная информация

Если это невозможно, то можно воспользоваться инструментальной


программой convmv, работающей из командной строки, чтобы испра­
вить имена файлов, созданные такими неправильно работающими
программами, либо специально искажать имена файлов так, чтобы с
ними могли работать такие программы.
В других случаях аналогичная проблема вызвана импортом имен
файловизсистемы,имеющейдругуюлокаль,припомощиинструмента,
не учитывающей значения локалей (например, пакет OpenSSH-б.ЗрІУ
Чтобы при передаче файлов в систему с другой локалью избежать
искажения символов, не являющихся символами ASCII, можно вос­
пользоваться одним из следующих способов
• Передать файлы любым способом, а затем исправить их имена
с ПОМОЩЬЮ программы co n vm v.
• На передающей стороне, создать архив tar с использованием
переключателя — f or ma t = p o s i x , указываемого для команды
tar (в будущих версиях tar это будет происходить по умолча­
нию).
• Отправить файлы в качестве приложения к письму. В почто­
вых клиентах указывается кодировка подсоединенных имен
файлов.
• Записать файлы на съемный диск, отформатированный в фай­
ловых системах FAT или FAT32.
• Передать файлы с помощью Samba.
• Передать файлы по FTP с использованием сервера, поддержи­
вающего протокол передачи данных RFC2640 (в настоящее
время это означает сервер wu-ftpd, у которого плохая история,
касающаяся безопасности), и клиента (например, lftp).
Последние четыре способа работают, поскольку имена фай­
лов будут автоматически преобразованы из локали отправителя в
UNICODE и будут запомнены или отправлены в этом виде. Затем
они будут прозрачно преобразованы из UNICODE в кодировку ло­
кали получателя.

Программа разрывает многобайтовые


символы или неправильно подсчитывает
количество символов
Серьезность: Высокая или критическая
Многие программы были написаны в то время, когда многобайтовые
локали еще не были распространены. В таких программах предпола-
Вопросы, касающиеся локалей

гается, что для хранения одного символа может использоваться тип


данных «char» языка С, который представляется одним байтом. Кро­
ме того, в них предполагается, что любая последовательность сим­
волов является допустимой строкой, и что каждый символ занимает
одну позицию в такой строке. Такие предположения абсолютно не со­
ответствуют локалям UTF-8. Это проявляется в том, что программа
преждевременно обрезает строки (т. е. использует 80 байтов вместо
80 символов). Терминальные программы неверно устанавливают кур­
сор на экране, не реагируют на нажатие клавиши «Backspace», когда
требуется стереть один символ, и оставляют повсюду нежелательные
символы, когда происходит обновление экрана, что, как правило,
обычно приводит к полному беспорядку на экране.
Как и со всеми другими случаями, связанными с внедрением но­
вых концепций в старые проектные решения, исправление проблем
такого рода с программистской точки зрения является трудоемкой
задачей. В данном случае надо перепроектировать все структуры дан­
ных для того, чтобы учесть тот факт, что полный символ может зани­
мать различное количество элементов типа «char» (или заменить его
на wchar_t и выполнять конвертирование по мере необходимости).
Кроме того, для каждого вызова функции «strlen» и других подобных
функций нужно выяснить, определяют ли они количество байтов, ко­
личество символов, или ширину строк. Иногда быстрее с нуля напи­
сать программу с теми же самыми функциями.
Среди пакетов BLFS эта проблема встречается в пакете xine-ui-
Q.99.7 и во всех командных оболочках.

Пакет устанавливает страницы


руководств в неправильной
или в неотображаемой кодировке
Серьезность: Низкая
Как было указано на странице LFS Man DB, в LFS ожидается, что
страницы руководств кодируются в специальной кодировке (обычно
8-битовой), зависящей от конкретного языка. Тем не менее, в некото­
рых пакетах переведенные страницы руководств устанавливаются в
кодировке UTF-8 (например, в пакете Shadow, с которым вы уже име­
ли дело), или на языках, которых нет в таблице. Не все пакеты BLFS
были проверены на соответствие с требованиями их включения в сис­
тему LFS (большинство было проверено, и для пакетов, о которых
известно, что устанавливаемые страницы руководств не соответству­
ШХМШШШШШШ Глава 2. Важная информация

ют требованиям, в книге приведены исправления). Если вы обнару­


жили, что страницы руководств, устанавливаемые в каком-нибудь из
пакетов BLFS, имеют неправильную кодировку, пожалуйста, удалите
их или преобразуйте в кодировку, которая вам нужна, и сообщите об
этой ошибке разработчикам BLFS.
Вы можете легко проверить вашу систему на наличие страниц ру­
ководств, не соответствующих требованиям; для этого скопируйте
следующий короткий скрипт в любое удобное место,
# !/b in /sh
# Начало c h e c k m a n .s h
# И спользование: find / u s r / s h a r e / m a n - t y p e f | x a r g s c h e c k m a n .s h
f o r a i n "$@"
do
# Эхо "C he ck in g $ a . . . "
# Страница ру к о в о д ст в а в чистой кодировке ASCII
# (возможно, кроме комментариев) - э т о OK
grep - v \ \ \ " ' "$а" | iconv - f US-ASCII - t US-ASCII > / d e v / n u ll 2>&1 \
&& c o n t i n u e
# Страница ру к о в о д ст в а не в коде UTF-8 — э т о OK
i c o n v - f UTF-8 - t UTF-8 "$a" > / d e v / n u l l 2>&1 | | c o n t i n u e
# найдена страница рук о в о д ст в а в коде UTF-8
# — э т о плохо.
e c h o "UTF-8 manual p a g e : $a" >&2
done
# Конец c h e c k m a n .s h

а затем выполните следующую команду (изм ените команду, приве­


денную ниже, если в переменной среды окруж ения PATH не указан
путь к-скрипту checkman.sh):
find / u s r / s h a r e / m a n - t y p e f I x a r g s c h e c k m a n .s h

Обратите внимание, что если у вас есть страницы руководств, ко­


торые установлены не в каталоге / u s r / s h a r e / m a n (например, в / u s r /
l o c a l/s h a r e / m a n ) , нужно изменить указанную выше команду так,
чтобы в ней указать это другое место.
Перевод с оригинала от 2013-02-11 18:51:17 +0000

За пределами В1_РЗ
Пакеты, устанавливаемые в этой книге, являются лишь верхушкой
айсберга. Мы надеемся, что опыт, который вы получите в проектах
и В Ы ^ , поможет вам в компилировании, установке и настройке
пакетов, не включенных в эту книгу.
За пределами BLFS 53

Если вы хотите установить пакет в другом месте, а не в каталогах


/ или / u s г, то вы не сможете воспользоваться настройками среды окру­
жения, определяемых на многих машинах по умолчанию. Следующие
примеры должны помочь исправить эту ситуацию. В примерах охвачен
весь спектр настроек, которые, возможно, потребуется изменить, но в
каждой конкретной ситуации их не надо изменять все сразу.
• Добавьте $ P R E F I X / b i n в переменную PATH.
• Для пользователя r oo t добавьте $ P R E F I X / s b i n в переменную
PATH.
• Добавьте $PREFIX/lib В / e tc / l d .S O . c o n f или в переменную
ld _ l I в r a r y _ p a t н.
Прежде, чем использовать второй вари-
ант, посмотрите http://xahlee.org/U nixR esource_ dir / /ldpath.
html. Если вы изменили / e t c / l d . s o .conf, не забудьте изме­
нить / e t c / I d . so . cache, выполнив для этого команду ldconfig
в роли пользователя root.
• Добавьте $ P R E F I X / m a n в / e t c / m a n _ d b .c o n f или в переменную
M A N PATH.
• Добавьте $PREFIX/i n f o В переменную INFOPATH.
• Добавьте $ PR E F I X / l i b / p k g c o n f i g В переменную Р KG_CONFI G_
path. В настоящее время некоторые пакеты устанавливают
файлы .рс в каталог $ PR EF lX /share/pkgconfig, так что, воз­
можно, вам нужно будет также указать и этот каталог.
• Если компиляция пакетов зависит от пакета, который вы
установили, то в переменную c p p f l a g s добавьте $ p r e f i x /
include.
• Если компиляция пакетов зависит от библиотеки, которую вы
установили, ТО В переменную LDFLAGS добавьте $PR E FIX /lib.
Если вы ищете пакет, которого нет в книге, вы можете воспользо­
ваться следующими способами поиска нужного пакета.
• Если вы знаете имя пакета, то поищите его с помощью Freecode
на http://freecode.com /. Также используйте поисковик Google
на h ttp ://google.com/ . Иногда ссылку на пакет r p m можно
найти на h ttp ://rp m fin d .n et/. а на пакет deb - на h ttp://w \vw.
debian.Org/distrib/packagcs#scarch_packagcs.
• Если вы знаете имя исполняемого файла, но не знаете имя па­
кета, в который он входит, сначала попытайтесь нейти его в
Google по имени исполняемого файла. Если результатов будет
слишком много, попробуйте выполнить поиск данного испол­
няемого модуля в репозитарии Debian на http://w w w .debian.
org/distrib/packages# search_contents.
илш ш т Глава 2. Важная информация

Некоторые общие рекомендации по работе с новыми пакетами:


• Во многих самых новых пакетах используется методика
./configure && make && make install. С помощью команды
./configure —help можно получить описание параметров, ко­
торыми молено пользоваться для конфигурирования.
• В большинстве пакетов есть документация, описывающая ком­
пиляцию и установку пакета. Некоторые из документов качест­
венные, некоторые - не очень. Дополнительные и обновленные
рекомендации, связанные с компиляцией и конфигурировани­
ем пакета, можно найти на домашней странице пакета.
• Если у вас возникли проблемы, связанные с компиляцией па­
кета, попытайтесь поискать ошибку в архивах LFS на h ttp ://
www.linuxfromscratch.org/search.html или, если ее там найти
не удается, попробуйте выполнить поиск с помощью Google.
Часто в дистрибутивах пакетов проблема уже будет решена
(многие из тех, кто пользуется версиями пакетов, предназна­
ченных для разработчиков, часто обнаруживают изменения
раньше, чем те из нас, которые обычно используют версии ста­
бильных релизов). Но будьте осторожны - все сборщики па­
кетов, как правило, склонны использовать патчи, которые уже
не являются необходимыми, и им приходится использовать их
с тем, чтобы вносить исправления, которые необходимы толь­
ко из-за их конкретного выбора метода, с помощью которого
они собирают пакет. Возможно, вам придется искать глубже
с тем, чтобы найти исправление для версии пакета, которую
вы пытаетесь использовать, или даже найти пакет (с именем,
которое не такое, как вы бы могли ожидать, например, у пакета
ghostscript часто в названии есть префикс или суффикс), при­
чем в этом вам могут помочь следующие замечания:
° Arch http://www .archlinux.org/packages/ - введите имя
пакета в поле «Ключевые слова», выберите имя пакета,
выберите один из полей «SVN Entries», затем выберите
PKGBUILD с тем, чтобы увидеть, как собирается этот пакет
или разберитесь со всеми патчами.
0 Dcbian ftp://ftp.uk.debian.org/dcbian/pool (используйте
версию для вашей страны, если она имеется) - исходный
код будет запакован в архивы .tar.gz (основной исходный
код с расширением . orig, либо с dfsg, если в коде есть
фрагменты, созданные согласно правилам создания сво­
бодного кода debian), которые могу дополняться версия-
ми архивов в .diff.gz или .tar.gz. В этих дополнениях часто
видно, как пакет был собран, и в них могут быть патчи.
В версиях .diff.gz все патчи создают файлы в каталоге
debian/patches.
Fedora http://pkgs.fedoraproject.org/cgit/ - этот сайт до
сих пор иногда перегружен, и в нем несколько трудно
ориентироваться (почти 300 страниц, связанные номера­
ми), но это легкий способ поиска файлов .spec и патчей.
Если вы знаете имя пакета (например, mesa.git) вы мо­
жете добавить его к URI, чтобы добраться до него. Если
страница недоступна, попробуйте поискать локальное
зеркало ftp.fedora.com (основной сайт, как правило, не­
доступен, если не отвечает fedora cgit ) и скачать архивы
rpm с исходным кодом с тем чтобы увидеть, что они де­
лают.
Gentoo - зеркала для сборок и патчей, похоже, хорошо
спрятаны и они часто меняются. Кроме того, если вы на­
шли зеркало, вы должны знать, к какому каталогу припи­
сано приложение. Сами файлы со сборками можно найти
в http://packages.gentoo.org/ - используйте поле поиска.
Если есть какие-либо патчи, то в зеркале они будут ле­
жать в каталоге f ile s /. В зависимости от вашего браузера
или зеркала, вам, возможно, потребуется скачать файлы
ebuild с тем, чтобы их можно было прочитать. Пройдитесь
по файлу в поисках комбинаций команд псевдокода /
команд командной строки - в частности поищите коман­
ды sed и возможные предупреждения, выдаваемые в ка­
честве сообщений в таких функциях, как dodoc.
openSUSE http://dow nload.opensiise.org/facto ry /repo/
src-oss/suse/srcA кажется, исходные коды доступны
только в виде пакетов rpms.
Slackware - официальный просмотрщик пакетов в на­
стоящее время не работает. На сайте по ссылке h ttp ://
slackbuilds.org/ есть текущие и предыдущие версии па­
кетов в неофициальном репозитории со ссылками на
домашние странички, ссылками для скачивания и не­
которым отдельными файлами, в частности файлами
.SlackBu i ld .
Ubuntu ftp://ftp.ubuntu.com /ubuntu/pool/ - смотрите
замечания, касающиеся debian, приведенные выше.
56 Глава 2. Важная информация

Если это не даст результатов, обратитесь к списку рассылок


blfs-support.

Совет
Если вы обнаружили пакет, который доступен только в форма­
те . d e b или .rpm, то воспользуйтесь двумя небольшими скрип­
тами rpm2targz и deb2targz, доступными на http://downloads.
iinuxfromscratch.org/deb2tarqz.tar.bz2 и http://downloads.
linuxfromscratch.org/rpm2tarqz.tar.bz2. которые преобразуют эти ар­
хивы в простой формат t a r . gz.
Вы можете также найти полезным скрипт rpm2cpio. Версия для
языка Perl есть в архивах ядер Linux по ссылке http://lkm l.indiana.
edu/hvperm ail/linux/kernel/0210.2/att-0093/01-rpm 2cpio. которая
работает для большинства пакетов rpm с исходным кодом. Скрипт
rpm2targz будет пользоваться скриптом или двоичным файлом
rpm2cpio если он прописан в путях доступа. Учтите, что rpm2cpio
распакует пакет rpm с исходным кодом в текущем каталоге и со­
здаст архив tarball, файл спецификаций и, возможно, патчи или
другие файлы.

Перевод с оригинала от 2013-08-26 08:43:33 -0700


Постпроектная
настройка
и дополнительные
программы
^

ГЛАВА 3.
Вопросы
конфигурирования,
не вошедшие в LFS

Целью проекта LFS является создание системы, на основе которой вы


сможете продолжить дальнейшую сборку Есть несколько вопросов,
задаваемых многими о том, что нужно делать с системой сразу, как
только она установлена. В данной главе мы надеемся ответить на эти
вопросы.
Большинству, кто не знаком с основами Unix-подобных систем,
принцип использования в Linux текстовых файлов в качестве конфи­
гурационных кажется несколько странным. В Linux почти все конфи­
гурирование осуществляется с помощью манипуляций с текстовыми
файлами. Большая часть этих файлов расположена в подкаталогах
каталога / e t c . Часто есть графические программы конфигурирова­
ния различных подсистем, но большинство из них являются просто
удобным интерфейсом, используемым для редактирования тексто­
вых файлов. Преимущество такого исключительно текстового кон­
фигурирования в том, что вы можете изменять параметры с помощью
вашего любимого текстового редактора, будь то vim, emacs или лю­
бой другой редактор.
Первое, что нужно сделать, это создать спасательный загрузочный
носитель, что описывается в разделе «Создание специального загру­
зочного носителя». Это сделать крайне необходимо. Затем систему
нужно сконфигурировать так, чтобы в нее было проще добавлять но­
вых пользователей. Это нужно сделать сразу после создания спаса­
тельного загрузочного носителя, поскольку это влияет на то, что вы
будете делать в следующих двух разделах - «Файлы запуска команд­
ной оболочки Bash» и «Файлы /etc/vim rc и -/.vim rc».
Создание специального загрузочного носителя ' кШШВ Д И й И И К Ь Д
После этого можно обратиться к оставшимся темам в разделах
«Настраиваем ваш вход в систему с помощью /etc/issue», «Файл
/etc/sh ells» , «Генерация случайных чисел», «Сжатие страниц Man
и Info», «Пакет Autofs-5.0.7» и «Конфигурирование сетевых файло­
вых систем» и ознакомиться с ними в указанном порядке. Они не так
сильно связаны с остальными темами, изложенными в данной главе.

Создание специального
загрузочного носителя
Необходимость спасательного
загрузочного носителя
В настоящем разделе, по существу, рассказывается о создании спаса­
тельного носителя, предназначенного для восстановления системы.
Как и следует из термина спасательный, в системе возможны пробле­
мы, обычно связанные с потерей информации о дисковых разделах
или с повреждением файловых систем, из-за которых система пере­
стает нормально загружаться и /и ли работать. По этой причине, вы
не должны зависеть от ресурсов, размещенных на спасаемой системе.
Рискованно предполагать, что будет доступен какой-нибудь опреде­
ленный раздел или весь жесткий диск.
В современной системе есть много устройств, которые можно ис­
пользовать в качестве спасательного носителя: дискеты, компакт-
диски, флешки USB или даже сетевой карты. Какое из них вы будете
использовать в качестве спасательного носителя, зависит от вашего
компьютера и BIOS. В прошлом, мы обычно в качестве спасательных
носителей рассматривали дискеты. Сегодня, во многих системах даже
нет устройств чтения дискет.
Сборка спасательного носителя является сложной задачей. Во
многом она эквивалентна созданию всей системы LFS. Кроме того,
эта процедура была бы повторением того, что уже было проделано.
По этим причинам процедуры сборки образа спасательного носителя
здесь не приводятся.

Создание спасательной дискеты


Программы в современных системах стали большими. В системе
Linux 2.6 больше не поддерживается загрузка с дискеты. Несмотря на
это, есть решения, позволяющие использовать старые версии Linux.
Одним из лучших является вариант Tom’s R oot/B oot Disk, имеющий­
П Н !t a l l Глава 3. Вопросы конфигурирования, не вошедшие в LFS

ся на http :// www.t oms.ne t/rb / . В нем предлагается очень маленький


образ системы Linux, помещающийся на одной дискете, и есть воз­
можность, если это потребуется, настроить систему под себя.

Создание загружаемого компакт-диска


Спасательный компакт-диск можно получить несколькими спосо­
бами. Можно использовать инсталляционный диск CD-ROM или
DVD почти любого коммерческого дистрибутива. К ним относятся
Red Hat, Mandrake и Su S Е. Одним из наиболее популярных вариан­
тов является Knoppix.
Сообщество LFS также разработало свой собственный LiveCD, дос­
тупный на http://www.linuxfromscratch.org/liv ec d /. Хотя на LiveCD
нельзя собрать польную систему LFS/BLFS, но это хорошее решение
для создания хорошего спасательного CD-ROM. Если вы загрузили
образ ISO, используйте xorriso для того, чтобы скопировать образ
диска на CD-ROM.
В проекте LFS в главе 8 также есть иструкции по использованию
GRUB2 для создания спасательного диска CD-ROM.

Создание загружаемого устройства USB


Устройство USB, которое иногда называют флэш-устройством,
распознается системой Linux как устройство SCSI. Преимущество
использования одного из таких устройств в качестве спасательно­
го в том, что такое устройство, как правило, достаточно большое и
позволяет сохранить на нем больше, чем минимальный загрузоч­
ный образ. Вы можете сохранить на нем критически важные дан­
ные, а также использовать его для диагностики и восстановления
поврежденной системы. Д ля загрузки с такого устройства требуется
его поддержка в BIOS, а сборка системы состоит в форматировании
устройства, добавления загрузчика GRUB, ядра Linux и вспомога­
тельных файлов.
Замечания для пользователей:

Перевод с оригинала от 2013-02-11 10:51:17 -0800

Конфигурирование процесса
добавления пользователей
Совместное использование команды /иэг/зЫ п /и зегаёб и каталога
/ е Ь с / э к е ! (которые легко настраиваются и просты в использовании)
Конфигурирование процесса добавления пользователей

позволяет использовать прием, который гарантирует, что для всех


новых пользователей, добавляемых в вашу систему LFS, будут ис­
пользоваться одинаковые начальные настройки, например, p a t h , на­
стройка клавиатуры и другие переменные среды окружения. Исполь­
зование этих двух компонентов позволит упростить первоначальную
настройку новых пользователей, добавляемых в систему
В каталоге / e t c / s k e l хранятся копии различных инициализаци-
онных и других файлов, которые могут быть скопированы в домаш­
ний каталог нового пользователя, когда новый пользователь добавля­
ется в систему с помощью команды /usr/sbin/useradd.
Программа Useradd
Программа useradd использует набор значений, применяемых по
умолчанию, которые хранятся в файле / e t c / d e f a u l t / u s e r a d d . Этот
файл создается с помощью пакета Shadow в процессе установки ба­
зовой системы LFS. Если этот файл будет удален или переименован,
программа useradd будет использовать по умолчанию некоторые свои
внутренние настройки. Вы можете увидеть значения, используемые
по умолчанию, если запустите программу /usr/sbin/useradd -D.
Чтобы изменить эти значения, нужно в роли пользователя r o o t
просто изменить файл / e t c / d e f a u l t / u s e r a d d . Альтернативой пря­
мому изменению файла является запуск команды useradd в роли
пользователя r o o t и указания в командной строке необходимых зна­
чений. Информацию о том, как это сделать, можно найти на странице
man команды useradd.
Каталог /e tc /s k e l
Для начала, создайте каталог / e t c / s k e l и убедитесь, что он досту­
пен для записи только системному администратору, обычно - пользо­
вателю r o o t. Лучше всего создать этот каталог в роли пользователя
ro o t.
Режим доступа к любым файлам из этой части книги, которые вы
помещаете в каталог / e t c / s k e l , должен разрешать делать записи в
эти файлы только владельцам файлов. Кроме того, поскольку ничего
не говорится о том, насколько важная информация может храниться
в этих файлах, вы должны сделать их недоступными для просмотра
для членов группы («group») и для всех прочих («other»).
В каталог / e t c / s k e l можно также поместить другие файлы, для
которых могут потребоваться другие права доступа.
Примите решение о том, какие инициализационные файлы должна
быть в каждом или в большинстве домашних каталогов новых поль­
I I Глава 3. Вопросы конфигурирования, не вошедшие в LFS

зователей. Принятое вами решение повлияет на действия, которые


будут выполняться в следующих двух разделах - «Файлы запуска
командной оболочки Bash» и «Файлы vimrc». Все или некоторые из
этих файлов можно использовать для пользователя root, для всех
пользователей, уже существующих в системе, или для новых поль­
зователей.
В этих двух разделах вы можете поместить в каталог /e tc /sk e l сле­
дующие файлы: .inputrc, .bash_profile, .bashrc, .bas h _ l o g o u t ,
. d i r c o l o r s и .vimrc. Если вы не знаете, нужно ли помещать в этот
каталог какой-нибудь из файлов, просто переходите к следующим
разделам, читайте каждый раздел, смотрите имеющиеся ссылки, а за­
тем принимайте решение.
Для файлов, находящихся в каталоге /etc/skel, вам потребует­
ся запускать слегка измененный набор команд. В каждом разделе мы
будем напоминать вам об этом. Если кратко, команды, приведенные
в книге для этих файлов, ничего не добавляют в каталог /etc/skel,
а вместо этого просто посылают результат работы в домашний каталог
пользователя. Если команда, приведенная в книге, изменяет файл, на­
ходящийся в каталоге /etc/skel, и возвращает туда результат рабо­
ты, то просто скопируйте этот файл из / e t c / s k e l в соответствующий
каталог, например, в /etc, ~ или в домашний каталог любого другого
пользователя, имеющегося уже в системе.
Добавление пользователя
Когда с помощью команды useradd добавляется новый пользо­
ватель, то используйте параметр -ш, который указывает команде
useradd создать домашний каталог пользователя и скопировать
файлы из каталога / e t c / s k e l (можно переопределить) в домашний
каталог нового пользователя. Например (выполните в роли пользо­
вателя root):
u s e r a d d -m <newuser>

Перевод с оригинала от 2007-10-16 06:49:09 -0700

О системных пользователях
и группах
На протяжении всего проекта В Ы ^ в многих пакетах устанавливают­
ся программы, используемые в роли демонов или каким-либо иным
образом, и этим программам следует присвоить имя пользователя и
О системных пользователях и группах

имя группы. Как правило, когда приложение используется, эти имена


необходимы для отображения в системе идентификатора пользовате­
ля (uid) или идентификатора группы (gid). Обычно номера uid и gid,
используемые этими приложениями, не столь важны. Исключением,
конечно, является пользователь root, у которого uid и gid равны О
(нулю), что действительно является особенным. Значения uid хра­
нятся в / etc/p a s s w d , а значения gid находятся в /etc/group.
Обычно, в системах Unix пользователи и группы делятся на две
категории: системные пользователи и обычные пользователи. Сис­
темным пользователям и группам присваиваются небольшие значе­
ния идентификаторов, а у обычных пользователей и групп числовые
значения идентификаторов всегда больше любых значений систем­
ных идентификаторов. Граница между ними указывается в двух па­
раметрах конфигурационного файла /e t c / l o g i n . d e f s . Значения,
используемые по умолчанию для UID_M IN (минимальное значение
идентификатора обычного пользователя) или для GID_M IN (мини­
мальное значение идентификатора обычной группы), равны 1000.
Если при создании пользователя с помощью команды useradd или
группы с помощью команды groupadd не указывается конкретное
значение uid или gid, то всегда выбирается значение, которое больше
граничных значений, описанных выше.
Кроме того, в системе Linux Standard Base рекомендуется, чтобы
системные значения uid и gid всегда были меньше 100.
Ниже приводится таблица предлагаемых значений uid/gid, кото­
рые будут использоваться в системе BLFS вдобавок к тем, что были
определены в базовой системе LFS. Их, при желании, можно изме­
нить, хотя они представляют собой хорошо согласованный набор зна­
чений.
Таблица 3 . 1 . Предлагаемые значения UID/GID

Имя uid g id Имя uid g id


bin 1 ftp 45 45
Ip 9 proftpd 46 46
adm 16 vsftpd 47 47
atd 17 17 rsyncd 48 48
messagebus 18 18 sshd 50 50
Ipadmin 19 stunnel 51 51
named 20 20 svn 56 56
gdm 21 21 svntest 57
Л |Е Глава 3. Вопросы конфигурирования, не вошедшие в LFS

Имя uid gîd Имя uid g id


fcron 22 22 pulse 58 58
system d-journal 23 pulse-access 59
apache 25 25 games 60 60
smmsp 26 26 kvm 61
polkitd 27 27 wireshark 62
exim 31 31 scanner 70
postfix 32 32 colord 71 71
postdrop 33 Idap 83 83
sendmail 34 avahi 84 84
mail 34 avahi-autoipd 85 85
vmailman 35 35 netdev 86
news 36 36 ntp 87 87
kdm 37 37 unbound 88 88
mysql 40 40 anonymous 98
postgres 41 41 nobody 99
nogroup 99

Одно значение, 65534, отсутствует. Это значение обычно назнача­


ется пользователю n o b o d y и группе n o g r o u p и оно не нужно.
Перевод с оригинала от 2013-07-21 16:16:47 -0700

Об устройствах
Хотя большинство устройств, которые используются пакетами в сис­
теме ВЬЕБ и за ее пределами, настраиваются должным образом с по­
мощью ибеу по правилам, устанавливаемых по умолчанию системой
в / e t c / u d e v / r u l e s . d, есть случаи, когда эти правила необходи­
мо изменить или дополнить.
Замечания для пользователя:
http://w iki.linuxfrom scratch.org/blfs/w iki/about devices

Несколько звуковых карт


Е сли в системе несколько звуковых карт, то звуковая карта, используе­
мая «по умолчанию», выбирается случайным образом. Метод, с помо­
щью которого определяется порядок звуковых карт, зависит от того,
являются ли драйверы карт модулями или нет. Если драйверы зву­
ковой карты скомпилированы в ядре, то управление ядром осущест­
Об устройствах 65

вляется с помощью параметров, указываемых в / b o o t / g r u b / m e n u .


1 s t . Например, если в системе есть карта FM801 и карта SoundBlaster
PCI, то к параметрам можно добавить следующую строку:
snd-fm801.index=0 snd-ensl371.index=l

Если драйверы звуковой карты собраны в виде модулей, порядок


можно задать в файле / e t c / m o d p r o b e . c o n f следующим образом:
options snd-fm801 index=0
options snd-ensl371 index=l

Вопросы, касающиеся устройств USB


Обычно имеется два вида нодов устройств, которые используются с
устройствами USB.
Ноды первого вида создаются в ядре специализированными драй­
верами устройств (например, usb_storage/sd_m od или usblp). Напри­
мер, устройство хранения данных USB будет устройством /dev/sdb,
а принтер USB будет устройством /dev/usb/lpO . Эти ноды устройств
существует только тогда, когда загружен специализированный драй­
вер устройств.
Второй вид нодов устройств (/dev/bus/usb/B B B /D D D , где ВВВ
является номером шины, a DDD является номером устройства) со­
здается, даже если в ядре драйвера для устройства нет. С помощью
этих «универсальных» raw-нодов устройств USB приложения могут
обмениваться с устройством произвольными пакетами USB, что поз­
воляет обойти возможно существующие драйвера ядра.
Доступ к raw-нодам устройств USB необходим, когда программы
пользовательского пространства действуют в качестве драйвера уст­
ройства. Но для того, чтобы программа успешно открыла устройство,
должны быть правильно установлены права доступа. По умолчанию,
по соображениям безопасности, все raw-устройства USB принадле­
жат пользователю root и группе usb и имеют права доступа 0664 (не­
обходим доступ на чтение, например, для lsusb и для тех программ,
которым нужен доступ к хабам USB). С пакетами (например, SANE
и libgphoto2), в которых имеются драйвера устройств USB пользо­
вательского пространства, также поставляются правила udev, с по­
мощью которых изменяются права доступа к raw-устройствам USB,
которыми управляет пакет. То есть, правила, установленные пакетом
SANE, изменяют права доступа для известных пакету сканеров, но
не для принтеров. Если те, кто сопровождает пакет, забудут написать
правила для вашего устройства, то сообщите об ошибке команде BLFS
И и В Я !8 |' Глава 3. Вопросы конфигурирования, не вошедшие в LFS

(если в системе BLFS этот пакет имеется) и разработчикам пакета, а


вам потребуется написать собственное правило.
Есть одна ситуация, когда не работает такое детализированное
управление доступом с помощью предварительно созданных правил
udev. А именно, когда эмуляторы персональных компьютеров, на­
пример, KVM, QEMU и VirtualBox, используют raw-ноды устройств
USB для предоставления из гостевой операционной системы доступа
к произвольным устройствам USB (замечание: чтобы получить до­
ступ и не использовать устаревшую точку монтирования /ргос/b u s /
usb так, как это описывается ниже, требуются патчи). Очевидно, что
те, кто сопровождает эти пакеты, не могут знать, какие устройства
USB должны подключаться к гостевой операционной системе. Вы
можете самостоятельно написать отдельные правила udev для всех
необходимых вам устройств USB, либо можете воспользоваться уни­
версальной группой «usb», имеющейся по умолчанию, члены которой
могут отправлять любые команды на все устройства USB.
Для версий, предшествующих Linux-2.6.15, доступ к raw-устройст­
вам USB осуществлялся не с помощью нодов устройств /d e v /b u s/
usb/B B B /D D D , а с помощью псевдофайлов /p ro c/b u s/u sb /В В В /
DDD. В некоторых приложениях (например, VMware W orkstation)
по-прежнему используется только этот устаревший метод и новые
ноды устройств использовать нельзя. Для работы с таким приложе­
ниями воспользуйтесь группой «usb», но помните, что члены этой
группы будут иметь неограниченный доступ ко всем устройствам
USB. Чтобы создать запись fstab для устаревшей файловой системы
usbfs, выполните:
u sbfs /р г о с /b u s/u sb usbfs devgid=14,devmode=0660 0 0

Зам ечан ие
Добавление пользователей в группу «usb» по своей сути небезопас­
но, поскольку они могут через ноды устройств конкретных драйве­
ров USB обойти ограничения на доступ. Например, они могут читать
конфиденциальные данные с жестких дисков USB, не будучи при
этом членами группы «disk». Если это возможно, то старайтесь не
добавлять пользователей в эту группу.

Атрибуты устройств udev


Точные атрибуты устройств, такие как имя группы и права доступа,
можно задавать при помощи создания дополнительных правил ибеу
Об устройствах ...j 67

похожих на то, что приведено ниже. Код изготовителя и код изделия


можно определить, поискав записи в каталоге / s y s / d e v i c e s или
после того, как устройство было подключено, использовав команду
udevadm info. Подробности смотрите в документации в текущем ка­
талоге udev —/ u s r / s h a r e / d o c .
SUBSYSTEM=="usb_device", SYSFS{idVendor}=="05d8", SYSFS{idProduct}=="4002", \
GROUP: = " s c a n n e r " , MODE:="0660"

Зам ечан ие
Приведенная выше команда использована только в иллюстратив­
ных целях. Правила udev для сканера добавляются в систему при
установке пакета SANE-1.0.23.

Устройства, используемые в серверах


В некоторых случаях имеет смысл полностью отказаться от udev и
создать статические устройства. Примером таких случаев являются
серверы. Нужна ли на сервере возможность динамической работы с
устройствами? На этот вопрос может ответить только системный ад­
министратор, но во многих случаях ответом будет - «нет».
Если динамические устройства не нужны, то в системе должны
быть созданы статические устройства. В конфигурации, использу­
емой по умолчанию, загрузочный скрипт / e t c / r c . d / r c s y s i n i t .
d / s i 0 u d e v монтирует раздел t mpf s в каталоге / dev. Эта проблему
можно преодолеть с помощью временного монтирования корневого
раздела:

П р едупреж дение
Если инструкции, приведенные ниже, выполнять неаккуратно, ваша
система может стать незагружаемой.

mount --bind / /mnt


ср -a /dev/* /mnt/dev
rm /etc/rc.d/rcS.d/{S10udev,S50udev_retry}
umount /mnt

Теперь при следующей перезагрузке в системе будут использовать­


ся статические устройства. Создавайте любое необходимое дополни­
тельное устройство с помощью команды mknod.
Если вы хотите восстановить динамические устройства, за­
ново создайте символические ссылки / e t c / r c . d / r c s y s i n i t .
ЕШ ИВ9т I Глава 3. Вопросы конфигурирования, не вошедшие в

с{/ {эЮ иаеу, Б45ис1еу_ге1гу} и снова перезагрузитесь. Статические


устройства удалять не нужно (консоль и нуль-устройство всегда нуж­
ны), т. к. они спрятаны в разделе ШрТэ. Накладные расходы исполь­
зования дискового пространства несущественны (около 20-30 байт
на запись).
Перевод с оригинала от 2012-03-13 11:19:34 -0700

Файлы запуска командной


оболочки Bash
Программа командной оболочки / b i n / b a s h (далее просто - «команд­
ная оболочка») использует набор файлов запуска, которые помогают
создать среду окружения. Каждый файл имеет конкретное назначе­
ние и может по разному влиять на то, как будет осуществляться вход
в систему и каковы будут настройки интерактивной среды. В файлах,
находящихся в каталоге /etc, обычно указываются глобальные на­
стройки. Если эквивалентный файл существует в вашем домашнем
каталоге, то в нем можно переопределять глобальные настройки
Интерактивная командная оболочка с регистрацией (login shell)
запускается после успешного входа в систему; для этого использу­
ется команда / bin/login, читающая файл /etc/passwd. Когда про­
исходит вызов командной оболочки, при ее запуске обычно читается
файл /etc/profile и эквивалентный ему приватный файл ~ / . b a s h _
profile.
Интерактивная командная оболочка без регистрации (non-login
shell) обычно вызывается из командной строки с помощью запуска
программы командной оболочки (например, [prompt] $/bin/bash)
или с помощью выполнения команды /b in /su . Интерактивную ко­
мандную оболочку без регистрации можно также запустить в графи­
ческой среде с помощью терминальных программ, таких как xterm
или konsole. Этот тип вызова командной оболочки обычно копирует
родительскую среду, а затем для получения дополнительных инс­
трукций по настройке запуска командной оболочки читает пользова­
тельский файл ~/ .bashrc.
Неинтерактивная командная оболочка обычно используется в слу­
чае, когда используется скрипт командной оболочки. Она не является
интерактивной, поскольку обрабатывается скрипт и от пользовате­
ля между командами не ожидается ввод данных. При таких вызовах
командной оболочки происходит наследование родительской среды
окружения, в которой запускался скрипт.
Файлы запуска командной оболочки Bash

Файл ~ / . b a s h _ l o g o u t не используется при вызове командной


оболочки. Он считывается и исполняется, когда пользователь выхо­
дит из интерактивной командной оболочки, использующей регистра­
цию (login shell).
Во многих дистрибутивах для инициализации командных оболо­
чек без регистрации (non-login shell) используется файл /etc/bashrc.
Обычно обращение к этому файлу происходит из файла ~/ .bashrc,
расположенного в каталоге пользователя, и не осуществляется непос­
редственно из bash. Это соглашение используется в данном разделе.
Для получения дополнительной информации используйте коман­
ду info bash —Nodes: Bash Startup Files and Interactive Shells.

З ам ечан ие
Большинство инструкций, описываемых ниже, используются для
создания файлов, которые помещаются в каталог / e t c , поэтому
вам потребуется выполнять команды в роли пользователя r o o t .
Если вы решите вместо этого создавать файлы в домашних катало­
гах пользователей, вам следует запускать эти команды в роли не­
привилегированного пользователя.

Ф айл /e tc /p ro file
Ниже приведен базовый файл /etc/profile. Этот файл начинается с
настройки некоторых вспомогательных функций и с задания некото­
рых базовых параметров. В нем указаны некоторые параметры исто­
рии использования команды bash и, в целях безопасности, отключена
для пользователя r o o t постоянная поддержка файла history. В нем
также заданы значения строк приглашения, используемых пользо­
вателем по умолчанию. Затем происходит обращение к небольшим
однократно используемым скриптам, находящимся в каталоге /e tc/
profile.d, с помощью которых выполняется большая часть инициа-
лизационной работы.
Чтобы получить дополнительную информацию об управляющих
последовательностях символов, которые вы можете использовать в
своих строках-приглашениях (т. е. в переменной среды окружения
P S 1 ), запустите команду info bash -- Node: Printing a Prompt.
cat > /etc/profile « "EOF"
# Начало / e t c / p r o f i l e
# Написано для пр оекта Beyond L inux From S c r a t c h
# Автор - James R o b e r t s o n < j a m e s w r o b e r t s o n 6 e a r t h l i n k . n e t >
# Изменения - Dagmar d ' S u r r e a l <r i v y q n t z n e @ p b z p n f g . a r g >
70 H i ; Глава 3. Вопросы конфигурирования, не вошедшие в LFS

# Общесистемные переменные среды окружения и программы за п у с к а .

# Общесистемные алиасы и функции должны быть в файле / e t c / b a s h r c .


# Персональные переменные среды окружения и персональные программы
# за п у ск а должны быть помещены в файл ~ / . b a s h _ p r o f i l e .
# Персональные алиасы и функции должны быть в файле ~ / . b a s h r c .

# Функции, которые помогут вам управлять путями. Второй аргумент


# является именем переменной, определяющей путь, который должен
# быть изменен (по умолчанию: PATH)
p a th re m o v e () {
l o c a l I F S = ' :'
l o c a l NEWPATH
l o c a l DIR
l o c a l PATHVARIABLE=${ 2 : -PATH}
f o r DIR i n $ { ! PATHVARIABLE} ; do
i f [ "$DIR" != "$1" ] ; t h e n
NEWPATH=${NEWPATH:+$NEWPATH:}$DIR
fi
done
e x p o r t $PATHVARIABLE="$NEWPATH"
}
p a t h p r e p e n d () {
pa th re m o v e $1 $2
l o c a l PATHVARIABLE=${ 2 : -PATH}
e x p o r t $ PATHVARIABLE="$ 1 $ { ! PATHVARIABLE: + : $ { ! PATHVARIABLE}}"
}
p a th a p p e n d () {
p a th re m o v e $1 $2
l o c a l PATHVARIABLE=${ 2 : -PATH}
e x p o r t $ PATHVARIABLE="${ ! PATHVARIABLE: +$ { ! PATHVARIABLE} : } $ 1"
}

# Настройка начального пути


ex p o r t P A T H =/b in :/u sr/b in

if [ $EUID - e q 0 ] ; t h e n
p a th a p p en d / s b i n : / u s r / s b i n
u n s e t HISTFILE
fi

# Настройка некоторых переменных среды окружения,


e x p o r t HISTSIZE=1000
e x p o r t HISTIGNORE="&: [ b f ] g : e x i t "

# Настройка командной строки к р асн ого цвета в случае


# по л ь зо в а т ел я r o o t и з е л е н о г о цвета - для други х п о л ь з о в а т е л е й .
NORMAL="\ [ \ е [ 0 т \ ] "
Файлы запуска командной оболочки Bash \кШШШШ
RED="\[ \ е [ 1 ; 3 1 ш \] "
GREEN="\[ \ е [ 1 ; 32ш\ ] "
i f [[ $EUID == 0 ]] ; t h e n
PSl="$RED\u [ $NORMAL\w$RED ]# $NORMAL"
else
PS1="$GREEN\u [ $NORMAL\w$GREEN ] \ $ $NORMAL"
fi

f o r s c r i p t i n / e t c / p r o f i l e . d / * . s h ; do
i f [ - r $ s c r ip t ] ; then
. $ sc r ip t
fi
done

# Теперь оч исти те переменные


u n s e t pa th re m o v e p a t h p r e p e n d p a th a p p en d

# Конец / e t c / p r o f i l e
EOF

Каталог /e tc /p ro file .d
Теперь создайте каталог / e t c / p r o f i l e . d, где будут находиться от­
дельные скрипты инициализации:
install — directory — mode=0755 — owner=root — group=root /etc/profile.d

Скрипт /etc/p ro file.d /d irco lo rs.sh


Этот скрипт использует файлы - / . d i r c o l o r s И / e t c / d i r c o l o r s
для управления цветами имен файлов, перечисляемых в каталоге.
С их помощью осуществляется управление цветом элементов, выда­
ваемых в выходном потоке, например, с помощью команды Is —color.
О том, как инициализовать эти файлы, рассказывается в конце настоя­
щего раздела.
cat > /etc/profile.d/dircolors .sh « "EOF"
# Настройка в / b i n / l s поддержки цв е т ов , алиас в / e t c / b a s h r c .
i f [ - f " / e t c /d ir c o lo r s " ] ; then
e v a l $ ( d i r c o l o r s -b / e t c / d i r c o l o r s )

if [ - f "$HOME/. d i r c o l o r s " ] ; t h e n
e v a l $ ( d i r c o l o r s - b $HOME/. d i r c o l o r s )
fi
fi
a l i a s l s = ' I s — co lo r = a u to '
E OF
72 ] | | | | | | Ц | | Ц | | | М | ' ' Глава 3. Вопросы конфигурирования, не вошедшие в LFS

Скрипт /e tc /p ro file .d /e x tra p a th s .s h


Этот скрипт добавляет несколько полезных путей в переменные
среды окружения p a t h и p k g _ c o n f i g _ p a t h .Если желаете, вы можете
раскомментировать последний раздел скрипта и скрипт добавит точ­
ку к значению вашего пути. Это позволит вам запускать в текущем ра­
бочем каталоге исполняемые файлы и не указывать . / , но вы должны
знать, что это небезопасно с точки зрения обеспечения безопасности.
cat > /etc/profile .d/extrapaths .sh « "EOF"
if [ -d / u s r / l o c a l / l i b / p k g c o n f i g ] ; then
p a th a p p e n d / u s r / l o c a l / l i b / p k g c o n f i g PKG_CONFIG_PATH
fi
if [ -d / u s r / l o c a l / b i n ]; then
pathprepend / u s r / l o c a l / b i n
fi
if [ - d / u s r / l o c a l / s b i n - a $EUID - e q 0 ] ; then
pathprepend / u s r / l o c a l / s b i n
fi

if [ -d - / b i n ]; then
pathprepend - / b i n
fi
# if [ $EUID - g t 99 ] ; t h e n
# pathappend .
#fi
EOF

Скрипт /e tc /p ro file .d /re a d lin e .s h


С помощью этого скрипта настраивается файл i n p u t r c , используе­
мый по умолчанию. Если у пользователя нет индивидуальных на­
строек, скрипт будет использовать этот глобальный файл.
cat > /etc/profile.d/readline.sh « "EOF"
# Установка переменной среды окружения INPUTRC.
i f [ - z " $ INPUTRC" - a ! - f "$HOME/. i n p u t r c " ] ; t h e n
I N P U T R C = /e t c /in p u t r c
fi
e x p o r t INPUTRC
EOF

Скрипт /e tc /p ro file.d /u m ask.sh


Настройка значения umask важна с целью обеспечения безопас­
ности. В нем определяется, что по умолчанию для системных поль­
зователей запись в группе запрещена, если имя пользователя и имя
группы не совпадают.
cat > /etc/profile.d / umask.sh « "EOF"
# По умолчанию должно быть ус та н о в л ен о umask.
Файлы запуска командной оболочки Bash Ш

if [ " $ ( i d - g n ) " = " $ ( i d - u n ) " - a $EUID - g t 99


umask 002
e lse
umask 022
fi
EOF

Скрипт /e tc /p ro file .d /i 18n.sh


Этот скрипт настраивает переменную среды окружения, исполь­
зуемую для поддержки естественного языка. Подробное обсужде­
ние настройки этой переменной можно найти в книге LFS в разделе
«Файлы запуска командной оболочки Bash».
cat > /etc/profile .d/il8n. sh « "EOF"
# Настройка переменных i l 8 n
# ( i l 8 n или i n t e r n a t i o n a l i z a t i o n - интернационализация)
e x p o r t LANG=<11>_<CC>. <charm apx^ j7iod i/iers>
EOF

Инициализация других значений


В профиль profile можно легко добавить инициализацию других
значений, если в каталог /etc/profile.d поместить соответствующие
скрипты.

Файл /e tc /b a sh rc
Ниже приведен базовый файл / e t c/bashrc. В комментариях объяс­
няется все, что вам необходимо.
cat > /etc/bashrc « "EOF"
# Начало / e t c / b a s h r c
# Написано для Beyond Linux From S c r a t c h
# Автор - James R o b e r t s o n <j a m e s w r o b e r t s o n @ e a r t h l i n k . n e t >
# Изменено - Bruce Dubbs <b d u b b s @ l i n u x f r o m s c r a t c h . o r g >

# Общесистемные алиасы и функции.

# Общесистемные переменные среды окружения и программы за п у ск а


# должны быть в / e t c / p r o f i l e . Персональные переменные среды
# окружения и персональные программы за п у ск а
# должны быть в ~ / . b a s h _ p r o f i l e . Персональные алиасы и функции
# должны быть в ~ / . b a s h r c

# Предоставляются команды / b i n / l s , используемые ц в е т .


# И сп ол ьзуе т ся вместе с кодом в / e t c / p r o f i l e .

a l i a s l s = ' I s — co lo r= a u to '

# П р е д о с т а в л я е т с я п о д с к а з к а в к о м а н д н ы х о б о л о ч к а х без входа в
# систему, в частности, з а п у с к а е м ы е в с реде X. [Для того, ч тобы
! Глава 3. Вопросы конфигурирования, не вошедшие в LFS

# лучше озн акомиться с о скриптом, смотрите архив LFS с именем


# PS1 E nv ironm ent V a r i a b l e ]

NORMAL="\[ \ е [ 0m \]"
RE D = " \ [\e[l;31m\] "
GREEN="\[\e[l;32m\]"
i f [[ $EUID == 0 ]] ; then
PSl="$RED\u [ $NORMAL\w$RED ]# $NORMAL"
else
PS1="$GREEN\u [ $NORMAL\w$GREEN ]\$ $NORMAL"
fi
# Конец /etc/bashrc
EOF

Файл ~/.bash jp ro file


Ниже приведен базовый файл ~/ . b a s h _p r o f i l e . Если вы хотите, что­
бы для каждого нового пользователя этот файл создавался автомати­
чески, просто перенаправьте выходной поток команды в файл / e t c /
s k e l / . b a s h _ p r o f i l e и после выполнения команды проверьте права
доступа к созданному файлу После этого вы можете скопировать
файл / e t c / s k e l / . b a s h _ p r o f i l e в домашние каталоги уже существу­
ющих пользователей, в том числе и пользователя r o o t , а затем задать
владельца и группу.
cat > -/. bash_profile « "EOF"
# Начало ~ / .b a s h _ p r o f i l e
# Написано для Beyond L inu x From S c r a t c h
# Автор -Jam es R o b e r t s o n <j a m e s w r o b e r t s o n @ e a r t h l i n k . n e t >
# Изменение - Bruce Dubbs <b d u b b s @ l i n u x f r o m s c r a t c h . o r g >

# Персональные переменные среды окружения и программы за п у ск а

# Персональные алиасы и функции должны н аходи ть ся в ~ / . b a s h r c .


# Общесистемные переменные среды окружения и программы за п уск а
# н ах од я т с я в / e t c / p r o f i l e . Общесистемные алиасы и функции
# н а ход ят с я в / e t c / b a s h r c .

append () {
# Сначала удаляем каталог
l o c a l I F S = ' :'
l o c a l NEWPATH
f o r DIR i n $ PATH; do
i f [ "$DIR" != "$1" ] ; t h e n
NEWPATH=${NEWPATH: +$NEWPATH: } $DIR
fi
done

# Затем добавляем каталог


e x p o r t PATH=$NEWPATH: $ 1
Файлы запуска командной оболочки Bash

}
if [ - f "$НОМЕ/. b a s h r c " ] ; t h e n
s o u r c e $НОМЕ/. b a s h r c
fi

if [ - d "$HOME/bin" ] ; t h e n
append $HOME/bin
fi

u n s e t append

# Конец - / .b a s h _ p r o f i l e
EOF

Ф айл - /.bashrc
Ниже приведен базовый файл -/.bashrc. Комментарии и инструк­
ции по использованию каталога / e t c / s k e l для файла .bash_profile,
приведенные выше, справедливы и для этого файла. Отличия только
в именах создаваемых файлов.
cat > -/.bashrc « "EOF"
# Начало - / . b a s h r c
# Написано для Beyond L inu x From S c r a t c h
# Автор - James R o b e r t s o n <j a m e s w r o b e r t s o n @ e a r t h l i n k . n e t >

# Персональные алиасы и функции.

# Персональные переменные среды окружения и программы за п у ск а


# должны быть в - / . b a s h _ p r o f i l e . Общесистемные переменные среды
# окружения и программы за п у ск а н ахо д ят ся в / e t c / p r o f i l e .
# Общесистемные алиасы и функции нахо д ят ся в / e t c / b a s h r c .

if [ - f " /etc/b ash rc" ] ; then


source /e tc /b a s h r c
fi

# Конец - / . b a s h r c
EOF

Ф айл ~/.bash_logout
Это пустой файл - / .bash_logout, которым можно пользоваться в
качестве шаблона. Обратите внимание, что в файле - / . b a s h _ l o g o u t
не указана команда clear. Это связано с тем, что эта команда нахо­
дится в файле /etc/issue.
cat > - / .bash_logout « "EOF"
# Начало - / . b a s h _ l o g o u t
# Написано для для Beyond L inu x From S c r a t c h
Глава 3. Вопросы конфигурирования, не вошедшие в LFS

# Автор - James R o b e r t s o n <j a m e s w r o b e r t s o n @ e a r t h l i n k . n e t >

# Персональные элементы, которые выполняются при выходе из системы.

# Конец ~ / . b a s h _ l o g o u t
EOF

Различные цвета /etc/d irco lo rs


Если вы хотите пользоваться возможностью d i r c o l o r s ( различные
цвета для различных компонентов содержимого текущего катало­
га — прим. пер.), запустите следующую команду. Также можно вос­
пользоваться каталогом / e t c / s k e l , работа с которым была описана
выше с тем, чтобы для каждого нового пользователя создавался файл
~ / . d i r c o l o r s . Как и в предыдущем случае, просто в следующей ко­
манде измените имя создаваемого файла и обеспечьте, чтобы права до­
ступа, владелец и группа позволяли создавать файлы и их копировать.
dircolors -р > /etc/dircolors

Вы можете отредактировать файл / e t c / d i r c o l o r s , если хотите


настроить цвета, которые будут использоваться для отображения
различных типов файлов, Инструкции по настройке цветов есть в са­
мом файле.
Наконец, Яном Макдональдом (Ian Macdonald) была представле­
на прекрасная подборка рекомендаций и советов, касающихся среды
окружения вашей командной оболочки. Вы можете познакомиться с
ними по ссылке h ttp ://w ww.caliban.org/bash/index.shtm l.
Перевод с оригинала от 2012-12-19 11:57:20 -0800

Файлы /etc/vim rc и ~/.vimrc


В книге LFS в качестве текстового редактора используется редактор
Vim. Следует отметить, что есть много различных программ, исполь­
зуемых для редактирования, к числу которых относятся Emacs, nano,
Joe и многие другие. Каждый, кто хотя бы в течение короткого време­
ни пользовался интернетом (и, особенно, useneBoM), несомненно, был
свидетелем по крайней мере одной перепалки между пользователями
Vim и Emacs!
В книге LFS создается базовый файл vimrc. В этом разделе вы уз­
наете, как можно расширить возможности этого файла. Когда редак­
тор vim запускается, он читает глобальный конфигурационный файл
Файлы /e tc /v im rc и ~ /.vim rc 77

(/etc/vimrc), a также файл конкретного пользователя (-/.vimrc).


Можно в соответствие с требованиями вашей конкретной системы
настроить один из этих файлов или оба файла.
Ниже приведен слегка расширенный вариант файла . vimrc, кото­
рый вы можете записать в домашний каталог как - / .vimrc, предоста­
вив пользователю конкретные настройки. Конечно, если вы запишите
его как / e t c / s k e l / . vimrc, то настройки будут доступными для всех
пользователей, которые будут добавляться в систему позже. Вы также
можете скопировать файл из / e t c / s k e l / . v i m r c в домашние катало­
ги уже существующих пользователей, в том числе и для пользователя
root. Если вы что-либо копируете непосредственно из каталога /etc/
skel, то не забудьте установить права доступа, владельца и группу.

" Начало . v im r c

s e t colu m ns=80
s e t wrapmargin=8
s e t r u ler

" Конец .v im r c

Обратите внимание, что для комментирования используется сим­


вол “ вместо более привычных символов # или / /. Это правильный
синтаксис Д Л Я vimrc, просто он немного необычен.
Ниже кратко описывается смысл каждого параметра, приведенно­
го в этом примере:
• se t c o l umns=80: Этот параметр просто определяет количест­
во столбцов, используемых на экране.
• set w r a p m a r g i n = 8 : Этот параметр задает количество симво­
лов, отсчитываемых от правого края окна и используемых в
качестве отступа.
• set ruler: Этот параметр требует от редактора vim показы­
вать в нижней правой части экрана номер текущей строки и
номер текущей колонки.
Более подробную информацию о многочисленных вариантах на­
стройки редактора vim можно найти на страницах помощи, имеющих­
ся в самом редакторе Vim. В редакторе vim можно с помощью команды
:h e l p получить общую помощь или с помощью команды : h e l p us г _
t o c .tx t вывести список разделов руководства пользователя.

Перевод с оригинала от 2007-10-16 06:02:24 -0700


Ш£Щ Глава 3. Вопросы конфигурирования, не вошедшие в LFS

Настраиваем ваш вход


в систему с помощью /etc/issue
Когда вы первый раз загружаете свою систему LFS, на экран с пригла­
шением входа в систему ничего выдаваться не будет (как это и должно
быть в базовой системе). Но многие хотят, чтобы кроме приглашения
входа в систему система также отображала некоторую информацию.
Это можно сделать с помощью файла / e t c / i s s u e .
Файл / e t c / i s s u e является простым текстовым файлом, в котором
можно записать определенные последовательности управляющих сим­
волов (смотрите ниже) с тем, чтобы можно было отображать системную
информацию. Есть также файл i s s u e . n et , который можно использо­
вать при дистанционном входе в систему. Но ssh будет использовать
этот файл только в том случае, если вы в конфигурационном файле
укажете соответствующий параметр, причем управляющие последова­
тельности, приведенные ниже, интерпретироваться не будут.
То, что требуется наиболее часто, это - очистка экрана при каждом
входе в систему. Простейший способ это сделать - добавить в файл
/ e t c / i s s u e управляющую последовательность “clear” (очистить).
Для этого нужно будет выполнить команду clear > /etc/issu e. В ре­
зультате в начало файла / e t c / i s s u e будет вставлен соответствую­
щий код управляющей последовательности. Заметьте, что если вы
поступите таким образом, то при редактировании файла вам никогда
не следует изменять символы (обычно <A[[HA[[2J’), находящиеся в
первой строке файла, и ничего к ним не следует добавлять.

З ам ечан и е
Последовательностью символов, управляющей терминалом, явля­
ется код, который распознается терминалом специальным обра­
зом. Л[ обозначает символ ASCII ESC. Последовательность ESC[H
переводит курсор в левый верхний угол экрана, а последователь­
ность ESC2J стирает экран. Более подробную информацию о пос­
ледовательностях символов, управляющих терминалом, смотрите
на http://rtfm .etla.ora/xterm /ctlseq.htm l.

Приведенные ниже последовательности распознаются программой


agetty (программа, которая обычно обрабатывает файл / e t c / i s sue).
Эта информация взята из руководства man agetty, где вы также може­
те найти дополнительную информацию о процессе входа в систему.
В файле i s s u e могут присутствовать определенные последова­
тельности символов, предназначенные для отображения различной
Ф а й л /etc/sh ells ;|к 1 1 1 1 И 1 И 1 79

информаций!. Все управляющие последовательности, указываемые в


файле issue, состоят из обратного слеша (\), за которым идет один
их символов, приведенный ниже (так \d, присутствующий в файле
/etc/i s s u e , будет вставлять текущую дату).

Ь Вставка текущей ско ро сти линии,


d Вставка текущей даты.
s Вставка названия системы, имени операционной системы.
1 Вставка названия текущего терминала.
m Вставка идентификатора архитектуры системы, например, i 6 8 6 .
п Вставка имени у з л а , которым является машина, то же с ам ое,
что и имя х о с т а ,
о Вставка доменного имени машины.
г Вставка номера р е л и за ядра, например, 2 . 6 . 1 1 . 1 2 .
t Вставка текущего времени.
и Вставка количества п о л ь з о в а т е л е й , зарегистрированных в
с и с те м е в текущий момент.
U Вставка строки "1 u s e r " или "<n> u s e r s " , г д е <п> - количество
пол ь зо в а т ел ей зарегистрированных в текущий момент,
v Вставка версии ОС, например, даты сборки и так д а л е е .

Перевод с оригинала от 2007-04-04 12:42:53 -0700

Файл /etc/shells
В файле s h e l l s находится список командных оболочек, использу­
емых при входе в систему Приложения используют этот файл для
проверки, является ли командная оболочка допустимой. Для каждой
командной оболочки имеется отдельная строка, в которой записан
путь к командной оболочке, указываемый от корня структуры ката­
логов (/).
Например, в данном файле будет проверено, может ли неприви­
легированный пользователь изменить на chsh командную оболочку,
используемую для входа в систему с использованием учетной записи
этого пользователя. Если имя этой командной оболочки не указано,
то пользователю будет отказано в изменении.
Он также требуется для таких приложений, как GDM, которые не
запустят браузер, если он не указан в файле /etc/shells, либо для
демонов FTP, которые обычно оказывают пользователям в доступе
через командные оболочки, которые не указаны в этом файле.
cat > /etc/shells « "EOF"
# Начало / e t c / s h e l l s

/b in /sh
K i! l ШшжШш^ ! - Глава 3. Вопросы конфигурирования, не вошедшие в LFS

/b in /b a s h

# Конец / e t c / s h e l l s
EOF

Перевод с оригинала от 2007-04-04 12:42:53 -0700

Генерация случайных чисел


Ядро Linux поставляется с генератором случайных чисел, доступ к
которому осуществляется через псевдоустройства / d e v / r a n d o m и
/ d e v / u r a n d o m . Программы, в которых используются псевдоустройс­
тва random и urandom, например, OpenSSH, выиграют от использова­
ния этих псевдоустройств.
Когда система Linux запускается без особого вмешательства опера­
тора, энтропийный пул (данные, которые используются для вычисле­
ния случайного числа) может оказаться в достаточно предсказуемом
состоянии. Из-за этого возможны реальные случаи, когда случайные
числа, генерируемые при запуске системы, могут повторяться. Чтобы
избежать этого эффекта, вы должны сделать так, чтобы информация,
находящаяся в энтропийном пуле, оставалась неизменной после ос­
тановки системы и последующем ее запуске.
Установите ииициализационный скрипт / e t c / r c .d / i n i t .d/
random, имеющийся в пакете blfs-bootscripts-20130908.

make i n s t a l l - r a n d o m
Перевод с оригинала от 2007-04-04 12:42:53 -0700

Сжатие страниц Man и Info


Поскольку программы, читающие страницы руководств man и info,
могут прозрачно обрабатывать файлы, сжатые с помощью программ
gzip и bzip2, эта возможность поможет вам освободить немного дис­
кового пространства в случае, если вы храните документацию на
диске. Но не все так просто: в каталогах man, как правило, есть ссыл­
ки - жесткие и символические, которые мешают воспользоваться для
сжатия таким простым решением, как рекурсивный вызов команды
gzip. Поэтому лучше воспользуйтесь скриптом, который приведен
ниже. Если вы предпочитаете скачивать файлы, а не набирать их или
копировать их содержимое через буфер обмена, вы можете скачать
файл с этим скриптом по ссылке http ://a n duin.linuxfromscratch.org/
files/BLFS/svn/com pressdoc (файл должен быть установлен в каталог
/ usr/sbin).
Сжатие страниц Man и Info

cat > /usr/sbin/compressdoc « "EOF"


# ! /b in /b a sh
# ВЕРСИЯ: 2 0 0 8 0 4 2 1 . 1 6 2 3
#
# Сжатие (с помощью b z i p 2 или g z i p ) в с е х страниц man в иерархии и
# обновление символических ссылок - автор Marc Heerdink <marc@koelkast.net>
#
# Обновлено для возможности указывать файлы g z i p или b z ip 2 в качестве
# параметров и правильной обработки символических ссылок - Mark Hymers
#
# Изменено 20 03 0 9 3 0 (автор - Yann Е. Morin )
# для возможности с ж и м ать/разар хиви ровать, правильно обрабатывать
# жесткие ссы лки,изм енять жесткие ссылки символическми ссылками,
# указывать уровень сжатия, аналихзировать m a n . c o n f на наличие
# всех в х о ж д е н и й п е р е м е н н ы х M A N P A T H , п о з в о л я т ь в ыполнять р е з е р в н о е
# копирование и сохранять новые версии страницы.
#
# И з м е н е н о 2 0 04 033 0 (автор - Tushar T e r e d e s a i ) ч т о б ы заменить
# параметр $0 именем скрипта.
# (Замечание: П ред п олагает ся, что скрипт у к азан в
пол ьзова т ел ьск ом пути PATH)
#
# Изменено 2 0 05 011 2 (автор - Randy McMurchy) чтобы сократить
# длину строки и иерпавить грамматические ошибки.
#
# И з м е н е н о 20 060 128 (автор - A l e x a n d e r Е. P a t r a k o v ) для
# совместимости с Man-DB.
#
# Изменено 2 006 0 3 1 1 (автор - A r c h a i c ) чтобы и с п о л ьзов ат ь утилиту
# Man-DB manpath,
# которая заменяет команду man — p a t h из Man.
#
# Изменено 20080421 (автор - Dan N ic h o lso n ) чтобы правильно выполнять
# c o r r e c t c o m p r e ss d o c когда раб от а выполняется ре к ур си вн о. Это
# означает, что та же самая команда compressdoc будет использоваться
# везде, где можно использовать значения получаемые из переменной PATH.
#
# Изменено 2 0 0 804 21 (автор - Dan N i c h o l s o n ) чтобы б о л е е правильно
# поступать с каталогами, которых нет или для работы с которыми
# н е д о ст а т о ч н о прав д о с т у п а .
#
# Изменено 20080421 (автор - Lars Bamberger) чтобы исходя из размера
# страницы авт оматически выбирать м етод сжатия. В д о б а в о к , Dan
# N i c h o l s o n исправил несколько ошибок.
#
# И з м е н е н о 2008 0 4 2 1
(автор - Dan N i c h o l s o n ) ч т о б ы подавить
# предупреждения из manpath, поскольку они выдаются, когда за д ан а
# переменная $ M A N P A T H . Удалено TODO для переменной $ M A N P A T H
# поскольку обра бот к а m a n p a t h (1) уже с д е л а н а .
#
# TODO:
|Р Глава 3. Вопросы конфигурирования, не вошедшие в LFS

# - выбирать метод сжатия, ипользуемый по умолчанию с учетом


# имеющегося инструментального с р е д с т в а : g z i p or b z i p 2 ;
# - п р е д л а г а е т с я параметр для в осст ановлени я предыдущей
# р е зе р в н о й копии;
# - добавить д руги е движки сжатия ( c o m p r e s s , z i p , e t c ? ) .
# Нужно?

# Эта функцмия выдает некоторую п о д с к а з к у ,


f u n c t i o n h e l p ()
{
if [ - n "$1" ] ; t h e n
e c h o "Unknown o p t i o n : $1"
fi
( echo "Использование: $MY_NAME <метод_сжатия> [параметры] [каталоги]" && \
c a t « EOT
Где в качестве <метод_сжатия> используется один их следующих вариантов:
- -g z ip , - - g z , -g
- - b z i p 2 , - - b z 2 , -b
Сжатие с использованием g z i p или b z i p 2 .
— au tom atic
Сжатие с использованием g z ip или bzip2 в зависимости
от разм ер а файла, который сжимается. Файлы, размер
которых больше 5 кВ, сжимаются с помощью bzip2,
Файлы, размер которых больше 1 кВ сжимаются с помощью
gzip , а файлы, размер которых меньше 1 кВ, не сжимаются.

--decom press, -d
Разархивирование страниц man.

--backup Расширение . t a r б у д ет с д е л а н о для р е зе р в н о й копии


любого к а т а л о г а . В с л у ч а е , если р е зе р в н а я копия
уже с у щ е ст в у е т , то п е р е д тем, как б у д е т сдела н а
новая копия, с а тар ая копия б у д е т со хранена с
расширением . t a r . o l d . Если копися с расширением
. t a r . o l d с у щ е ст в у е т , то она б у д е т уд алена п е р е д
сохранением новой р е зе р в н о й копии. В режиме
с озд ан и я резервных копий никакие д руги е дейстывия
не выпоняются.

И г д е в к а ч е с т в е [параметры] использую тся:


-1 to -9 , — f a s t , — b e s t
Уровень сжатия, используемый в g z i p и b z i p 2 . Когда
не указан, то используется уровень сжания, определенный
по умолчанию для данн ого метода (-6 для gz ip и -9
для bzip2) . Не используется в режиме с о зд а н и я
р е зе р в н о й копии или в режиме распаковки.

--fo rce, -F Форсированное ( п е р е - ) с ж а т и е даже в том с л у ч а е ,


если в предыдущий р а з был испол ьзован тот же
самый с п о с о б сжатия. И сп о л ь зу е т ся , когда
изменяется степень сжатия. По умолчанию страница
Сжатие страниц Man и Info 83

не б у д е т пересжиматься в с л у ч а е , если расширение


файла арживной копии с о о т в е с т в у е т выбранному
способу архивирования {.bz2 для b z ip 2 , .gz для g z i p ) .

— soft, -S П реобразование жестких ссылок в символические.


И спользуйте с осторожностью поскольку в с е ссылки
бу д ут д е л а т ь с я о т носит ел ьно п ерв ог о
в стретивш егося файла. Не и с п о л ь з у е т с я в режиме
с о зд а н и я р е зе р в н о й копии.

--h ard , -Н П реобразование символических ссылок в жесткие


ссылки. Не и с п о л ь з у е т с я в режиме с озд ан и я
р е зе р в н о й копии.

— con f= d ir, — conf d ir


Указывает месторасположение файла m a n _ d b . c o n f . По
умолчанию н аходи тся в / e t c .

— verbose, - v Режим подробной выдачи информации, выдается имя


обрабатываемого к а т а л о г а . Двойное у к азан и е флага
выдает еще больше информации - выдается имя
обрабатываемого файла.

--fak e, -f Выдаются параметры, которые буд у т фактически


и с п о л ь зо в а т ь с я в c o m p r e s s d o c .

d irs Список _абсолютных_ путей к каталогам man, разделенных


символом п р о бел а. Когда список п устой и только
т о г д а , и с п ол ь зу й те manpath для анализа
$ {MAN_CONF}/man_db. c o n f для в с е х допустимых
вхождений MANDATORY MANPATH.

Зам ечание, касающиеся сжатия:


На b l f s - s u p p o r t была д и с к у с си я о с те п е н и сжатия станиц man с
помощью g z i p и b z i p 2 с учетом используемой файловой системы,
архитектуры и т . д . В и т о г е было выяснено, что сжатие с помощью
g z i p б о л е е эффективно с 'небольшими' файлами, a b z i p 2 - с
'большими' файлами, понятие небольшой и большой сильно зав и си т
от содержимого файлов.

Смотрите оригинальный пост M ic k a e l A. P e t e r s , озаглавленный


" B o o t a b le U t i l i t y CD" от 2 0 0 3 0 4 0 9 . 1 8 1 6 ( + 0 2 0 0 ) и последующие
посты: h t t p : / / l i n u x f r o m s c r a t c h . o r g / p i p e r m a i l / b l f s - s u p p o r t / 2 0 0 3 -
A p r i l / 0 3 8 8 1 7 . htm l

На моей с истем е (x 8 6 , e x t 3 ) , размер страниц man п е р е д сжатием


был 35564КВ. Каманда g z i p - 9 сжала их д о размер а 20372КВ
( 5 7.28% ), а команда b z i p 2 - 9 еще больше до размер а 19812КВ
( 5 5 .7 1 % ). Т . е . выигрыш в 1.57%. Возможно в с я к о е .

Во внимание не принимается скорость разархи вирован ия. Имеется


I Глава 3. Вопросы конфигурирования, не вошедшие в LFS

ли в этом смысл ? Вы п о л у ч ае те быстрый д о с т у п к несжатым


страницам man, либо вы п о л у ч ае тс я дополнительноен м е ст о з а
с ч е т небольших накладных р а с х о д о в по времени. У меня п р оц е сс ор
P4-2.5GHZ, что даже не п о з в о л я е т мне заметить эти накладные
расходы .. . :-)

EOT
) I less
}
# С помощью этой функции проверяется, страница man является уникальной
# среди в с е х страниц man, заархивированных с помощью b z i p 2 и g z i p
# и среди не заархивированных страниц.
# $1 к а т а л о г, в котором расположен файл
# $2 имя файла страницы man
# Возвращает 0 ( t r u e ) , если э т о последняя версия файла и файл
# нужно с о х р а н и т ь ,и 1 ( f a l s e ) , если файл не является последним
# (и, с л е д о в а т е л ь н о , е г о можно у д а л и т ь ) .
f u n c t i o n c h e c k _ u n i q u e ()
{
# NB. Если на э т о т файл есть жесткая ссылка, то файл и ссылка не
# не удаляются. Фактически если ест ь жесткие ссылки, то у
# них в с е х одни и т е же значения даты /в ерм ени, с л ед о в а т ел ь н о
# их можно б у д е т удалить позже.

# Создание списка в с е х страниц man с одним и тем же именем


DIR=$1
BASENAME='basename " $ { 2 } " . b z 2 '
BASENAME=' basename " $ { BASENAME}" . g z '
GZ_FILE="$BASENAME". gz
BZ_FILE="$BASENAME". bz2

# Поиск и с о х ра нени е самой по след ней страницы


LATEST='(cd "$DIR"; I s - l r t " $ (BASENAME)" " $ {GZ_FILE}" "${BZ_FILE}" \
2 > / d e v / n u l l I t a i l - n 1)
f o r i i n " $ { BASENAME}" "${GZ_FILE}" " $ { BZ_FILE}"; do
[ "$LATEST" != " $ i" ] && rm - f "$D IR " /" $i"
done

# В с л у ч а е , если указанный файл последний, то возвращается О


[ "$LATEST" = "$2" ] && r e t u r n О
# Если файл не последний, то возвращается 1
return 1

# Имя скрипта
МУ_ЫАМЕ='Ьаэепате $0'

# ОК, р а з б и р а е т аргументы командной строки и инициализируется


# н е к от ор о е с о с т о я н и е , т . е . : не изменяет с о ст о я н и е ссылок,
# анализирует ф айл/ебс/ш ап_бЬ. сопТ б е з выдачи каких-либо сообщений,
Сжатие страниц Man и Info r ilH H 85

# ищет файлтап_с1Ь.c o n f в / e t c и запускает сжатиет (повторное сжатие).


COMP_METHOD=
COMP_SUF=
COMP_LVL=
FORCE_OPT=
LN_OPT=
MAN_DIR=
VERBOSE_LVL=0
BACKUP=no
FAKE=no
MAN_CONF=/ e t с
w h i l e [ - n "$1" ] ; do
c a s e $1 i n
- - g z i p | — g z |-g )
COMP_SUF=.gz
COMP_METHOD=$1
S h ift

— b z i p 2 |— b z 2 |-b )
COMP_SUF=. bz2
COMP_METHOD=$1
sh ift

--au tom atic)


COMP_SUF=TBD
COMP_METHOD=$1
sh ift

— d eco m p ress|-d )
COMP_SUF=
COMP_LVL=
COMP_METHOD=$1
sh ift

- [ 1 - 9 ] I— f a s t i — b e s t )
COMP_LVL=$1
sh ift

— fo r c e |-F )
FORCE_OPT=-F
sh ift

— so ft|-S )
LN_OPT=-S
sh ift

--h a r d |-H )
LN_OPT=-H
sh ift

—c o n f )
Глава 3. Вопросы конфигурирования, не вошедшие в LFS

MAN_CONF=' e ch o $1 | cu t -d '=' - f 2-'


sh ift

— con f)
MAN_CONF="$ 2"
sh ift 2

— v e r b o se |-v )
l e t VERBOSE_LVL++
sh ift

— backup)
BACKUP=yes
sh ift

— fa k e |-f)
FAKE=yes
sh ift

— h e l p |- h )
help
e x it 0

/*)
MAN_DIR="${MAN_DIR} $ { 1 } "
sh ift

-*)
h e l p $1
e x it 1

*)
e ch o " \ " $ 1 \ " i s n o t an a b s o l u t e p a t h name"
e x it 1

esac
done

# Перенаправления
c a s e $VERBOSE_LVL i n
0)
# О, б е з сообщений
D E S T _F D 0= /de v/null
D E S T _F D 1= /de v/null
VERBOSE_OPT=

1)
# 1, немного сообщений
D E S T _ F D 0= /d e v /std o u t
D E S T _ F D 1= /de v /null
VERBOSE OPT=-v
Сжатие страниц Man и Info 87

*)
# 2 и больше - максимальное количество сообщений
D E S T _F D 0 = /d e v/std ou t
D E S T _ F D l= /d e v /s td o u t
VERBOSE_OPT=,,- v -v "

esac

# Замечание: на моей машине команда 'man - - p a t h ' дважды выдает


# /usr/share/man, один раз с завершающим символом '/' и один раз - без него,
if [ — z "$MA N _ D I R " ]; then
MAN_DIR='manpath - q -C "$MAN_CONF"/man_db. c o n f \
I sed ' s / : / \ \ n / g ' \
I w h i l e r e a d f o o ; do dirnam e " $ f o o " / . ; done \
I s o r t -u \
I w h i l e r e a d b a r ; do e c h o - n "$bar "; d o n e'

# Если в $ {MAN_CONF}/man_db.conf нет MANDATORY_MANPATH, то также abort


if [ - z "$MAN_DIR" ] ; then
echo "No directory specified, and no directory found with \'manpath'"
exit 1
fi

# Проверяем, что указанные каталоги д ей ст в и те л ь н о существуют и


# их можно читать
f o r DIR i n $MAN_DIR; do
i f [ ! - d "$DIR" - o ! - r "$DIR" ] ; t h e n
e c h o " D i r e c t o r y '$DIR' d o e s n o t e x i s t o r i s n o t r e a d a b l e "
e x it 1
fi
done

# Команда Fake?
i f [ "$FAKE" != "no" ] ; t h e n
e c h o " A c t u a l p a r a m e te r s u s e d : "
e c h o - n " C o m p r e s s io n ............... : "
c a s e $COMP_METHOD i n
— b z i p 2 | — b z 2 |- b ) echo -n " b zip 2 " ;;
- - g z i p | - - g z | - g ) e ch o - n " g z i p " ; ;
-- a u t o m a t ic ) echo -n "co m p ressin g" ;;
- - d e c o m p r e s s |- d ) echo -n "d ecom p ressin g " ;;
*) e c h o - n "unknown";;
esac
e c h o " ($COMP_METHOD)"
e c h o "C om pression l e v e l . : $COMP_LVL"
e c h o "C om pression s u f fix : $COMP_SUF"
e c h o - n "F orce c o m p r e s s i o n . : "
[ "foo$FORCE_OPT" = " f o o - F " ] && e c h o " y e s" | | e c h o "no"
e c h o "man_db. c o n f i s . . . . : $ { MAN_CONF} / man_db. c o n f "
e c h o - n " H a r d - l i n k s .................. : "
88 I Глава 3. Вопросы конфигурирования, не вошедшие в LFS

[ "foo$LN_OPT" = " f o o - S " ] &&


echo " c o n v e rt t o s o f t - l i n k s " I | echo " le a v e as i s "
e c h o - n " S o f t - l i n k s ....................: "
[ "foo$LN_OPT" = "foo-H " ] &&
echo " c o n v ert t o h a r d - lin k s " | | echo " le a v e as i s "
e c h o "Backup............................... : $BACKUP"
e c h o "F a k in g ( y e s ! ) ............. : $FAKE"
e c h o " D i r e c t o r i e s ...................: $MAN_DIR"
e c h o " V e r b o s i t y l e v e l . . . : $VERBOSE_LVL"
e x it 0

# Если метод не у к а з а н , то выдаем п од с к а зк у


i f [ —z " $ { COMP_METHOD}" - a "${BACKUP}" = "no" ] ; t h e n
h elp
e x it 1
fi

# Если э т о режим р е з е р в н о г о копирования, то дел аем только


# резервную копию
i f [ "$BACKUP" = " y e s" ] ; t h e n
f o r DIR i n $MAN_DIR; do
c d " $ { DIR}/ . . "
i f [ ! -w "'p w d '" ] ; t h e n
e c h o " D i r e c t o r y ' ' p w d 4' i s n o t w r i t a b l e "
e x it 1
fi
DIR_NAME=' basename "$ {D IR}"'
e c h o " B a c k in g up $ D I R . . . " > $DEST_FD0
[ - f "${D IR _N A M E }.tar.o ld" ] && rm - f " $ { DIR_NAME} . t a r . o ld "
[ - f "${DIR_NAME}.tar" ]&&
mv "${DIR_NAME}.tar" " $ { DIR_NAME} . t a r . o ld "
t a r - c v f "${DIR_NAME}.tar" " $ { DIR_NAME}" > $DEST_FDl
done
e x it 0

# И зв е ст н о, что в MAN_DIR только имена абсолютных путей


# Нужно войти в регистрационную запись локализованных страниц man,
# поэтому э т о д е л а е т с я рекурсивно
f o r DIR i n $MAN_DIR; do
MEM_DIR=' pw d'
i f [ ! -w "$DIR" ] ; t h e n
e c h o " D i r e c t o r y '$DIR' i s n o t w r i t a b l e "
e x it 1
fi
cd "$DIR"
f o r FILE i n *; do
# Исправление с лучая, когда каталог пустой
i f [ " f о о $ FILE" = " fo o * " ] ; t h e n c o n t i n u e ; fi

# Исправление случая, когда жесткие указывают на изменившийся


Сжатие страниц Man и Info

# вариант их сжатия (либо с несж ат ого - на сжатый, либо с


# bz2 - на g z , либо с gz - на b z 2 ) . Также б у т е т исправлена
# ситуаци я, когда е ст ь несколько экзем пляров одной и той же
# страницы, которые могут быть либо сжатыми, либо - н е т .
if [ ! -L "$FILE" - а ! - е "$FILE" ] ; t h e n c o n t i n u e ; fi

# Файлы w h a t i s не сжимаются
i f [ "$FILE" = " w h a t i s " ] ; t h e n c o n t i n u e ; fi

if [ - d "$FILE" ] ; t h e n
# Выполняем рекурсивно в этом к а т а л о ге
e c h o " - > E n t e r i n g $ { DIR}/ $ { F IL E }. . . " > $DEST_FD0
# п ередав ать параметр - - c o n f не нужно, поскольку ук а зан
# к а т а л о г, с которым р а бо т а е м , но в сл уч а е ошибки нужно
# иметь возможность выйти. Мы должны вернут ься в исходный
# каталог для т о го , чтобы возвращаемое значение $0 выдавалось
# правильно.
(cd "$MEM_DIR" && e va l "$0" ${C0MP_METH0D} $ {COMP_LVL} ${LN_OPT} \
$ { VERBOSE_OPT} $ { FORCE_OPT} " $ { DIR}/ $ { FILE}") | | e x i t $?
e c h o "<- L e a v in g $ { DIR}/ $ { FILE} . " > $DEST_FD1

e ls e # !d ir
i f ! c h e c k _ u n i q u e "$DIR" "$FILE"; t h e n c o n t i n u e ; fi

# При автоматическом сжатии получим размер н есж а т о го файла


# (используются символические ссылки) и выбираем
# соответсвующий метод сжатия.
i f [ "$COMP_METHOD" = "— a u t o m a t i c " ] ; t h e n
d e c l a r e - i SIZE
c a s e "$FILE" i n
*.b z2)
S I Z E = $ ( b z c a t "$FILE" | wc - c ) ;;
*.gz)
S I Z E = $ ( z c a t "$FILE" | wc - c ) ;;
*)
SIZE=$(wc - c < "$FILE") ; ;
esac
i f (( $SIZE >= (5 * 2**10) ) ) ; t h e n
COMP_SUF=. bz2
e l i f (( $SIZE >= (1 * 2**10) ) ) ; t h e n
COMP_SUF=.gz
e lse
COMP_SLJF=
fi
fi

# Проверяем, сжат ли файл с помощью ука з а н н о го метода


BASE_FILE='basename "$FILE" . g z '
BASE_FILE='basename "$BASE_FILE" . b z 2 '
i f [ " $ { FILE } " = " $ {BASE_FILE}${COMP_SUF}" \
- a " fo o $ { FORCE_OPT}" = " fo o " ] ; t h e n c o n t i n u e ; fi

# Если у нас символическая ссылка


■ ■ f ill Глава 3. Вопросы конфигурирования, не вошедшие в LFS

if [ - h "$FILE" ] ; then
c a s e "$FILE" i n
*.bz2)
EXT=bz2 ;;
*.gz)
EXT=gz ; ;
*)
EXT=none ;;
esac

if [ ! "$EXT" = "none" ] ; t h e n
LINK=' I s - 1 "$FILE" | c u t - d ">" - f 2 \
| t r - d " " | s e d s / \ . $EXT$// '
NEWNAME=4e ch o "$FILE" | s e d s / \ . $ E X T $ / / '
mv "$FILE" "$NEWNAME"
FILE="$NEWNAME"
else
LINK=' I s - 1 "$FILE" | c u t - d ">" - f 2 | t r - d "
fi

if [ "$LN_OPT" = "-H" ] ; t h e n
# Заменяем символическую ссылку жесткой ссылкой
rm - f "$FILE" && In " $ { LINK}$COMP_SUF" " $ {FILE}$COMP_SUF"
chmod - - r e f e r e n c e " $ {LINK}$COMP_SUF" " $ { FILE}$COMP_SUF"
e lse
# сохраняем э т у символическую ссылку.
rm -f "$FILE" && In -s "${LINK}$COMP_SUF" "${FILE}$COMP_SUF"
fi
e c h o " R e l i n k e d $FILE" > $DEST_FD1

# если у нас обычный файл


e l i f [ - f "$FILE" ] ; t h e n
# Будьте аккуратны с жесткими ссылками: с о з д а й т е список
# файлов, на которые е ст ь жесткие ссылки, которые мы
# будем сжимаем или раскры вать.
# NB. Неоптимально иметь файл, который, по существу,
# б у д е т сжат несколько р а з , т . к . у н е г о есть жесткие
# ссылки. Но э т о безопасный с п о с о б .
i n o d e = ' l s - l i "$FILE" | awk ' { p r i n t $ 1 } ' 4
HLINKS='find . \ ! -name "$FILE" - in u m $ i n o d e '

if [ - n "$HLINKS" ] ; t h e n
# Мы имеем жесткие ссы лки! Удалите их т е п е р ь .
f o r i i n $HLINKS; do rm - f " $ i " ; done
fi

# Теперь обрабатываем файл, у кот ор ого нет жесткой ссылки


# Сначала мы выполняем е г о р аспак ов ку, для т о г о ,
# переупак овать с выбранной степенью с ж а т и я . . .
c a s e "$FILE" i n
* .b z 2 )
Сжатие страниц Man и Info

b u n z ip 2 $FILE
FILE='basename "$FILE" . b z 2 '

*.gz)
g u n z i p $FILE
FILE='basename "$FILE" . g z '

esac

# Сжимаем файл с выбранной степенью сжатия, если э т о нужно


c a s e $COMP_SUF i n
*bz2)
bzip2 ${COMP_LVL} "$FILE" && chmod 644 "${FILE}$ {COMP_SUF}"
e ch o "Com pressed $FILE" > $DEST_FD1

*gz)
g z ip ${COMP_LVL} "$FILE" && chmod 644 "${FILE}$ {COMP_SUF}"
e ch o "C ompressed $FILE" > $DEST_FD1

*)
e ch o "U ncom pressed $FILE// > $DEST_FD1

# Если файл имеет жесткие ссылки, то п е р е с о з д а е м их


# (либо ж ест кие, либо символические)
i f [ - n "$HLINKS" ] ; t h e n
f o r i i n $HLINKS; do
NEWFILE=' e c h o " $ i " | s e d s / \ . g z $ / / | s e d s / \ . b z 2 $ / / '
i f [ "$LN_OPT" = "-S" ] ; t h e n
# Создаем вм есте жесткой ссылки символическую
In - s "$ { FILE} $COMP_SUF" "$ {NEWFILE} $COMP_SUF"
e lse
# Сохраняем жесткую ссылку как жесткую
In " $ { FILE} $COMP_SUF" " $ {NEWFILE} $COMP_SUF"
fi
# Работает в действительности только для жестких ссылок.
# С символическими ссылками ничего не происходит
chmod 644 " $ {NEWFILE} $COMP_SUF"
done
fi

else
# Есть проблема, если это не символическая ссылка и не обычный
# файл. Очевидно, что сюда мы ни когда не п о п а д е м . . . : - (
echo - n "Whaooo... \ " $ {DIR}/ $ { FILE} \" i s n e i t h e r a sy m link "
e c h o "nor a p l a i n f i l e . P l e a s e c h e c k : 7'
I s - 1 " $ { D I R } /$ { F I L E }"
e x it 1
fi
■ I Глава 3. Вопросы конфигурирования, не вошедшие в LFS

done # for FILE


done # for D IR

EOF

Зам ечан ие
Если команду «Копировать - Вставить» очень большого размера
выполнять непосредственно в терминале, то это может привести к
повреждению файла. Эту проблему можно преодолеть, если выпол­
нять копирование в редакторе.

В роли пользователя ro o t сделайте файл compressdoc исполняе­


мым для всех пользователей:
chmod - v 755 / u s r / s b i n / c o m p r e s s d o c

Теперь, чтобы сжать все ваши системные файлы man, вы можете пе­
рейти в роль пользователя ro o t, и выполнить команду compressdoc
~bz2. Чтобы получить исчерпывающую подсказку о том, что может
делать этот скрипт, вы можете выполнить команду compressdoc
■help.
Не забудьте, что некоторые программы, такие как система X Window
и XEmacs также устанавливают свою документацию в нестандар­
тных местах (например, в /u s r/x llR 6 /m a n и т. д.). Убедитесь, что
вы добавили эти места в файл /e tc /m a n _ d b . conf в виде строк вида
MANDATОRY_MANPATH </path> .
Пример:

MAN DAT O R Y _ M A N P A T H /usr/share/man


MANDATORY_MANPATH /u s r / X l l R 6 / m a n
MANDATORY_MANPATH /usr/local/man
MANDATORY MANPATH /opt/qt/doc/man

Как правило, в системах установки пакетов страницы m an/info


не сжимаются, что значит, что вы должны запустить скрипт еще раз,
если вы хотите, чтобы размер вашей документации был минималь­
ным. Также, обратите внимание, что можно без проблем запускать
скрипт после обновления пакета; если у вас есть несколько версий
страницы (например, одна сжата и одна несжата), то будет сохранена
самая последняя страница, а другие будут удалены.
Перевод с оригинала от 2013-08-23 04:37:46 -0700
Пакет lsb_release-l .4 ill!
Пакет Isb release-1.4
Знакомимся с пакетом lsb_release
С помощью скрипта lsb_release script можно получить информацию о
статусе дистрибутива Linux Standards Base (LSB).
Известно, что этот пакет должным образом собирается и работает
на платформе LFS-7.4.
Информация о пакете
• Загрузка (H TTP): http://sourceforge.net/ projects/lsb/files/
lsb_release/l .4/lsb-release-1,4.tar.gz
• Контрольная сумма MD5: 30537ef5a01e0ca94b7b8eb6a36bble4
• Размер загружаемого пакета: 12 КВ
• Оценочный размер требуемого дискового пространства: 80 КВ
• Оценочное время сборки: менее 0,1 SBU
Замечания для пользователей:
h ttp://wiki.linuxfromscratch.org /b lfs/wiki/ lsb_release

Установка пакета lsb_release


Установите пакет lsb_release с помощью следующих команд:
. / h e l p 2 m a n -N — i n c l u d e . / l s b _ r e l e a s e . e x a m p le s \
--alt_ v ersio n _ k ey = p ro g ra m _ v ersio n . / ls b _ r e l e a s e >
l s b _ r e l e a s e .1

Теперь, в роли пользователя r o o t выполните:


i n s t a l l - v -m 644 l s b _ r e l e a s e .1 / u s r / s h a r e / m a n / m a n l / l s b _ r e l e a s e .1 &&
i n s t a l l - v -m 755 l s b r e l e a s e / u s r / b i n / l s b r e l e a s e

Описание пакета
Установленные программы: ЬЬ геЬазе
Установленные библиотеки: Нет
Установленные каталоги: Нет

Краткое описание
lsb relea se Скрипт, который предоставляет
информацию о LSB.

Перевод с оригинала от 2013-08-17 13:38:01 -0700


ГЛАВА 4.
Безопасность

Вопрос безопасности в компьютерной среде рассматривается с раз­


личных сторон. В этой главе приводятся примеры трех различных
аспектов безопасности: доступ, предотвращение вторжения и обна­
ружение вторжения.
Доступ пользователей в систему, как правило, обрабатывается
командой login или приложением, специально созданным для ре­
гистрации пользователя в системе. В этой главе мы покажем, как с
помощью настройки модулей РАМ можно расширить возможности
команды login. Доступ в сеть также можно обезопасить с помощью
настройки пакета iptables, который, как правило, называется бранд­
мауэром. Можно установить библиотеки Network Security Services
(NSS) и Netscape Portable Runtime (NSPR) и позволить пользовать­
ся ими одновременно всем многочисленным приложениям, которым
эти библиотеки требуются. Для тех приложений, для которых нельзя
с точки зрения безопасности предложить что-нибудь лучшее, вы мо­
жете использовать пакет Stunnel, с помощью которого можно будет
внутри туннеля SSL изолировать демон приложения.
Защита от проникновения, например, троянов, возлагается на та­
кие приложения, как GnuPG, предназначенные для проверки досто­
верности подписи пакетов, что позволяет выясноить, был ли изменен
архив tar после того, как он был создан разработчиком.
Наконец, мы коснемся вопросов обнаружения пакетов, в которых
есть «сигнатуры» подозрительных файлов (определяется админист­
ратором), восстановления этих «сигнатур» и сравнения файлов, ко­
торые были изменены.

Уязвимости
Об уязвимостях
Во всех программах есть ошибки. Иногда ошибку можно использо­
вать, например, чтобы пользователи могли получить дополнительные
Уязвимости лтштт 95

привилегии, (может быть, чтобы получить доступ к командной обо­


лочке пользователя root или чтобы просто получить доступ к файлам
другого пользователя или удалить эти файлы), либо могли вывести
из строя приложение на удаленном сайте (отказ в обслуживании) или
просто украсть данные. Такие ошибки помечаются как уязвимости.
Основным местом, где регистрируются уязвимости, является сайт
cve.mitre.org. К сожалению, когда в дистрибутивах начинают выпус­
каться патчи, многие уязвимости, имеющие номера (CVE-yyyy-nnnn),
все еще остаются помеченными как «reserved» («зарезервирован­
ные»), как это и было первоначально. Кроме того, некоторые уяз­
вимости относятся к конкретной комбинации параметров configure,
либо применяются только к старым версиям пакетов, которые в про­
екте BLFS уже давно были обновлены.
Проект BLFS отличается от дистрибутивов систем - в BLFS нет
группы по обеспечению безопасности, а редакторы узнают, что были
уязвимости, только после того, как они становятся достоянием обще­
ственности. Иногда пакет с уязвимостью может в книге не обновлять­
ся в течение длительного времени. Вопросы можно регистрировать в
системе Trac, что, возможно, ускорит их решение.
Обычный способ в BLFS устранения уязвимости состоит, в идеале,
в обновлении книги до новой версии, в которой исправлен релиз кон­
кретного пакета. Иногда это происходит еще до того, как уязвимость
станет достоянием общественности, так что нет никакой гарантии,
что она будет указана как уязвимость в журнале изменений. Кроме
того, может оказаться целесообразным воспользоваться командой sed
или взять патч из дистрибутива пакета.
Дело в том, что на вас лежит ответственность за вашу собственную
безопасность, и за то, как это все потенциально повлияет на возник­
новение каких-либо проблем.
Чтобы следить за тем, что на текущий момент обнаружено, вы мо­
жете следить за объявлениями, связанных с безопасностью одного
или нескольких дистрибутивов. Например, в Debian есть «Безопас­
ность системы Debian». Ссылки, касающиеся безопасности системы
Fedora есть на вики-страницах Fedora. Подробная информация о бе­
зопасности системы Gentoo Linux приводится в «Безопасности сис­
темы Gentoo». А в архивах Slackware есть информация о безопаснос­
ти в разделе «Безопасность Slackware».
Наиболее общим англоязычным источником, пожалуй, является
список Full Disclosure Mailing List, но, пожалуйста, прочитайте ком­
ментарий к этому списку. Если вы пользуетесь другими языками, вы
ШШшШШЖ'тШШ' Глава 4. Безопасность

можете предпочесть изучить другие сайты, например, Ь£Ш ;//у/щу


heise.de/security heise.de (на немецком языке) или cert.hr (на хорват­
ском языке). Эти сайты посвящены не конкретно системе 1лпих. Для
по д п и с ч и к о в есть также ежедневное обновление па lwn.net (свобод­
ный доступ к данным через 2 недели, но доступ к базе данных уязви­
мостей па lwn.net/Vulnerabilities - без ограничения).
Для некоторых пакетов, подписка на их списки «анонсов» будет
дополнительной подсказкой о выходе новых версий.
Замечания для пользователей:
h ttp ://w iki.linuxfromscratch.org/blfs/w iki/vulnerabilities
Перевод с оригинала от 2012-10-25 23:15:09 -0700

Пакет a c l-2 .2 .5 2
Знакомимся с пакетом
В пакете acl находятся утилиты, предназначенные для администри­
рования списков контроля доступа Access Control Lists, которые ис­
пользуются для более точного задания прав доступа к файлам и ка­
талогам.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (H TTP): http://dow nload.savannah.gnu.org/releases/
acl/acl-2.2,52.src.tar.gz
• Контрольная сумма MD5: a61415312426e9c2212bd7dc7929abda
• Размер загружаемого пакета: 384 КВ
• Оценочный размер требуемого дискового пространства: 9,1 MB
• Оценочное время сборки: 0,1 SBU

Зависимости пакета acl


Обязательны е
attr-2.4.47
Замечания для пользователей:
h ttp : / / wiki.linuxfromscratch.org/blfs/wiki/acl

Установка пакета acl


Установите пакет acl при помощи следующих команд:
Пакет acl-2.2.52

sed -i -е 's I/0pkg_name@|&-@pkg_version@| ' \


include/builddefs.in &&

INSTALL_USER=root \
INSTALL_GROUP=root \
./configure — prefix=/usr — libdir=/lib — libexecdir=/usr/lib &&
make

Для получения достоверных результатов, тесты должны выпол­


няться в файловой системе, в которой поддерживаются расширенные
атрибуты. Для того чтобы команда Is правильно отображала дополни­
тельный бит acl, также необходимо после установки пакета acl пере­
установить пакет Coreutils
Теперь в роли пользователя r o o t выполните:
make install install-dev install-lib &&
chmod -v 0755 /lib/libacl.s o .1.1.0 &&
rm -v /lib/libacl.{a,la,so} &&
In -sfv ../../lib/libacl.so.1 /usr/lib/libacl.so &&
sed -i "s Ilibdir='/lib' Ilibdir='/usr/lib' \ " /usr/lib/libacl.la &&
install -v -m644 doc/*.txt /usr/share/doc/acl-2.2.52

Теперь вы должны переустановить пакет Coreutils и приступить к


выполнению тестов.
Есть три набора тестов, которые поставляются вместе с этим паке­
том. Локальный раздел, в котором работают эти тесты, должен быть
смонтирован вместе с acl так, как это описано ниже. Кроме того, поль­
зователи b i n и d a e m o n должны быть созданы или изменены таким
образом, чтобы у них были надлежащие командные оболочки и до­
машние каталоги, а группа d a e m o n должна быть членом группы bin.
Ядро должно быть также сконфигурировано с соответствующими
параметрами ACL options (есть девять различных параметров).
Чтобы запустить стандартные тесты, выполните make te s ts . В роли
пользователя r o o t запустите команду make root-tests.
Третий набор тестов специально предназначен для сетевой фай­
ловой системы Network File System (NFS). Требования, касающиеся
настройки, находятся в тестовых файлах, расположенных в каталоге
test/n fs/.

Пояснение команд
sed - i ... include/builddefs.in: Эта команда изменяет каталог с до­
кументацией так, чтобы это был каталог, учитывающий вер­
сию устанавливаемой документации.
— d i s a b l e - s t a t i c : Эта команда предотвращает установку стати­
ческих версий библиотек.
II Глава 4. Безопасность

Конфигурирование пакета ас!


Подробнее о конфигурировании
Сам пакет acl в конфигурировании не нуждается, но для того, что­
бы можно было пользоваться пакетом acl, файловая система должна
поддерживать списки контроля доступа.
Один из способов это сделать - добавить в файл / e t c / f s t a b пара­
метр acl для файловой системы ext3 так, как это показано ниже:
# файловая точка тип параметры дамп порядок
# система монтирования в fsck

/d e v /s d a l / ext3 d e f a u l t s , a c l , u se r _ x a t tr 0 2

Описание пакета
Установленные программы: chacl, getfacl и setfacl
Установленная библиотека: libacl.{so,a}
Установленные каталоги: /usr/{include/acl,share/doc/acl-2.2.52}

Краткое описание
chacl Изменяет список контроля доступа для файла или
каталога.
getfacl Получает списки контроля доступа для файла,
setfacl Устанавливает списки контроля доступа для файла,
l i b a c l . {so, а} Содержит функции A P I пакета acl.
Перевод с оригинала от 2013-08-22 13:45:41 -0700

Пакет a ttr-2 .4 .4 7
Знакомимся с пакетом a ttr
В пакете attr находятся утилиты, предназначенные для управления
расширенными атрибутами объектов файловой системы.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (H TTP): http://download.savannah.gnu.org/releases/
attr/attr-2.4.47.src.tar.gz
• Контрольная сумма MD5: 84f58dec00b60f2dc8fdlc9709291cc7
• Размер загружаемого пакета: 336 КВ
• Оценочный размер требуемого дискового пространства: 3,5 MB
• Оценочное время сборки: 0,1 SB U
Замечания для пользователей:
http://w iki.linuxfrom scratch.org/blfs/w iki/attr

Установка пакета a ttr


Установите пакет attr с помощью следующих команд:
sed - i -е ' s I/@pkg_name@|&-@pkg_version0Г i n c l u d e / b u i l d d e f s . i n &&

INSTALL_USER=root \
INSTALL_GROUP=root \
./co n fig u re - - p r e f ix = /u s r — d i s a b l e - s t a t i c &&
make

Есть три набора тестов, которые поставляются вместе с этим паке­


том. Наберите следующую команду с тем, чтобы выполнить все три
теста: make tests root-tests ext-tests. Для получения достоверных ре­
зультатов, тесты должны выполняться в файловой системе, в которой
поддерживаются расширенные атрибуты.
Теперь в роли пользователя r o o t выполните:
make i n s t a l l i n s t a l l - d e v i n s t a l l - l i b &&
chmod - v 755 / u s r / l i b / l i b a t t r . s o . 1 . 1 . 0 &&
mv - v / u s r / l i b / l i b a t t r . s o . * / l i b &&
In - s f v . . / . . / l i b / l i b a t t r . s o .1 / u s r / l i b / l i b a t t r . so

Пояснение команд
sed ... include/builddefs.in: Эта команда изменяет каталог с доку­
ментацией так, чтобы это был каталог, учитывающий версию
устанавливаемой документации.
— d i s a b l e - s t a t i c : Этот переключатель предотвращает установ­
ку статических версий библиотек.

Конфигурирование пакета a ttr


Подробнее о конфигурировании
Сам пакет attr в конфигурировании не нуждается, но для того, что­
бы можно было пользоваться пакетом attr, файловая система должна
поддерживать использование расширенных атрибутов.
Один из способов это сделать - добавить в файл / e t c / f s t a b па­
раметр user_xattr для файловой системы ext3 так, как это показано
ниже:
Глава 4. Безопасность

# файловая точка тип параметры дамп порядок


# система монтирования в fsck

/d e v /sd a l / ext3 d e fa u lts ,a c l,u s e r xattr 0

Описание пакета
Установленные программы: аПг, getfattr и 8е1(аиг
Установленная библиотека: libattr.sc
Установленные каталоги: /и8г/{тс1ибе/аПг,8Ьаге/с1ос/аПг-2.4.47}
Краткое описание
attr Позволяет использовать расширенные атрибуты
для объектов файловой системы.
getfattr Получает расширенные атрибуты объектов фай­
ловой системы.
setfattr Устанавливает расширенные атрибуты объектов
файловой системы.
l i b a t t r .s o Содержит функции АР1 пакета аПг.
Перевод с оригинала от 2013-06-05 10:20:09 +0000

Сертификаты Certificate
Authority
Для решения многих вопросов безопасности в системе Linux ис­
пользуется инфраструктура общедоступных ключей Public Key
Inrastructure. Для того, чтобы сертификату можно было доверять,
он должен быть подписан доверенным агентом, который называется
Certificate Authority (СА). Сертификаты, загруженные этом разделе,
берутся из списка системы контроля версий Mozilla и преобразуются
в форму, используемую в пакете OpenSSL-l.O.Oe. Сертификаты также
могут использоваться в других приложениях либо напрямую, либо
опосредованно через openssl.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Знакомимся с пакетом Certificate Authorities


Информация о пакете
• Загрузка сертификата СА: http://m xr.m ozilla.org/m ozilla/
source/security/nss/lib/ckfw /builtins/certdata.txt?raw =l
Сертификаты Certificate Authority 101

• Размер скачиваемого архива С А: 1,2 MB


• Оценочный размер требуемого дискового пространства: 1,2 MB
• Оценочное время сборки: менее 0,1 SBU

Зависимости сертификатов C ertificate Authority


Обязательные
OpenSSL-l.O.le
Необязательные
Wget-1.14
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/wiki /cacerts

Установка сертификатов Certificate


Authority
Сначала создайте скрипт, который переформатирует сертификат в
форму, необходимую для openssl. В роли пользователя r o o t выпол­
ните:
cat > /bin/make-cert.pi « "EOF"
# ! / u s r / b i n / p e r l -w

# И сп о л ь зуе т ся для генерации кодированных файлов РЕМ из файла


# c e r t d a t a . t x t пакета M o z i l l a . З а п у с к а е т с я
# как . / m k c r t . p l > c e r t i f i c a t e . c r t
#
# Фрагменты э т о г о скрипта взяты из системы RedHat ( m k c a b u n d le .p l)
#
# Этот скрипт изменен с тем, чтобы е г о можно было испо л ьзо ват ь
# с данными ( t e m p f il e . с е г ) , из од ного фала c e r t d a t a . t x t ,
# получаемыми взятого из последней версии исходного кода M o z i l l a NSS
# m o z illa /s e c u r ity /n s s/lib /c k fw /b u iltin s/c e r td a ta . tx t
#
# Авторы: DJ Lucas
# Bruce Dubbs
#
# V e r s i o n 20 120 211

my $ c e r t d a t a = ' . / t e m p f i l e . c e r ' ;

o p e n ( IN, " c a t $ c e r t d a t a | " )


I I d i e " c o u l d n o t open $ c e r t d a t a " ;

my $ i n c e r t = 0;

w h ile ( <IN> )
{
102 Глава 4. Безопасность

if ( / ЛС К А _ У А Ш Е MULTI LI NE_0CTAL/ )
{
$incert = 1;
open( OUT, "lopenssl x509 -text -inform DER -fingerprint" )
I| d i e " c o u l d n o t p i p e t o o p e n s s l x509";
}
elsif ( /^END/ && $ i n cert )
{
c l o s e ( OUT );
$incert = 0;
p r i n t "\n\n";
}
e lsif ($incert)
{
my @bs = s p l i t ( / \ \ / );
f o r e a c h my $b (0bs)
{
chomp $b;
prin t f ( OUT "%c", oct($b) ) u n less $b eq w ;
}
}
}
EOF

chmod +x /bin/make-cert.pl

С помощью следующего скрипта создаются сертификаты и архив


со всеми сертификатами. Скрипт создает каталог ./certs и файл
./ B L F S - c a - b u n d l e - $ { V E R S I O N } .crt. Опять же создавайте этот
скрипт в роли пользователя root:
cat > /bin/make-са.sh « "EOF"
# ! / b i n /bas h
# Начало m a k e - c a . s h
# С крипт для з а п о л н е н и я д а н н ы м и C A p a t h па к е т а O p e n S S L из
# хран и л и щ а ф о р м а т и р о в а н н ы х с е р т и ф и к а т о в РЕМ
#
# В л о к а л ь н о м катал о г е д о л ж е н быть файл c e r t d a t a . t x t
# Номер версии б е р е т с я из номера версии данных.
#
# Авторы: DJ Lucas
# Bruce Dubbs
#
# Версия 201 2 0 2 1 1

c e r t d a t a = " c e r t d a t a .txt"

if [ ! -r $ c e r t d a t a ]; the n
echo "$c e r t d a t a m u s t be in the local d i r e c t o r y "
Сертификаты Certificate Authority ИНН: 103

ex it 1
fi

REVISI0N=$(grep CVS_ID $ c e r t d a t a | cut -f4 -d '$ ')

if [ - z " $ { REVISION} " ] ; t h e n


e c h o " $ c e r t f i l e h a s no ' R e v i s i o n ' i n CVS_ID"
e x it 1
fi

VERSI0N=$(echo $REVISION | c u t - f 2 -d" ")

TEMPDIR=$(mktemp -d )
TRUSTATTRIBUTES="CKA_TRUST_SERVER_AUTH"
BUNDLE=,/B L F S - c a - b u n d l e -$ {VERSION} . c r t "
CONVERTSCRIPT=,// b i n / m a k e - c e r t . p i "
SS L D IR = " /e tc/ssl"

rnkdir " $ {TEM PD IR}/certs"

# Для каждого сертификата получаем список стр ок со зв ездоч кам и


CERTBEGINLIST=$(grep -n "A# C ertificate" "${ c e r t d a t a } " | cut -d -fl)

# Для каждого сертификата получаем список завершающих строк


CERTENDLIST=' g r e p - n "ACRA_TRUST_STEP_UP_APPROVED" " $ { c e r t d a t a }"
I cut -d - f 1'

# Начало цикла l o o p
f o r c e r t b e g i n i n $ { CERTBEGINLIST}; do
f o r c e r t e n d i n $ {CERTENDLIST}; do
i f t e s t " $ { c e r t e n d } " - g t " $ { c e r t b e g i n } "; t h e n
break
fi
done

# Дамп во временный файл с именем файла, с номером начальной строки


s e d - n " $ { c e r t b e g i n } , $ { c e r t e n d } p " " $ { c e r t d a t a } " > " $ {TEMPDIR}/
c e r t s / $ {c e r tb e g in } .tm p "
done

u n s e t CERTBEGINLIST CERTDATA CERTENDLIST c e r t e b e g i n c e r t e n d

rnkdir - p c e r t s
rm c e r t s / * # Убеждаемся, что к аталог чистый

f o r tem p file i n $ {T E M P D IR }/certs/* . tmp; do


# Убеждаемся, что сертификат н а д е ж н ы й ...
g r e p "CKA_TRUST_SERVER_AUTH" "${ t e m p f i l e } " | \
e g r e p "TRUST_UNKNOWN|NOT_TRUSTED" > / d e v / n u l l

i f t e s t " $ {? }" = "0"; t h e n


■ jgggg^ ШШ ЩЦX
104 Глава 4. Безопасность

# Отбрасываем значимые ошибки и удаляем файл


ср "$ {tem pfile} " t e m p f i l e . c e r
p e r i $ {CONVERTSCRIPT } > tem p file . c r t
k eyhash= $ ( o p e n s s l x5 09 - n o o u t - i n t e m p f i l e . c r t - h a s h )
echo " C er tific a te ${keyhash) i s n o t t r u s t e d ! R em o v in g ..."
rm - f t e m p f i l e . c e r t e m p file . c r t "$ {te m p file }"
continue
fi

# Если исполнение д ох од и т до э т о г о м еста в цикле, то временный


# сертификат надежный. Находим данные для сертификата и с о з д а е м
# для них сертификационный файл
ср "${ t e m p f i l e } " t e m p f i l e . c e r
p e r i $ {CONVERTSCRIPT} > t e m p f ile . c r t
k e y h a s h = $ ( o p e n s s l x509 - n o o u t - i n t e m p f ile . c r t - h a s h )
mv t e m p f i l e . c r t " c e r t s / $ { k e y h a s h ) .pern"
rm - f t e m p f i l e . c e r " $ { t e m p f i l e }"
e c h o " C r e a te d $ { keyhash}.pern"
done

# Удаляем файлы из ч ер ного списка


# MD5 C o l l i s i o n P r o o f o f C o n cept CA
i f t e s t - f c e r t s / 8 f ll l d 6 9 .p e r n ; then
echo " C e r tific a te 8 f l l l d 6 9 i s n o t t r u s t e d ! R em o v in g ..."
rm - f c e r t s / 8 f l l l d 6 9 . p e r n
fi

# Наконец, с о з д а е м b u n d le и удаляем ненужные данные


c a t c e r t s / * . p e r n > $ {BUNDLE}
rm - r " $ {TEMPDIR}"
EOF

chmod +x /bin/make-ca.sh

Добавим короткий скрипт, с помощью которого из каталога удаля­


ются просроченные сертификаты. Снова создайте этот скрипт в роли
пользователя r o o t :
cat > /bin/remove-expired-certs.sh « "EOF"
# ! /b in /b a sh
# Начало / b i n / r e m o v e - e x p i r e d - c e r t s . s h
#
# Версия 2 012 0 2 1 1

# Убеждаемся, что д а т а ан ал и зи р уе тс я корректно на в с е х с и стем ах


f u n c t i o n m y d a t e {)
{
lo ca l y=$ ( ech o $1 1I c u t -d" " - f 4
lo ca l M=$ ( ech o $1 I c u t -d" " - f l
lo ca l d=$ ( ech o $1 1 c u t -d" " - f 2
lo c a l m
Сертификаты Certificate Authority Ш 105

if [ ${d} - I t 10 ] ; t h e n d = " 0 $ {d }" ; fi

c a s e $M i n
Jan) m=''01'
Feb) m=/' 0 2 ‘
Mar) m=/'03
Apr) m=/'04
May) m=/'05
Jun) m=''06
J u l ) m=''07
Aug) m=/'08
Sep) m=''09
Oct) m=''10
Nov) m=/'11
Dec) m=/'12
esac

c e r t d a t e = " $ {y } $ {m}$ { d }"


}
O PE N SSL =/usr/bin/openssl
D I R = /e tc/ssi/c er ts

if [ $# - g t 0 ] ; t h e n
DIR="$1"
fi

c e r t s = $ ( find $ { DIR} - t y p e f -name "*.pem" - o -name "*. c r t " )


t o d a y = $ ( d a t e +%Y%m%d )

f o r c e r t i n $ c e r t s ; do
n o t a f t e r = $ ( $0PENSSL x5 09 - e n d d a t e - i n " $ { c e r t } " - n o o u t )
d a t e = $ ( e c h o $ { n o t a f t e r } I s e d ' s / An o t A f t e r = / / ' )
m ydate " $ d a te"

if [ $ { c e r t d a t e } - I t $ {today} ]; th en
e c h o " $ { c e r t } e x p i r e d on $ { c e r t d a t e } ! R e m o v in g ..."
rm - f " $ { c e r t } "
fi
done
EOF

chmod +x /bin/remove-expired-certs.sh

Следующие команды будут получать сертификаты и конверти­


ровать их в нужный формат. При желании можно вместо команды
wget использовать веб-браузер, но файл нужно сохранять с именем
c e r t d a t a . t x t . Эти команды можно повторять по мере необходимос­
ти для обновления сертификатов СА.
Глава 4. Безопасность

c e r t h o s t = ' h t t p : / / m x r .m o z i l l a . org' &&


c er td ir= '/m o z illa /so u r ce /se cu rity /n ss/lib /ck fw /b u iltin s' &&
u r l= " $ c e r t h o s t $ c e r t d i r / c e r t d a t a . txt?raw =l" &&

w get — o u t p u t - d o c u m e n t c e r t d a t a . t x t $ u r l &&
unset c e r th o st c e r td ir u rl &&
m ake-ca.sh &&
r e m o v e - e x p i r e d - c e r t s . sh c e r t s

Теперь в роли пользователя r o o t выполните:


SSLDIR=/e t c / s s l &&
i n s t a l l - d $ { SSLDIR}/ c e r t s &&
cp - v c e r t s / * . pem $ { SSLDIR}/ c e r t s &&
c_rehash &&
i n s t a l l B L F S - c a - b u n d l e * . c r t $ { SSLDIR}/ с а - b u n d l e . c r t &&
l n - s v . . / с а - b u n d l e . c r t ${ S S L D I R } / c e r t s / c a - c e r t i f i c a t e s . c r t &&
u n s e t SSLDIR

Наконец, очистите текущий каталог:


rm - г c e r t s B L F S -c a -b u n d le *

Описание пакета
Установленные программы: шаке-са.эЬ, make-cert.pl
и remove-expired-c.erts.sh
Установленные библиотеки: Нет
Установленные каталоги: /etc/ssl/certs

Краткое описание
make-ca.sh Скрипт bash, который переформати­
рует файл c e r t d a t a . t x t для его ис­
пользования в openssl.
make-cert.pl Утилита - скрипт perl, одиночный
сертификат в двоичном формате
(формат .der) в формат .pem.
remove-expired-certs.sh Утилита - скрипт perl, которая
удаляет из каталога просроченные
сертификаты. По умолчанию будет
использоваться каталог / e t c / s s l /
ceerts
Перевод с оригинала от 2013-08-22 13:45:41 -0700
Пакет Соп5о1еК11-0.4.6 107

Пакет Соп8о1еКН-0.4.6
Знакомимся с пакетом
Пакет Соп8о1еКй является фреймворком, предназначенным для
отслеживания состояний различных пользователей, сессий и опре­
деленных мест, имеющихся в системе. В нем предложен механизм,
реализованный в виде программ, который реагирует на изменение
любого из таких элементов или изменения метаданных, связанных с
этими элементами.
Известно, что пакет правильно собирается и работает на платфор­
ме Ь¥5-7Л.

Информация о пакете
• Загрузка Ш ТТРУ http://anduin.liniixfrom scratch.org/soiirces/
ВЬР8/8Уп/с/Сопзо1еКк-0.4.6±аг.х7
• Контрольная сумма МИ5: 6аааб£5627с12Г7587аа116727е2£с1с1а
• Размер загружаемого пакета: 356 КВ
• Оценочный размер требуемого дискового пространства: 8,0 МВ
• Оценочное время сборки: 0,3 БВИ

Зависимости пакета Сопео1еКН


Обязательные
ас1-2.2.52, сШиб^НЬ-О. 100.2 и библиотеки Х о ^
Реком ендуем ы е
Ппих-РАМ -1.1.7 и Ро1кК-0.111

П редупреж дение
Если вы НЕ СОБИРАЕТЕСЬ устанавливать пакет ро1кф вам нужно
вручную отредактировать файл Сопзо1еКа.соЩ для того, чтобы за­
блокировать этот сервис. Если этого не сделать, то это может при­
вести к возникновению ДЫРЫ В СИСТЕМЕ БЕЗОПАСНОСТИ.
^ ш*. %,итттш*,сшшжш,' жлтт
Необязательны е
хшко-0.0.25
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs АуЛп/сопзоккК
Глава 4. Безопасность

Установка пакета ConsoleKit


Установите пакет ConsoleKit с помощью следующих команд:
. /c o n f i g u r e - - p r e f i x = / u s r \
— sysco n fd ir= /etc \
--lo ca lsta ted ir= /v a r \
— lib e x e c d ir = /u s r /lib /C o n s o le K it \
— en ab le-u d ev-acl \
- - e n a b l e - p a m - m o d u l e &&
make

В этом пакете набор тестов отсутствует.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l

Пояснение команд
— e n a b l e - u d e v - a c l : Этот переключатель разрешает собирать
инструмент udev-acl, который используется для того, чтобы
позволять обычным пользователям получать доступ к нодам
устройств, которые обычно доступны только для пользователя
root.
— en a bl e- pa m- mo d u l e: Этот переключатель позволяет пакету
ConsoleKit использовать аутентификацию Linux-PAM. Удали­
те этот параметр, если пакет Linux РАМ не установлен.
— e n a b l e - d o c b o o k - d o c s : Используйте этот параметр, если ус­
тановлен пакет xmlto и вы хотите собрать документацию по
API.

Конфигурирование пакета ConsoleKit


Конфигурация модуля РАМ
Если вы используете Linux РАМ, то вам нужно сконфигурировать
Linux РАМ так, чтобы активировать ConsoleKit когда пользователь
регистрируется в системе. Этого можно достичь с помощью редак­
тирования файла / e t c / p a m . d / s y s t e m - s e s s i o n в роли пользователя
root:
cat » /etc /p a m .d /sy ste m -se ssio n « "EOF"
# Начало добавления C o n s o l e K i t

se ssio n o p tio n a l p a m _ lo g in u id .s o
se ssio n o p tio n a l pam _ck_connector. so n o x ll

# Конец добавления C o n s o l e K i t
EOF
Пакет ConsoleKit-0.4.6 л а м 109

Вам также нужен будет вспомогательный скрипт, который создает


файл в / v a r / r u n / c o n s o l e с тем же самым именем, что и у только что
зашедшего в систему пользователя, и в котором будет запомнен ад­
рес шины D-Bus сессии. Вы можете создать скрипт, выполнив в роли
пользователя r o o t следующие команды:
c a t > / u s r / l i b / C o n s o l e K i t / r u n - s e s s i o n . d / p a m - f o r e g r o u n d - c o m p a t . ck
« "EOF"
# !/b in /sh
T A G D I R = /v a r /r u n / c o n s o l e

[ - n "$CK_SESSION_USER_UID" ] | | e x i t 1
[ "$CK_SESSION_IS_LOCAL" = " t r u e " ]| | e x i t 0

TAGFILE="$TAGDIR/' g e t e n t passwd $CK_SESSION_USER_UID | c u t - f 1 - d : ' "

if [ "$1" = " s e s s i o n _ a d d e d " ] ; t h e n


m kdir - p "$TAGDIR"
e c h o "$CK_SESSION_ID" » "$TAGFILE"
fi

if [ "$1" = " s e s s i o n _ r e m o v e d " ] && [ - e "$TAGFILE" ] ; then


s e d - i "\%/s$CK_SESSION_ID\$%d" "$TAGFILE"
[ - s "$TAGFILE" ] I I rin - f "$TAGFILE"
fi
EOF
chmod - v 755 /u sr /li b / C o n s o l e K i t / r u n - s e s s io n .d /p a m - f o r e g r o u n d - c o m p a t .c k

Дополнительную информацию о конфигурировании смотрите в


/usr/share/doc/C onsoleK it/spec/C onsoleK it.htm l.

Описание пакета
Установленные программы: ck-history, ck-launch-session,
ck-list-sessions, ck-log-system-restart,
ck-log-system-start, ck-log-system-stop
и console-kit-daemon
Установленные библиотеки: libck-connector.so
и pam_ck_connector.so
Установленные каталоги: /etc/ConsoleKit, /usr/include/ConsoleKit,
/usr/lib/C onsoleK it, /u sr/sh a re /d o c /
ConsoleKit и /var/log/C onsoleK it

Перевод с оригинала от 2013-08-22 15:40:33 -0700


И М Глава 4. Безопасность

Пакет СгаскЫ Ь-2.9.0


Знакомимся с пакетом
В пакете СгаскЫЬ находится библиотека, используемая для проверки
стойкости паролей, что осуществляется с помощью сравнения паро­
лей, выбранных пользователем, со словами, взятыми из списка слов.
Известно, что пакет правильно собирается и работает на платфор­
ме ЬЕ5-7.4.
Информация о пакете
• Загрузка (Н ТТР): http://downloads.sourceforge.net/cracklib/
сгаскНЬ-2.9.0Хаг^г
• Контрольная сумма МЭ5: е0£94ас2138£бЗЗс7с77Ь19с1с9а9390
• Размер загружаемого пакета: 616 КВ
• Оценочный размер требуемого дискового пространства: 30 М В
• Оценочное время сборки: менее 0,1 5В11
Дополнительные загрузки
• Рекомендуемый список слов для англоязычных стран (раз­
мер: 4.5 МВ; контрольная сумма тб 5 $ и т: 71а6Ьа0сб50е7£9сс
аГ4707с810Ы4И): http://downloads.sourceforge.net/cracklib/
сгаскЬЬ^о1тЬ-20080507,£г
Е сть и другие списки слов, доступные для загрузки, например, из
http://www .cotse.com /tools/wordlists.htm . Пакетом СгаскЫЬ можно
пользоваться многократно, либо его можно использовать с несколь­
кими списками слов, которые вы выберите для установки.

Важно
Пользователи, как правило, создают свои пароли с использова­
нием обычных слов, используемых в разговорном языке, и взлом­
щики знают об этом. Пакет СгаскЫЬ предназначен для выявления
таких плохих паролей; для этого используется словарь, созданный
из списков слов. Для этого список (списки) слов, используемый с
СгаскЫЬ, должен быть исчерпывающим и содержать слова и комби­
нации клавиш, которые могут быть выбраны пользователями систе­
мы при вводе (угадывании) паролей.

Стандартный список слов, рекомендованный выше для загрузки,


предназначен, главным образом, для англоязычных стран. В других
ситуациях может потребоваться загрузить (или даже создать) допол­
нительные списки слов.
Пакет CrackLib-2.9.0 | . Ш И П П

Отметим, что списки слов, предназначенные для проверки орфог­


рафии, нельзя использовать в качестве списков слов для CrackLib в
странах, в которых в алфавитах не используется латиница, из-за того,
что этих странах в качестве неудачных паролей используются еще и
другие комбинации нажатий клавиш.

Зависимости пакета CrackLib


Необязательны е
Python-2.7.5
Замечания для пользователей:
http://wiki.Hnuxfrom scratch.org/blfs/wiki/cracklib

Установка пакета CrackLib


Установите пакет CrackLib с помощью следующих команд:
./configure --p r e fix = /u sr \
— w ith -d e fa u lt-d ic t= /lib /c r a c k lib /p w _ d ic t \
— d i s a b l e - s t a t i c &&
make

Теперь в роли пользователя r o o t выполните:


make i n s t a l l &&
mv - v / u s r / l i b / l i b c r a c k . s o .2 * / l i b &&
In - v - s f . . / . . / l i b / l i b c r a c k . s o . 2 . 9 . 0 / u s r / l i b / l i b c r a c k . s o

Чтобы установить рекомендованный список слов и создать словарь


CrackLib, выполните в роли пользователя root следующие команды.
Можно также использовать другие списки слов (текстовые, по одному
слову в каждой строке), если их просто установить в каталоге / u s г /
s h a r e / d i e t и добавить их с помощью команды create-cracklib-dict.
i n s t a l l - v -m644 -D . . / c r a c k l i b - w o r d s - 2 0 0 8 0 5 0 7 . gz \
/ u s r / s h a r e / d i c t / c r a c k l i b - w o r d s . gz &&
g u n z i p - v / u s r / s h a r e / d i c t / c r a c k l i b - w o r d s . gz &&
In - v - s c r a c k l i b - w o r d s / u s r / s h a r e / d i c t / w o r d s &&
e c h o $ (hostn am e) » / u s r / s h a r e / d i c t / c r a c k l i b - e x t r a - w o r d s &&
i n s t a l l - v -m755 - d / l i b / c r a c k l i b &&
c r e a te -c r a c k lib -d ic t /u sr /sh a r e /d ic t/c r a c k lib -w o r d s \
/u sr/sh a re /d ic t/cr a ck lib -ex tr a -w o rd s

Если хотите, вы можете проверить правильную работу библиоте­


ки, выполнив для этого в роли непривилегированного пользователя
следующую команду:
make t e s t
Глава 4. Безопасность

Важно
Если вы устанавливаете пакет CrackLib после того, как ваша система
LFS была полностью завершена, и у вас есть установленный пакет
Shadow, то если вы хотите, чтобы в вашей системе использовались
сильные пароли, вам потребуется переустановить пакет Shadow-
4.1.5.1. Если затем вы хотите установить пакет Linux-PAM-1.1.6. вы
можете игнорировать это замечание, поскольку пакет Shadow пот­
ребуется снова переустановить после установки пакета Linux-PAM.

Пояснение команд
- - w i t h - d e f a u l t - d i c t = / l i b / c r a c k l i b / p w _ d i c t : Этот параметр
указывает, что словарь CrackLib будет установлен в иерархии
/lib.
— d i s a b l e - s t a t i c : Этот переключатель предотвращает установ­
ку статических версий библиотек.
mv -v /usr/lib/libcrack.so.2* ДЬ и In -v -sf ../../litylibcrack.so.2.8.1
...: Эти две команды перемещают библиотеку l i b c r a c k .
s o . 2 .8 .1 и связанную с ней символическую ссылку из / us г /
l i b в / l i b , а затем пересоздают символическую ссылку / u s r /
l i b / l i b c r a c k . so, которая будет указывать на перемещенный
файл.
install -v -m644 -D Эта команда создает каталог / u s r / s h a r e /
d i e t (если он еще не существует) и в нем устанавливается в
виде архива сжатый список слов.
In -v -s cracklib-words /usr/share/dict/w ords: Исторически в
качестве списка слов используется / u s r / s h a r e / d i c t / w o r d s ,
причем words является основным списком слов в каталоге /
u s r / s h a r e / d i e t . Не используйте эту команду, если в вашей
системе уже установлен файл / u s r / s h a r e / d i c t / w o r d s .
echo $(hostnam e) » . . . : Значение hostname будет отправлено
в файл c r a c k l i b - e x t r a - w o r d s . Этот дополнительный файл
предназначен для хранения конкретного списка, связанного с
конкретной системой и в котором указываются легко угадыва­
емые пароли, например, название компании или отдела, имена
пользователей, названия выпускаемых изделий или продук­
тов, имена компьютеров, имена доменов и т. д.
create-cracklib-dict Эта команда создает из списка слов сло­
варь CrackLib. Измените команду для того, чтобы добавить
дополнительные списки слов, которые у вас установлены.
1акет Cyrus SASL-2.1.26 113

Описание пакета
Установленные программы: cracklib-check, cracklib-format,
cracklib-packer, cracklib-unpacker
и create-cracklib-dict
Установленные библиотеки: libcrack.so и модуль для Python -
_cracklibmodule.so
Установленные каталоги: /lib/cracklib, /u sr/sh are /d ic t
и /usr/share/cracklib

Краткое описание
create-cracklib-dict Используется для создания из заданного
списка (списков) слов словаря CrackLib.
l i b e r a c k . so Предоставляет механизм быстрого поис­
ка в словаре, применяемый при проверке
стойкости пароля.
Перевод с оригинала от 2013-07-12 21:00:17 +0000

Пакет Cyrus SASL-2.1.26


Знакомимся с пакетом Cyrus SASL
В пакете Cyrus SASL реализован слой простой аутентификации и
(Simple Authentication and Security Layer) - механизм, позволяющий
добавлять поддержку аутентификации в протоколы, связанные с со­
единениями. Для использования SASL протокол включает команду
идентификации и аутентификации пользователя на сервере и опци­
онально защиту последующего взаимодействия сторон в рамках про­
токола. Если защита внутри протокола используется, то между соеди­
нением и протоколом добавляется слой безопасности.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (FTP): ftp://ftp.cyrusim ap.org/cyrus-sasl/cyrus-sasl-
2.1.26.tar.gz
• Контрольная сумма MD5: a7f4e5e559a0e37b3ffc438c9456e425
• Размер загружаемого пакета: 5,0 MB
• Оценочный размер требуемого дискового пространства: 30 MB
• Оценочное время сборки: 0,5 SBU
ШЖшЛШШя?*Ш■■11 Глава 4. Безопасность

Дополнительные загрузки
• Необходимый патч: http: / / www.linuxfromscratch.org/patches/
blfs/svn/cyrus-sasl-2.1.26-fixes-1.patch

Зависимости пакета Cyrus SASL


Обязательны е
OpenSSL-l.O.le
Р еком ендуем ы е
Berkeley DB-6.0.20
Н еобязательны е
Linux-РАМ-1.1.7, MIT Kerberos V5-1.11.3, MySQL-5.6.13, OpenJDK-
1.7.0.40/IcedTea-2.4.1, OpenLDAP-2.4.36, PostgreSQL-9.3.0, SQLite-
3.8.0.2, krb4 и Dmalloc
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/w iki/cyrus-sasl

Установка пакета Cyrus SASL


Установите пакет Cyrus SASL с помощью следующих команд:
p a t c h - N p l - i . . / c y r u s - s a s l - 2 . 1 . 2 6 - f i x e s - l . p a t c h &&
a u t o r e c o n f -fi &&
pu shd s a s l a u t h d
a u t o r e c o n f -fi &&
popd
./c o n fig u re — p r efix = /u sr \
--sy sco n fd ir= /e tc \
— w ith -d b p a th = /v a r /lib /sa s l/sa sld b 2 \
— w ith -sa sla u th d = /v a r /r u n /sa sla u th d \
- - e n a b l e - a u t h - s a s l d b &&
make

В этом пакете набор тестов отсутствует. Если вы планируете ис­


пользовать механизм аутентификации GSSAPI, то после установки
пакета рекомендуется проверить его на примере тестовых сервера и
клиентских программ, которые были собраны на предыдущем шаге.
Инструкции для проведения тестов можно найти на http://w w w .
linuxfrom scratch.org/hints/downloads/files/cvrus-sasl.txt.
Теперь в роли пользователя r o o t выполните:
make i n s t a l l &&
i n s t a l l - v -dm755 / u s r / s h a r e / d o c / c y r u s - s a s l - 2 . 1 . 2 6 &&
i n s t a l l - v -m644 d o c / { * . {h tm l, t x t , f i g } , ONEWS, TODO} \
saslauthd/LDAP_SASLAUTHD / u s r / s h a r e / d o c / c y r u s - s a s l - 2 . 1 . 2 6 &&
i n s t a l l - v -dm700 / v a r / l i b / s a s l
Пакет Cyrus SASL-2.1.26 115

Пояснение команд
— w i t h - d b p a t h = / v a r / l i b / s a s l / s a s l d b 2 : Этот параметр застав­
ляет создавать базу данных sasldb в каталоге / v a r / i i b / s a s l ,
а не в каталоге / e t c .
— w i t h - s a s l a u t h d = / v a r / r u n / s a s l a u t h d : Этот параметр застав­
ляет демон saslauthd использовать для хранения данных вре­
мени исполнения каталог / v a r / r u n / s a s l a u t h d , что соответс­
твует стандарту FHS.
— e n a b l e - a u t h - s a s l d b : Этот переключатель включает фоновую
поддержку аутентификации SASLDB.
— wi th -d bl ib =g db m: Этот параметр заставляет использовать
GDBM, а не Berkeley DB.
—w i t h - l d a p : Этот параметр разрешает использование
OpenLDAP.
— e n a b i e - i d a p d b : Этот параметр позволяет использовать в качес­
тве основного движка механизм аутентификации LDAPDB.
В этом параметре присутствует циклическая зависимость. Для
решения этой проблемы смотрите http://w iki.linuxfrom scratch.
org/blfs/w iki/cyrus-sasl.
— e n a b l e - j a v a: Этот переключатель разрешает компилировать
библиотеки поддержки языка Java.
— e n a b l e - l o g i n : Этот дополнительный переключатель включает
неподдерживаемую аутентификацию LOGIN.
— e n a b i e - n t l m : Этот дополнительный переключатель включает
неподдерживаемую аутентификацию NTLM.
install -V -m644 ...: С помощью этой команды устанавливается до­
кументация, которую нельзя установить с помощью команды
make install.
install -v -m700 -d /var/lib/sasl: Эти каталоги должны существо­
вать, когда запускается команда saslauthd или используется
плагин sasldb. Если вы не собираетесь запускать демон или ис­
пользовать плагины, вы можете не создавать эти каталоги.

Конфигурирование пакета Cyrus SASL


Конфигурационные файлы
/ e t с / s a s l a u t h d . c o n f (для конфигурирования saslauthd при ра­
боте с LDAP) и / e t c / s a s l 2 / A p p n a m e . conf, (где «Appname» является
названием конкретного используемого приложения).
пб ■НЯНИ Глава 4. Безопасность

Подробнее о конфигурировании
Информацию о том, как осуществлять настройки конфигурацион­
ных файлов приложений, смотрите в /и з г /зЬ а г е /с 1 о с /с у ги з-з а з1 -
2 . 1 .2 6 / зуза<±пл_п. ЬТт1. Конфигурирование 8а81аи1;Ь(1 для работы с
ОрепЫЭАР смотрите в / и зг /з Ь а г е /с !о с /с у г и з-за з1 -2 .1 . 26/ЬОАР_
ЗАЗЬАиТНО.
Инициализационный скрипт
Если вам требуется запускать демон БазНиЛс! при старте системы,
установите скрипт инициализации /е ^ /г с .с 1 /з .п л ^ . с!/суги з-заз1,
который входит в состав пакета ЬЕ8-Ьоо1зспр1з-20130908:
таке 1 п з Т а 1 1 -з а з 1 а и 1 :] 1 с 1

шш. тж. ' " ы ттмжшттттшштттшттттшшттжтштт


Зам ечан ие
Вам необходимо изменить /еЩ/зузсопАд/эазЫиЩб и вместо пара­
метра аотнмесн указать желаемый механизм аутентификации.

Описание пакета
Установленные программы: р1г^ту1е\уег, БазкиШс!, заэЫЬНзШзе^,
8а81ра88\ус12 и 1е818а81аи1Ьс1
Установленные библиотеки: НЬза812.80
Установленные каталоги: /и8г/тс1ис1е/8а81, /и8г/НЬ/8а812, /ш г /
8Ьаге/бос/суги8-8а81-2.1.26 и /уаг/НЬ/8а81
Краткое описание
р Л ^н тел у ег Используется для выдачи списка загружае­
мых плагинов БАББ и их свойств.
8а81аиЛ;Ьс1 Является сервером аутентификации БАББ.
8а8ЫЬН8Ш8еГ82 Используется для вывода списка пользовате­
лей из базы данных паролей БАББ эаз1с1Ь2.
8а81ра88лус12 Используется для установки и удаления в
БАББ пароля пользователя и выбора меха­
низма работы с секретными значениями в
базе данных паролей БАББ зазЫ Ь2.
1е818а81аиЛ(1 Тестовая утилита для аутентификационного
сервера БАББ.
И Ь з а з 1 2 .эо Библиотека аутентификации общего назна­
чения, предназначенная для использования в
серверных и клиентских приложениях.
Перевод с оригинала от 2013-08-22 15:40:33 -0700
Пакет GnuPG-1.4 .1 4
Знакомимся с пакетом GnuPG
В пакете GnuPG находятся утилиты шифрования с использованием
открытого/закрытого ключей. Их можно использовать для подписи
файлов или электронных писем, а также в качестве средства, удос­
товеряющего идентичность и предотвращающего фальсификацию
содержимого файла или электронного письма. Для получения рас­
ширенной версии GnuPG, в который поддерживается S/M IM E, ис­
пользуйте пакет GnuPG-2.0.21.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.
Информация о пакете
• Загрузка (H TTP): http: //anduin.linuxfrom scratch.org/sources/
BLFS/svn/g/gnupg-l,4.14.tar.bz2
• Загрузка (FTP): ftp://ftp.gnupg.org/g c rypt/gnupg/ gnupg-
1.4.14.tar.bz2
• Контрольная сумма MD5:99dede468204cb6ee22de7e3e3772abl
• Размер загружаемого пакета: 3,5 MB
• Оценочный размер требуемого дискового пространства: 45 MB
• Оценочное время сборки: 0,6 SBU
Зависимости пакета GnuPG
Необязательны е
OpenLD АР-2.4.36, libusb-compat-0.1.5, cURL-7.32.0, почтовыйтран-
спортный агент МТА и docbook-to-man
Замечания для пользователей:
h ttp ://wiki.linuxfrom scratch.org/blfs/wiki /gnupg

Установка пакета GnuPG


Установите пакет GnuPG с помощью следующих команд:
./co n figu re - - p r e fix = /u s r - - l i b e x e c d i r = / u s r / l i b &&
make
Если у вас уже есть установленный пакет texlive-20130530 и вы хо­
тите создать документацию в другом формате, введите следующую
команду:
make -С doc p d f htm l
Чтобы проверить результаты, выполните команду make check.
Щ Д тЁЁшЩ
Ш'ШЦ | | j Глава 4. Безопасность

Обратите внимание, что если вы уже установили пакет GnuPG 2, то


инструкции, приведенные ниже, перепишут / us г /share/m an/m an 1/
g p g - z ip . 1. Теперь в роли пользователя ro o t выполните:
/
make i n s t a l l &&

i n s t a l l - v -m755 - d / u s r / s h a r e / d o c / g n u p g - 1 . 4 . 1 4 &&
cp -v /u sr/sh are/gn u p g/F A Q \
/ u s r / s h a r e / d o c / g n u p g - 1 . 4 . 1 4 &&
i n s t a l l - v -m644 d o c / { h i g h l i g h t s - 1 . 4 . tx t,O p en P G P ,sa m p lek eys.
asc,DETAILS} \
/u s r /s h a r e /d o c /g n u p g - 1 .4 .1 4

Если вы создали документацию в альтернативных форматах, уста­


новите ее, выполнив для этого в роли ro o t следующую команду:
cp - v -R d o c / g n u p g l . { h t m l , p d f } / u s r / s h a r e / d o c / g n u p g - 1 . 4 . 1 4

Пояснение команды
— lib e x e c d ir = /u s г / l i b : С помощью этой команды подкаталог
g n u p g создается в каталоге / u s r / l i b , а не в каталоге / u s r /
lib e x e c .

Описание пакета
Установленные программы: gpg, gpg-zip, gpgsplit и gpgv
Установленные библиотеки: Нет
Установленные каталоги: /usr/lib/gnupg, /usr/share/gnupg
и /usr/share/doc/gnupg-1.4.14
Краткое описание
gpg Является интерфейсом командной строки для этой
реализации OpenPGP.
gpg-zip Скрипт командной оболочки, в котором реализована
версия tar, использующая gpg.
gpgsplit Выделяет отдельные кольца ключей,
gpgv Проверяет только версию gpg.
Перевод с оригинала от 2013-08-22 15:40:33 -0700

Пакет GnuPG-2.0.21
Знакомимся с пакетом GnuPG 2
В пакете GnuPG 2 находятся инструментальные средства GNU, пред­
назначенные для организации безопасной связи и хранения данных.
Пакет можно использовать для шифрования данных и создания циф­
ровых подписей. В его состав входят средства расширенного управ­
ления ключами и, как это указано в RFC2440, он совместим с пред­
ложенным для использования в интернете стандартом OpenPGP, а
также, как указывается в нескольких RFC, - со стандартом S/M IM E.
Пакет GnuPG 2 является стабильная версией GnuPG, в котором ин­
тегрирована поддержка OpenPGP и S/M IM E. Он не конфликтует с
установленным пакетом GnuPG-1.4.14, в котором поддерживается
только OpenPGP.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.
Информация о пакете
• Загрузка (FTP): ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-
2.0.21.tar.bz2
• Контрольная сумма MD5:48c05f5dfe97cf21ae0ced811aaad750
• Размер загружаемого пакета: 4,1 MB
• Оценочный размер требуемого дискового пространства: 65 MB
• Оценочное время сборки: 1,2 SBU

Зависимости пакета GnuPG 2


Обязательные
Pth-2.0.7, Libassuan-2.1.1, libgcrypt-1.5.3 и Libksba-1.3.0
Реком ендуем ы е
PIN-Entry-0.8.3 (требуется в режиме реального времени для ис­
пользования большинства функций пакета)
Необязательные
OpenLDАР-2.4.36, libusb-compat-0.1.5, cURL-7.32.0, дополнения
GNU и почтовый транспортный агент МТА
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/b1fs/wiki/gnupg2

Установка пакета GnuPG 2


Установите пакет GnuPG 2 с помощью следующих команд:
./co n figu re - - p r e f ix = /u s r \
— Iib e x e c d ir = /u sr /lib /g n u p g 2 \
— d o c d i r = / u s r / s h a r e / d o c / g n u p g - 2 . 0 . 2 1 &&
make &&

makeinfo — html — n o - s p l i t - о doc/gnupg_nochunks. html d o c / g n u p g .t e x i &&


m akeinfo — p l a i n t e x t -o d o c /g n u p g .tx t d o c /g n u p g .te x i
Глава 4. Безопасность

Если у вас уже есть установленный пакет texlive-20130530 и вы хо­


тите создать документацию в другом формате, введите следующую
команду:
make -С doc p d f ps htm l

Чтобы проверить результаты, выполните команду make check.


Обратите внимание, что если вы уже установили пакет G nuPC 2, то
инструкции, приведенные ниже, перепишут / u s r / s h a r e / m a n / m a n l /
g p g - z i p . 1. Теперь в роли пользователя r o o t выполните:
make i n s t a l l &&

i n s t a l l - v -m755 - d / u s r / s h a r e / d o c / g n u p g - 2 . 0 . 2 1 / h t m l &&
i n s t a l l - v -m644 d o c / g n u p g _ n o c h u n k s . htm l \
/ u s r / s h a r e / d o c / g n u p g - 2 . 0 . 2 1 / g n u p g . h t m l &&
i n s t a l l - v -m644 d o c / * . t e x i d o c/gn u p g. t x t \
/u s r /s h a r e /d o c /g n u p g -2 .0 .2 1

Если вы создали документацию в альтернативных форматах, уста­


новите ее, выполнив для этого в роли r o o t следующую команду:
i n s t a l l - v -m644 d o c / g n u p g . h t m l / * \
/ u s r / s h a r e / d o c / g n u p g - 2 . 0 . 2 1 / h t m l &&
i n s t a l l - v -m644 d o c / g n u p g . { p d f , d v i , p s } \
/u sr /sh a r e /d o c /g n u p g -2 .0 .2 1

Пояснение команд
— I i b e x e c d i r = / u s r / l i b / g n u p g 2 : Э тот переклю чатель создает
подкаталога g n u p g в каталоге / u s r / l i b , а не в каталоге / u s r /
libexec.
— d o c d i r = / u s r / s h a r e / d o c / g n u p g - 2 . 0 . 21: Этот переключатель
указывает, что в качестве каталога с документами, исполь­
зуемого по умолчанию, будет использоваться каталог / u s r /
s h a r e / d o c / g n u p g - 2 .0.21.
— e n a b l e - s y m c r y p t r u n : Этот переключатель указывает, что бу­
дет собрана программа symcryptrun.

Описание пакета
Установленные программы: addgnupghome, applygnupgdefaults,
gPg-agent, gpg-connect-agent, gpg2, gpgconf, gpgkey2ssh,
gpgparsemail, gpgsm, gpgsm-gencert.sh, gpgv2, kbxutil, scdaemon,
symcryptrun и watchgnupg
Установленные библиотеки. Нет
Установленные каталоги: /usr/lib/gnupg2, /usr/share/gnupg и
/usr/sh are/d o c/g n upg-2.0.21
Пакет G nuPG -2.0.21 121
Краткое описание
addgnupghome Используется для создания и заполнения
пользовательских каталогов ~ / . gnupg
applygniipgdefaults Является изолирующим скриптом (wrapper
script), используемым для запуска gpgconf с
параметром — a p p l y - d e f a u l t s в домашних
каталогах GnuPG для всех пользователей,
gpg-agent Является демоном, управляющим секретными
(приватными) ключами независимо от того,
какой протокол используется. Используется в
качестве движка для gpg и gpgsm, а также для
нескольких других утилит.
gpg-connect-agent Утилита, используемая для взаимодействия с
работающим gpg-agent.
gPg2 Является частью OpenPGP в пакете GNU
Privacy Guard (G nuPG ). Это инструменталь­
ное средство предоставляет сервис цифрового
шифрования и цифровой подписи, соответст­
вующих стандарту OpenPGP.
gpgconf Утилита, предназначенная для автоматическо­
го и сравнительно безопасного доступа и мо­
дификации конфигурационных файлов, рас­
положенных в домашнем каталоге - / . g n u p g .
Она не предназначена для непосредственного
вызова пользователем вручную и вызывается
автоматически из графического пользователь­
ского интерфейса,
gpgparsemail Утилита, которая в настоящий момент исполь­
зуется только отладки. Для того, чтобы полу­
чить информацию о ее использовании, запус­
тите ее с параметром —help,
gpgsm Инструментальное средство, похожее на gpg,
которое используется для предоставления
сервиса цифрового шифрования и цифровой
подписи для сертификатов Х.509 и протокола
CMS. Оно в основном используется в качест­
ве движка при обработке электронной почты
S/M IM E.
122 Глава 4. Безопасность

gpgsm-gencert.sh Простой инструмент, используемый для ин­


терактивной генерации запроса на сертифи­
кат, который будет выводиться в стандартный
системный выходной поток.
gPgv2 Проверяет только версию gpg2.
kbxutil Используется для вывода списка данных экс­
порта и импорта Keybox.
scdaemon Является демоном, используемым для управ­
ления смарт-картами. Он, как правило, вызы­
вается из gpg-agent и напрямую вообще не
используется.
symcryptrun Простое инструментальное средство, приме­
няемое для симметричного шифрования.
watchgnupg Используется для прослушивания доменного
сокета Unix Domain, создаваемого любым инс­
трументальным средством GnuPG.
Перевод с оригинала от 2013-09-05 10:04:34 -0700

Пакет GnuTLS-3.2.4
Знакомимся с пакетом GnuTLS
В пакете GnuTLS находится библиотека и инструменты для работы
в пользовательском пространстве, с помощью которых понадежного
транспортного уровня реализуется слой безопасности. В настоящее
время библиотека GnuTLS реализует стандарты, предложенные ра­
бочей группой IETF TLS. Цитата из спецификации протокола TLS:
«Протокол TLS обеспечивает конфиденциальность сооб­
щений через интернет. Протокол позволяет клиент-сер­
верным приложениям взаимодействовать таким способом,
который предотвратит перехват, фальсификацию или
подделку сообщения».
Пакет GnuTLS обеспечивает поддержку протоколов TLS 1.1,
TLS 1.0 и SSL 3.0, расширений TLS, к числу которых относится имя
сервера и максимальный размер записи. Кроме того, библиотека под­
держивает аутентификацию с использованием протокола SRP, серти­
фикатов Х.509 и ключей OpenPGP, а также поддерживает расширение
TLS Pre-Shared-Keys (PSK), расширение Inner Application (TLS/IA )
и обработку сертификатов Х.509 и OpenPGP.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.
Информация о пакете
• Загрузка (FTP): ftp://ftp.gnutls.O rg/gcrvpt/gnutls/v3.2/
gnutls-3.2.4.tar.xz
• Контрольная сумма MD5: 79ef8538d65128b7ed47046649b98c27
• Размер загружаемого пакета: 4,7 MB
• Оценочный размер требуемого дискового пространства: 104 MB
• Оценочное время сборки: 1,2 SBU (дополнительно 1,2 SBU в
случае, если запускается тестовый набор)

Зависимости пакета GnuTLS


Обязательные
Nettle-2.7.1
Реком ендуем ы е
Сертификаты Certificate Authority и libtasnl-3.3
Необязательны е
GTK-Doc-1.19, Guile-2.0.9, libidn-1.28, pll-kit-0.20.1, Unbound-
1.4.20 (для сборки библиотеки для DANE) и Valgrind (использует­
ся во время работы тестового набора)

Зам ечан ие
Обратите внимание, что если вы не установили пакет libtasn 1-3.3. то
вместо него будет использоваться более старая версия, поставля­
емая в архиве GnuTLS.

Замечания для пользователей:


http://wiki.linuxfrom scratch.org/blfs/w iki/gnutls

Установка пакета GnuTLS


Установите пакет GnuTLS с помощью следующей команды:
./configure --p r e fix = /u sr \
--d isa b le -sta tic \
— w i t h - d e f a u l t - t r u s t - s t o r e - f i l e = / e t c / s s l / c a - b u n d l e . c r t &&
make

Чтобы проверить результаты, выполните команду make check.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l
■ Ш Н Н Я г i Глава 4. Безопасность

Если вы в скрипт configure не передали параметр — e n a b l e - g t k -


doc,то с помощью следующей команды в роли пользователя r o o t ус­
тановите документацию по API:
make -С d o c / r e f e r e n c e i n s t a l l - d a t a - l o c a l

Пояснение команд
— w i t h - d e f a u lt - t r u s t - s t o r e - f i le = / e t c / s s l / c a - b u n d l e . crt:
Этот переключатель сообщает скрипту configure где искать
сертификаты СА.
— d i s a b l e - s t a t i c : Этот переключатель предотвращает установ­
ку статических версий библиотек.
— e n a b l e - g t k - d o c : Используйте этот параметр, если установлен
пакет GTK-Doc, и вы хотите пересобрать и установить доку­
ментацию по API.

Описание пакета
Установленные программы: certtool, crywrap, danetool, gnutls-cli,
gnutls-cli-debug, gnutls-serv, ocsptool,
p i ltool, psktool и srptool
Установленные библиотеки: libgnutls.so, libgnutls-openssl.so,
libgnutls-xssl.so libgnutlsxx.so
Установленные каталоги: /usr/include/gnutls, /u sr/sh a re /d o c /
gnutls-3.2.1 и /u sr/sh are /g tk -d o c/h tm l/
gnutls

Краткое описание
certtool Используется для генерации сертификатов
Х.509, запросов на сертификаты, и закрытых
ключей.
crywrap Простой модуль-обвертка, который ожидает
подключения TLS/SSL, а затем перенаправляет
их на незашифрованное место.
danetool Инструментальное средство, используемое для
генерации и проверки записей ресурсов DNS
для протокола DANE.
gnutls-cli Простая клиентская программа, которая настра­
ивает соединение TLS с другим компьютером.
gnutls-cli-debug Простая клиентская программа, которая настра­
ивает соединение TLS с другим компьютером и
выдает очень подробный отчет о результатах.
Пакет GPGME-1.4.3

gnutls-serv Простая серверная программа, которая слушает


входящие соединения TLS.
ocsptool Программа, которая анализирует и выдаст ин­
формацию о запросах/ответах OCSP, генериру­
ет запросы и проверяет ответы,
p llto o l Программа, которая позволяет обрабатывать
данные из смарт-карт и модулей безопасности
PK CS#1.
psktool Простая программа, которая генерирует случай­
ные ключи для использования с TLS-PSK.
srptool Простая программа, которая с помощью GNU TLS
эмулирует программы, имеющиеся в библиотеках
Stanford SRP (Secure Remote Password - пароль для
безопасного дистанционного доступа),
l i b g n u t l s . so Содержит основные функции API и функции
API для работы с сертификатами Х.509.
Перевод с оригинала от 2013-09-01 09:34:27 -0700

Пакет О Р й М Е -1.4.3
Знакомимся с пакетом й Р в М Е
Пакет в Р С М Е является библиотекой на языке С, которая позволяет
добавлять в программы криптографическую поддержку. Он предна­
значен для того, чтобы в приложениях упростить доступ к движкам,
использующим открытый ключ шифрования, например, в п и Р С и л и
GpgSM. В пакете С РС М Е предоставляется высокоуровневый крип­
тоинтерфейс АР1, используемый для шифрования, дешифрования,
создания электронной подписи, проверки подписи и управления
ключами.
Известно, что пакет правильно собирается и работает на платфор­
ме ЬЕ8-7.4.

Информация о пакете
• Загрузка (ЕТР): ftp://ftp.gnupg.org/gcrypt/gpgm e/gpgm e-
1.4.3^аг.Ьг2
• Контрольная сумма М Б5: 334e524cffa8af4e2f43ae8afe585672
• Размер загружаемого пакета: 956 КВ
• Оценочный размер требуемого дискового пространства: 23 МВ
• Оценочное время сборки: 0,4 8 В и
Глава 4. Безопасность

Зависимости пакета GPGME


Обязательны е
Libassuan-2.1.1
Необязательны е
GnuPG-1.4.14 или GnuPG-2.0.21 (используется при работе теста)
Замечания для пользователей:
http://wiki.liniixfrom scratch.org/blfs/wiki/gpgm e

Установка пакета GPGME


Установите пакет GPGME при помощи следующих команд:
. / c o n f i g u r e — p r e f i x = / u s r &&
make

Чтобы проверить результаты, выполните команду make check.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l

Описание пакета
Установленная программа: gpgme-config
Установленные библиотеки: libgpgme-pthread.so и libgpgme.so
Установленный каталог: /usr/share/com m on-lisp/source/gpgm e

Краткое описание
l i b g p g m e - p t h r e a d .s o Содержит функции интерфейса API паке­
та GPGME для приложений, использую­
щих пакет pthread.
l i b g p g m e .s o Содержит функции интерфейса API паке­
та GPGME.
Перевод с оригинала от 2013-08-23 03:32:24 -0700

Пакет 1р1аЬ1ез-1.4 .2 0
Знакомимся с пакетом ^ а Ы е э
В следующей части этой главы рассказывается о брандмауэрах. Ос­
новным инструментом брандмауэра для Ь т и х является пакет 1р1аЬ1ез.
Вам нужно будет установить пакет 1р1аЫе8, если вы собираетесь в ка­
ком-либо виде использовать брандмауэр.
Пакет Iptables-1.4.20 Ï Ü H H 127

Известно, что пакет правильно собирается и работает на платфор­


ме LFS-7.4.

Информация о пакете
• Загрузка (H TTP): http://w w w .netfilter.org/proiects/iptables/
files/iptables-1.4.20.tar.bz2
• Загрузка (FTP): ftp://ftp.netfilter.org/piib/iptables/iptables-
1.4.20.tar.bz2
• Контрольная сумма MD5: 387b92d3efcf4f07fe31c3bf0fldl8f5
• Размер загружаемого пакета: 540 КВ
• Оценочный размер требуемого дискового пространства: 23 MB
• Оценочное время сборки: 0,2 SBU
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs Aviki/iptables

Конфигурация ядра
Брандмауэр в Linux функционирует с помощью той части ядра, ко­
торая называется netfilter. Интерфейсом к netfilter является пакет
iptables. Чтобы им воспользоваться, нужно найти соответствующие
конфигурационные параметры в Networking Support => Networking
Options => Network Packet Filtering Framework (Поддержка сети ==>
Параметры настройки сети => Параметры фреймворка фильтрации
сетевых пакетов).

Установка пакета Iptables


Зам ечан ие
В описании установки, приведенной ниже, не рассказывается о
сборке некоторых специализированных библиотек расширений,
для которых в исходный код Linux нужно добавлять заголовки. Если
вы хотите собрать дополнительные расширения (если вы об этом
не знаете, то, вероятно, вы этого делать не будете), то вы можете
заглянуть в файл i n s t a l l , чтобы увидеть пример того, как следует
изменить параметр k e r n e l _ d i r =, чтобы он указывал на исходный
код Linux . Обратите внимание, что при обновлении версии ядра,
вам может также потребоваться перекомпилировать Iptables и что
разработчики из команды BLFS не проверяли добавление заголов­
ков ядра.
Для некоторых архитектур, отличных от х86, добавление заголов­
ков ядра может оказаться необходимым. В этом случае в параметр
k e r n e l _ d i r = нужно внести изменения так, чтобы он указывал на
исходный код Linux.
Глава 4. Безопасность

Установите пакет Iptables с помощью следующих команд:


./configure --p r e fix = /u sr \
— exec-prefix= \
—b in d ir= /u sr /b in \
—w ith -x tlib d ir = /lib /x ta b le s \
— w ith -p k g co n fig d ir= /u sr/lib /p k g co n fig \
— e n a b le-lib ip q \
— e n a b l e - d e v e l &&
make

В этом пакете набор тестов отсутствует.


Теперь в роли пользователя r oo t выполните:
make i n s t a l l &&
In - s f v . . / . . / s b i n / x t a b l e s - m u l t i / u s r / b i n / i p t a b l e s - x m l &&
f o r file i n l i b i p 4 t c l i b i p 6 t c l i b i p q l i b i p t c l i b x t a b l e s
do
In - s f v . . / . . / l i b / ' r e a d l i n k / l i b / $ {file} . s o ' / u s r / l i b / $ {file} . s o &&
rm - v / l i b / $ { f ile } . s o &&
mv - v / l i b / $ { f i l e } . l a / u s r / l i b &&
s e d - i "s@ libdir='@ & /usr@ g" / u s r / l i b / $ { f i l e } . l a
done

Пояснение команд
— е х е с - р г е й х = : обеспечивает, чтобы все двоичные модули и биб­
лиотеки помещались в дерево каталогов /.
—w i t h - x t l i b d i r = / l i b / x t a b l e s : обеспечивает, чтобы все моду­
ли 1рГаЬ1е5 устанавливались в каталог / И Ь / х Ь а Ы е э .
—^71ЬЬ-ркдсопйдс11г=/изг/11Ь/ркдсопйд: обеспечивает, чтобы
все файлы рк^сопР^ находились в стандартном месте.
—еп а Ы е -И Ы р ч : Этот переключатель разрешает сборку библи­
отеки libipq.sc), которая может использоваться некоторыми
пакетами, не входящими в состав ВЬРБ.
—епаЬ1е-с!еуе1: Этот переключатель разрешает установку заго­
ловков ТрГаЫеэ, необходимых для разработки, которые могут
использоваться некоторыми пакетами, не входящими в состав
BLFS.
1п -зЬг ../../8Ып/х1аЫе5-тиШ /usr/bin/iptables-xml: Делает от­
носительной символическую ссылку на 1р1аЫе8-хт1.

Конфигурирование пакета lptables


Вводные инструкции по настройке брандмауэра будут приведены в
разделе «Настройка сетевого брандмауэра».
Пакет 1р1аЫе$-1.4.20 129

Загрузочный скрипт
Чтобы запускать брандмауэр 1р1аЫе8 во время загрузки системы, ус­
тановите инициализационный скрипт / е Ь с / г с . с1/л.п:и. d / i p t a b l e s ,
который входит в состав пакета ЬР8-Ьоо18спр18-20130908.
шаке install-iptables

Описание пакета
Установленные программы: 1рб1аЬ1е8,1рб1аЫе8-ге81:оге,
1рб1аЬ1е8-8ауе, 1р1аЫе8,
iptables-restore, 1р1аЫе8-8ауе,
iptaЫes-xml и х1аЫе8-тиШ
Установленные библиотеки: ИЫр^с.зо, libip6tc.so, НЫрр.зо,
НЫр^.зо и libxtables.so
Установленные каталоги: /lib/xtaЫ es и /и зг/тсЬ бе/Н Ы рй :

Краткое описание
1р1аЫе8 Используется для настройки, обслуживания
и проверки находящихся в ядре Ыпих таблиц
правил фильтрации пакетов 1Р.
1р1аЫе8-ге8^ге Используется для восстановления таблиц 1Р по
данным, вводимым через стандартных входной
поток БТБШ . Чтобы считывать данные из фай­
ла, используйте перенаправление ввода/выво­
да, имеющееся в вашей командной оболочке.
1р1аЫе8-8ауе Используется для выдачи в стандартный поток
вывода Б Т И О иТ дампа содержимого таблицы
1Р в удобном для анализа формате. Чтобы запи­
сать данные в файл, используйте перенаправле­
ние ввода/вывода, имеющееся в вашей команд­
ной оболочке.
iptaЫes-xml Используется для преобразования выходных
данных 1р1аЫе8-8ауе в формат ХМЬ. Исполь­
зуйте стилевую страницу 1рЬаЬ1ез.хз1Ь для
того, чтобы преобразовать файл ХМЬ обратно
в формат команды iptables-restore.
ip6taЫes* Набор команд для 1РУ6 , который точно такой
же, как команды iptables, перечисленные выше.
Перевод с оригинала от 2013-08-20 13:22:42 -0700
Глава 4. Безопасность

Настройка сетевого брандмауэра


Прежде, чем читать эту часть главы, вы должны установить пакет
iptables так, как это описано в предыдущем разделе.

Знакомимся с пакетом Firewall Creation


Основное назначение брандмауэра состоит в защите компьютера или
сети от несанкционированного доступа.
В идеальном мире каждый демон или сервис на каждой машине
настроены правильно и свободен от таких недостатков, как перепол­
нение буфера, и других проблем, связанных с безопасностью. Кроме
того, вы доверяете каждому пользователю, которому предоставляете
доступ к своему сервису. В таком мире брандмауэр вам не требуется.
Однако в реальном мире демоны могут быть сконфигурированы
неправильно и в свободном доступе есть эксплойты, предназначен­
ные взлома основных сервисов. Возможно, вы захотите выбрать, ка­
кие из сервисов могут быть на некоторых машинах, либо вы можете
захотеть для некоторых машин ограничить внешний доступ. Либо
вы можете просто не доверять некоторым вашим приложениям или
пользователям. Вы, вероятно, подключены к сети интернет. В этом
мире использование брандмауэра имеет важное значение.
Но не думайте, что наличие брандмауэра делает излишним тща­
тельное конфигурирование или делает безвредной любую небреж­
ность. Он не помешает любому воспользоваться эксплойтом для
сервиса, для которого еще не создали обновления или патчи, но сам
эксплойт уже опубликовали. Несмотря на наличие брандмауэра, вы
должны поддерживать в актуальном состоянии правильную настрой­
ку приложений и демонов, имеющихся в вашей системе. Брандмауэр
не в состоянии все исправить, но он является важной частью вашей
общей стратегии безопасности.

Смысл понятия «Брандмауэр» («Firewall»)


Под понятием «брандмауэр» («firewall») можно подразумевать раз­
ное.
Персональный брандмауэр
Это коммерческое аппаратное изделие или программа, продаваемые
(или предлагаемые бесплатно) такими компаниями, как Symantec,
которые утверждают, что гарантируют безопасность домашнего или
настольного компьютера, подключенного к сети интернет. Этот тип
Настройка сетевого брандмауэра 131

брандмауэра является весьма актуальным для пользователей, кото­


рые не знают, как к их компьютерам осуществляется доступ из сети
интернет и как отключать такой доступ в тех случаях, когда они пос­
тоянно подключены к сети через широкополосное соединение.
М арш рутизатор с маскарадингом
Такая система помещается между сетью интернет и вашей внутрен­
ней сетыо. Чтобы свести к минимуму риск выхода из строя самого
брандмауэра, он должен, как правило, выполнять только одну роль -
защищать внутреннюю сеть. Хотя имеется определенный риск, как
правило, считается сравнительно безопасным выполнять на брандма­
уэре маршрутизацию и 1Р-маскарадинг (перезапись заголовков паке­
тов 1Р, идущих в интернет от клиентов с конкретными адресами 1Р,
так, чтобы казалось, что они идут от самого брандмауэра).
ВизуВох
Это обычно старый компьютер, возможно, отправленный вами на
пенсию и почти забытый, который выполняет функции маскарадин-
га или маршрутизации, а также предоставляет сервисы, которые не
связаны с задачами брандмауэра, например, кэширование веб-трафи­
ка или электронная почта. Такое решение можно использовать в до­
машних сетях, но оно не считается настолько надежным, как если бы
машина использовалась только для брандмауэра, поскольку наличие
на одной машине сервера и маршрутизатора/брандмауэра повышает
сложность настройки.
Брандмауэр с демилитаризованной зоной
(здесь не описывается)
Такая система выполняет маскарадинг или маршрутизацию, но
разрешает доступ к некоторой ветке вашей сети, которая вследствие
использования общедоступных адресов 1Р и физически отдельной
структуры, является, по сути, отдельной сетью с прямым доступом
в интернет. К серверам, которые расположены в этой сети, должен
быть доступ, как из интернета, так и из внутренней сети. Брандмауэр
защищает обе сети. В этом типе брандмауэра имеется не менее трех
сетевых интерфейсов.
Пакетный фильтр
Этот тип брандмауэра осуществляет маршрутизацию или маскара­
динг, но не поддерживает работу с таблицей состояний текущих ком­
муникационных потоков. Это быстрый брандмауэр, но весьма огра­
1111 Глава 4. Безопасность

ниченный с точки зрения блокирования нежелательных и пропуска


нужных пакетов.

Теперь вы можем начать сборку своего


брандмауэра
Предосторожности
В этом введении рассказывается только о настройке брандмауэра,
причем это описание не является полным руководством по обес­
печению безопасности систем. Использование брандмауэров яв­
ляется сложным вопросом, требующим тщательной настройки. В
скриптах, приведенных в настоящей книге, просто показаны при­
меры работы брандмауэра. Они не предназначены для добавления
их к какой-либо конкретной конфигурации и не могут обеспечить
полную защиту от атак.
Чтобы получить оптимальную конфигурацию, вам потребуется на­
строить эти скрипты в соответствие с вашей конкретной ситуаци­
ей, но прежде, чем вы станете специалистом по этому вопросу, вам
потребуется серьезно изучить документацию по 1р1аЫез и созданию
брандмауэров. Подробности смотрите в списке ссылок для даль­
нейшего чтения, который приводится в конце настоящего раздела.
Там вы найдете список адресов 11Р1_, содержащих достаточно пол­
ную информацию о создании вашего собственного брандмауэра.

Конфигурационный скрипт брандмауэра, установленный в разде­


ле, посвященном iptables, отличается от стандартного конфигураци­
онного скрипта. В нем присутствуют только два стандартных зада­
ния: запуск и отображение статуса. Еще есть задание очистки clear и
блокирования lock. Например, если вы наберете:
/ e t c / r c . d / i n i t . d /ip ta b le s sta r t

брандмауэр будет перезапущен точно также как и при загрузке систе­


мы. Отображение статуса выдаст список всех правил маршрутизации,
используемых в данный момент. Очистка clear выключит все правила
брандмауэра, а блокирование lock заблокирует все пакеты, идущие из
компьютера и в компьютер, за исключением интерфейса loopback.
Основная настройка запускаемого брандмауэра находится в фай­
ле / e t c / r c . d / r c . i p t a b l e s . В следующих разделах описывается три
разных подхода, которые можно использовать в системе.

З ам ечан ие
Вы всегда должны запускать правила, в которых описан брандма­
уэр, при помощи скрипта. Это гарантирует, что каждый раз будут
Настройка сетевого брандмауэра т 133

использоваться одни и те же правила, и будет записано все, что


происходит. В скрипте также можно хранить комментарии, которые
после того, как после написания правил пройдет достаточно про­
должительное время, станут важными для понимания этих правил.

Персональный брандмауэр
Персональный брандмауэр Personal Firewall предназначен для
того, что предоставить вам доступ ко всем сервисам, предлагаемым в
интернете, но, при этом, сохраненить ваш компьютер и вашу инфор­
мацию в безопасности.
Ниже приводится несколько измененный вариант рекоменда­
ции, предложенной Расти Расселом (Rusty Russell) Linux 2.4 Packet
Filtering H O W TO . Она также применима к ядрам ветки Linux 2.6.
cat > /etc/rc.d / r c .iptables « "EOF"
# !/b in /sh

# Начало r c . i p t a b l e s

# Вставка модулей, отслеживающих подключение


# (не нужны, если сборка осущ ест вляет ся в ядре)
modprobe n f _ c o n n t r a c k
modprobe xt_LOG

# Включается защита от широковещательного э х о - о т в е т а


echo 1 > / p r o c / s y s /n e t / i p v 4 / ic m p _ e c h o _ i g n o r e _ b r o a d c a s t s

# Отключается маршрутизация исходных пакетов


echo 0 > / p r o c / s y s / n e t / i p v 4 / c o n f / a l l / a c c e p t _ s o u r c e _ r o u t e
echo 0 > / p r o c / s y s / n e t / i p v 4 / c o n f / d e f a u l t / a c c e p t _ s o u r c e _ r o u t e

# Включается защита от куки TCP SYN


e ch o 1 > / p r o c / s y s / n e t / i p v 4 / t c p _ s y n c o o k i e s

# Отключается разрешение на перенаправление ICMP


echo 0 > / p r o c / s y s / n e t / i p v 4 / c o n f / d e f a u l t / a c c e p t _ r e d i r e c t s

# Сообщения о перенап равлении не посылаются


echo 0 > / p r o c / s y s / n e t / i p v 4 / c o n f / a l l / s e n d _ r e d i r e c t s
e ch o 0 > / p r o c / s y s / n e t / i p v 4 / c o n f / d e f a u l t / s e n d _ r e d i r e c t s

# Отсекаются спуффинг-пакеты, поступающие на интерфейс, ответы


# на которые не должны поступать на д ругой интерфейс,
echo 1 > / p r o c / s y s / n e t / i p v 4 / c o n f / a l l / r p _ f i l t e r
echo 1 > / p r o c / s y s / n e t / i p v 4 / c o n f / d e f a u l t / r p _ f i l t e r

# Запись в журнал пакетов недопустимых а д р е с о в .


echo 1 > / p r o c / s y s / n e t / i p v 4 / c o n f / a l l / l o g _ m a r t i a n s
134 Глава 4. Безопасность

echo 1 > / p r o c / s y s / n e t / i p v 4 / c o n f / d e f a u l t / l o g _ m a r t i a n s

# Подробности при использовании динамических i p - а д р е с о в


# (не требуются в слу ч ае с т а т и ч е с к о г о IP)
echo 2 > / p r o c / s y s / n e t / i p v 4 / i p _ d y n a d d r

# Отключается явное уведом ление о п е р е г р у з к е


# во многих маршрутизаторах э т о в се еще игнори руется
e ch o 0 > / p r o c / s y s / n e t / i p v 4 / t c p _ e c n

# Установка и з в е с т н о г о с о ст ояни я
i p t a b l e s -Р INPUT DROP
i p t a b l e s -Р FORWARD DROP
i p t a b l e s -P OUTPUT DROP

# Эти сроки указаны для с л у ч ая , когда правила уже записаны и


# скрипт даже п е р е з а п у с к а е т их на л е т у . Мы хотим удалить в с е
# правила и, п е р е д тем, как мы р е ал и зуем новые правила,
# з а р а н е е имеющийся пол ьзова т ел ь определит цепочки правил,
i p t a b l e s -F
iptables -X
iptables -Z

i p t a b l e s - t n a t -F

# Разрешаются только локальные подключения


iptables -A INPUT -i lo -j A C C E P T

# Выдача разрешена на любой интерфейс, на любой i p и для любого


# с ер в и с а ( э т о эквивалентно -Р ACCEPT)
i p t a b l e s -A OUTPUT - j ACCEPT

# Р а з р е ш а е т с я ответ на уже у с т а н о в л е н н о е п о д к л ю ч е н и е и
# разрешаются новые подключения, связанные с уже установленными
# подключениями (например, режим порта f t p )
i p t a b l e s -A INPUT -m conntrack — c t s t a t e ESTABLISHED,RELATED - j ACCEPT

# Все о с т а л ь н о е записы вается в журнал. Самая последняя


# уязвимость для Windows?
i p t a b l e s -A INPUT - j LOG — l o g - p r e f i x "FIREWALL: INPUT "

# Конец $ r c _ b a s e / r c . i p t a b l e s
EOF
chmod 700 / e t c / r c . d / r c . i p t a b l e s

Этот скрипт сравнительно прост - в нем отсекается весь трафик,


поступающий в ваш компьютер, который не был инициирован с ва­
шего компьютера; до тех пор, пока вы просто бродите в интернете, вы
вряд ли будете нарушать это правило.
Настройка сетевого брандмауэра 135

Если у вас часто возникают определенные задержки в доступе к


F T P -серверам, то посмотрите пример 4 для BusyBox.
Даже если у вас есть демоны или сервисы, запущенные в системе,
они будут недоступны отовсюду, кроме как с вашего компьютера.
Если вы хотите разрешить доступ к сервисам на вашем компьютере,
например, для ssh или ping, рассмотрите вариант BusyBox.

М арш рутизатор с маскарадингом


У настоящего брандмауэра есть два интерфейса, один из которых
подключен к внутренней сети, в этом примере - ethO, а другой под­
ключен к сети интернет, здесь - рррО. Чтобы обеспечить максималь­
ную безопасность самого брандмауэра, убедитесь, что нет ненужных
серверов, работающих на нем, таких как X II и другие. Согласно об­
щему правилу, брандмауэр не должен самостоятельно обращаться к
ненадежным сервисам (сервер, к которому происходит обращение,
вероятно может отправить такие ответы, которые вызовут падение
демона, работающего на вашей системе, или, что еще хуже, за счет
переполнения буфера запустят червя).
cat > /etc/rc.d / r c .iptables « "EOF"
# !/b in /sh

# Начало r c . i p t a b l e s .

e ch o
e ch o "Вы и с п о л ь з у е т е пример конфигурации настройки бра н д м а у э р а ,"
echo "взятый из книги Beyond L inux From S c r a t c h . "
echo "He следует считать, что в этом примере приведены всевозможные"
echo "решения он пр ед н азна ч ен лишь для изучени я в о п р о с а ."
echo "Обеспечение б е з о п а с н о с т и с помощью бран дмауэра является"
ech o "сложной з а д а ч е й , которая выходит"
echo "за рамки правил конфигурирования, приведенных ниже."
echo "Дополнительную информацию о брандмауэрах"
echo "вы можете найти в главе 4 книги BLFS."
echo "h t t p : / / w w w . l i n u x f r o m s c r a t c h . o r g / b l f s "
ech o

# Модули вставки i p t a b l e s (не требуются если сборка была в я д р е ) .

modprobe nf_conn track


modprobe n f_conn track_ftp
modprobe xt_conntrack
modprobe xt_LOG
modprobe x t_state

# Вклю ч а е т с я защита от ш и р о к о в е щ а т е л ь н о г о э х о - о т в е т а
136 Глава 4. Безопасность

echo 1 > / p r o c / s y s /n e t / i p v 4 / ic m p _ e c h o _ i g n o r e _ b r o a d c a s t s

# Отключается маршрутизация исходных пак етов


echo 0 > / p r o c / s y s / n e t / i p v 4 / c o n f / a l l / a c c e p t _ s o u r c e _ r o u t e

# Включается защита от куки TCP SYN


e ch o 1 > / p r o c / s y s / n e t / i p v 4 / t c p _ s y n c o o k i e s

# Отключается разрешение на перенаправление ICMP


echo 0 > / p r o c / s y s / n e t / i p v 4 / c o n f / a l l / a c c e p t _ r e d i r e c t s

# Сообщения о перенаправлении не посылаются


echo 0 > / p r o c / s y s / n e t / i p v 4 / c o n f / a l l / s e n d _ r e d i r e c t s

# Отсекаются спуффинг-пакеты, поступающие на интерфейс, ответы


# на которые не должны п оступать на другой интерфейс,
echo 1 > / p r o c / s y s / n e t / i p v 4 / c o n f / a l l / r p _ f i l t e r

# Запись в журнал пакетов с недопустимыми адресами,


echo 1 > / p r o c / s y s / n e t / i p v 4 / c o n f / a l l / l o g _ m a r t i a n s

# Подробности при использовании динамических i p - а д р е с о в


# (не требуются в сл уч а е с т а т и ч е с к о г о IP)
e ch o 2 > / p r o c / s y s / n e t / i p v 4 / i p _ d y n a d d r

# Отключается явное ув едом ление о п е р е г р у з к е


# во многих маршрутизаторах э т о в се еще и гнори руется
e ch o 0 > / p r o c / s y s / n e t / i p v 4 / t c p _ e c n

# Установка и з в е с т н о г о со ст ояни я
i p t a b l e s -Р INPUT DROP
i p t a b l e s -Р FORWARD DROP
i p t a b l e s -P OUTPUT DROP

# Эти сроки указаны для сл у ч ая , когда правила уже записаны и


# скрипт даже п е р е з а п у с к а е т их н а л ет у . Мы хотим удалить в се
# правила и, п е р е д т е м ,к а к мы будем реализовывать новые правила,
# з а р а н е е указанный п ол ьзова т ел ь определит свои цепочки правил,
i p t a b l e s -F
i p t a b l e s -X
i p t a b l e s -Z

i p t a b l e s - t n a t ~F

# Разрешаются только локальные подключения


i p t a b l e s -A INPUT - i l o - j ACCEPT
i p t a b l e s -A OUTPUT - o l o - j ACCEPT

# Д о п уск а ет ся перенап равлени е, если они инициировано из


# внутренней с ет и
Настройка сетевого брандмауэра 137

i p t a b l e s -A FORWARD -m conntrack — c t s t a t e ESTABLISHED,RELATED - j ACCEPT


i p t a b l e s -A FORWARD - i ! ppp+ -m conntrack — c t s t a t e NEW - j ACCEPT

# Выполняется маскарадинг
# (не т р е б у е т с я , если во внутренней с ет и не используются
# приватные i p - а д р е с а )
i p t a b l e s - t n a t -A POSTROÜTING - о ррр+ - j MASQUERADE

# Все записы вается в журнал для отладочных целей


# (оставшаяся часть правил, но п еред правилами, определяющими
# политику)
i p t a b l e s -A INPUT - j LOG - - l o g - p r e f i x "FIREWALL: INPUT "
i p t a b l e s -A FORWARD - j LOG - - l o g - p r e f i x "FIREWALL: FORWARD "
i p t a b l e s -A OUTPUT - j LOG - - l o g - p r e f i x "FIREWALL: OUTPUT "

# Включается перенаправлление no IP
echo 1 > / p r o c / s y s / n e t / i p v 4 / i p _ f o r w a r d
EOF
chmod 700 / e t c / r c . d / r c . i p t a b l e s

С помощью этого скрипта ваша внутренняя сеть должна быть


достаточно хорошо защищена от внешних атак. Если используется
маскарадинг и ваша внутренняя сеть становится невидимой из сети
интернет, то никто не сможет установить новое соединение ни с ка­
ким из внутренних сервисов, Кроме того, брандмауэр должен быть
сравнительно безопасным, т. к. отсутствуют работающие сервисы, ко­
торые злоумышленник может атаковать.

Зам ечан ие
Если интерфейс, через который вы подключаетесь к интернету, это
не РРР, вам нужно изменить <ррр+> на имя используемого вами ин­
терфейса (например, eth1 ).

Вариант BusyBox
Этот сценарий не слишком отличается от маршрутизатора с маска-
радингом; для вашей внутренней сети лишь предоставляется допол­
нительно несколько сервисов. Например, если вы хотите управлять
брандмауэром с другого компьютера, расположенного в вашей внут­
ренней сети, или использовать брандмауэр как прокси-сервер или
сервер имен.
' и * 'ж ж .л ш т ж ш ш ж ш ж т ш ш ш т м ш & ж т ? ' ш ж - у„ ж ж т т т ж т ш т ж ж т ш ш ш т ш т ш . ж
Зам ечан ие
Полное описание защиты сервера, который предоставляет сервисы
в сеть интернет, выходит далеко за рамки настоящего документа.
Глава 4. Безопасность

Чтобы получить более подробную информацию, смотрите ссылки,


приведенные в конце этого раздела.

Будьте осторожны. Каждый сервис, который у вас включен, делает


настройку более сложной, а брандмауэр - менее безопасным. Вы рис­
куете тем, что сервис может работать неправильно или что запустите
сервис, имеющий ошибку, которой воспользуется эксплойт. На бран­
дмауэре обычно не следует запускать никаких дополнительных сер­
висов. Более подробную информацию смотрите во введении раздела
«Маршрутизатор с маскарадингом».
Если вы хотите добавить сервис, например, внутренний сервер
Samba или сервер имен, для работы которых не нужен доступ в ин­
тернет, то добавочные инструкции будут достаточно просты, но они,
все равно, должны согласовываться с правилами обеспечения безо­
пасности. Просто добавьте следующие строки в скрипт перед прави­
лами, в которых задана запись в журнал:
i p t a b l e s -A INPUT - i ! ррр+ - j ACCEPT
i p t a b l e s -A OUTPUT - o ! ppp+ - j ACCEPT

Если демоны, например, squid, сами обращаются в интернет, вам,


как правило, нужно будет открыть O U TPU T и ограничить INPUT.
i p t a b l e s -A INPUT -m conntrack — c t s t a t e ESTABLISHED,RELATED - j ACCEPT
i p t a b l e s -A OUTPUT - j ACCEPT

Однако обычно не рекомендуется задавать O U TPU T без ограни­


чений. Вы потеряете контроль над троянами, которые хотели бы сде­
лать «домашний звонок», и небольшая избыточность в случае, если
у вас есть (неправильно) сконфигурированный сервис, позволят им
отправлять в мировую сеть свои сообщения.
В связи с этим вы должны задать ограничения для INPUT и
O U TPU T для всех портов, кроме тех, которые непременно должны
быть открытыми. Какие порты необходимо оставить открытыми, за­
висит от ваших потребностей: чаще всего их можно определить, если
поискать в системном журнале записи, указывающие на отказ в до­
ступе.
Рассмотрим следую щ ие примеры :
• Squid, кэширующий веб-трафик:
i p t a b l e s -A OUTPUT - р t ср - - d p o r t 80 - j ACCEPT
i p t a b l e s -A INPUT - p t c p - - s p o r t 80 -m c o n n t r a c k - -
c t s t a t e ESTABLISHED \
- j ACCEPT
Настройка сетевого брандмауэра

• Ваш кэширующий сервер имен (например, named) использует


UDP:
i p t a b l e s -A OUTPUT - р udp — d p o r t 53 - j ACCEPT

• Вы хотите иметь возможность пинговать свой компьютер с


тем, чтобы знать, что он работает:
i p t a b l e s -A INPUT -р icmp -ш icmp — ic m p - t y p e e c h o - r e q u e s t
- j ACCEPT
i p t a b l e s -A OUTPUT - p icmp -m icmp - - i c m p - t y p e e c h o - r e p l y
- j ACCEPT

• Если вы часто обращаетесь к серверам FTP или пользуетесь


чатом, вы можете обратить внимание на определенные задерж­
ки, поскольку некоторые реализации этих демонов обладают
особенностью - обращаются к сервису identd, имеющемуся в
вашей системе, за именем пользователя. Хотя, на самом деле,
в этом вреда практически нет, не рекомендуется, чтобы в сис­
теме работал сервис identd, поскольку многие эксперты по бе­
зопасности считают, что такой сервис предоставляет слишком
много дополнительной информации.
Чтобы избежать таких задержек, вы должны отклонять такие
запросы с помощью ‘tcp-reset’:
i p t a b l e s -A INPUT -р t c p — dport 113 - j REJECT — r e j e c t - w i t h
tcp -reset

• Чтобы регистрировать в журнале и отклонять испорченные


пакеты (пакеты, которые пришли после истечения таймаута
сетевого фильтра, или некоторые типы пакетов, используемых
для сканирования сети):
i p t a b l e s - I INPUT 0 -р t c p -m c o n n tr a c k — c t s t a t e INVALID \
- j LOG — l o g - p r e f i x "FIREWALL: INVALID "
i p t a b l e s - I INPUT 1 -p tcp -m conntrack — c t s t a t e INVALID - j DROP

• Любой, кто обращается извне, не должен указывать приват­


ный адрес; такая атака обычно называется спуффингом IP -ад­
ресов:
i p t a b l e s -A INPUT- i ррр+ - s 1 0 .0 .0 .0 /8 -j DROP
i p t a b l e s -A INPUT- i ppp+ - s 1 7 2 .1 6 .0 .0 /1 2 -j DROP
i p t a b l e s -A INPUT- i ppp+ - s 1 9 2 .1 6 8 .0 .0 /1 6 -j DROP

Есть и другие адреса, которые вы, возможно, также захотите


исключить: 0.0.0.0/8,127.0.0.0/8, 224.0.0.0/3 (групповые и экс-
140 Глава 4. Безопасность

периментальные), 169.254.0.0/16 (сети с локальными ссылка­


ми Link Local Networks) и 192.0.2.0/24 (тестовая сеть I ANA).
• Если ваш брандмауэр является клиентом DHCP, вам нужно
разрешить пропускать следующие пакеты:
i p t a b l e s -A INPUT - i рррО - р udp - s 0 . 0 . 0 . 0 — s p o r t 67 \
- d 2 5 5 . 2 5 5 . 2 5 5 . 2 5 5 - - d p o r t 68 - j ACCEPT

• Чтобы упростить отладку и обеспечить беспристрастными к


тем, кто намеренно или по ошибке пытался получить доступ к
службе, которая у вас отключена, вам следует указать REJ ЕСТ
для пакетов, которые отклоняются.
Очевидно, что это нужно указать в журнал сразу после самой
последней строки, в которой осуществляется регистрация в
журнале, и непосредственно перед заданием политики откло­
нения пакетов:
i p t a b l e s -A INPUT - j REJECT

Это только примеры, в которых вам показаны некоторые возмож­


ности настройки брандмауэра в Linux. Посмотрите страницу man для
iptables. Там вы найдете гораздо больше информации. В случае, если
вы не смогли методом проб и ошибок найти в журнальном файле
необходимые для этого номера портов, то их можно найти в / e t c /
services.

Заклю чение
Наконец, есть еще один факт, о котором вам не следует забывать:
усилия, затрачиваемые на атаку системы, должны соответствовать
тому, что взломщик ожидает от этого получить. Если вы несете от­
ветственность за ценную информацию, нужно потратить время, что­
бы правильно ее защитить.

Дополнительная информация
С чего начать дальнейш ее изучение документации
по брандмауэрам
• www.netfilter.org - домашняя страница проекта netfilter/
iptables
• FAQ относящиеся к netfilter
• HOW TO относящиеся к netfilter
• en.tldp.org/LDP/nag2/x-087-2-firewall.html
• en.tldp.org/H O W TO /Security-H O W TO .htm l
Пакет libcap2-2.22 mm 141

• en.tldp.org/HOW TO/Firewall-HO W TO.htm l


• www.linuxsecurity.com/docs/
• www.little-idiot.de/firewall (на немецком языке и устаревшее,
но очень подробное описание)
• linux.oreillynet.eom /pub/a/linux/2000/03/10/netadm in/ddos.
html
• staff.washington.edu/dittrich/m isc/ddos
• www.e-infomax.com/ipmasq
• www.circlemud.org/~jelson/writings/security/index.htm
• www.securityfocus.com
• www.cert.org - tech_tips
• security.ittoolbox.com
• www.insecure.org/reading.html
Перевод с оригинала от 2012-10-16 17:13:00 +0000

Пакет МЬсар2-2.22
Знакомимся с пакетом Iibcap2
В пакете libcap2 реализованы интерфейсы пользовательского про­
странства для доступа к возможностям POSIX 1003.le, доступным
в ядре Linux. Благодаря этим возможностять весь набор привилегий
пользователя root можно разделить на несколько отдельных наборов
привилегий.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.
Информация о пакете
• Загрузка (H TTP): http://ftp.de.debian.org/debian/pool/m ain/
libc/libcap2/libcap2_2.22.orig.tar.gz
• Загрузка (FTP): ftp://ftp.de.debian.org/debian/pool/m ain/libc/
libcap2/libcap2_2.22.orig.tar.gz
• Контрольная сумма MD5: b4896816b626bea445f0b3849bdd4077
• Размер загружаемого пакета: 72 КВ
• Оценочный размер требуемого дискового пространства: 1,3 MB
• Оценочное время сборки: менее 0,1 SBU

Зависимости пакета Iibcap2


Обязательные
attr-2.4.47
шшужштг ж : Глава 4. Безопасность

Необязательны е
Linux-PAM-1.1.7
Замечания для пользователей:
http://w iki.linuxfrom scratch.org/blfs/w iki/libcap2

Установка пакета Iibcap2


Установите пакет libcap2 с помощью следующих команд:
make

В этом пакете набор тестов отсутствует.


Если вы хотите отменить установку статических библиотек, то ис­
пользуйте следующую команду sed:
sed - i ' / i n s t a l l . *STALIBNAME/ s / A/ # / ' l ib c a p / M a k e f i l e

Теперь в роли пользователя root выполните:


make RAISE SETFCAP=no i n s t a l l

Пояснение команд
1кА15Е_ЗЕТЕСАР=по: Этот параметр позволяет обойти попытку
использовать э^сар в самом пакете. В результате можно из­
бежать ошибки установки в случае, если в ядре или файловой
системе не поддерживаются расширенные возможности.

Описание пакета
Установленные программы: сар^яЬ, getcap, getpcaps и э^сар
Установленная библиотека: НЬсар.{зо,а}
Установленные каталоги: Нет

Краткое описание
сарзЬ Оболочка, используемая для изучения возмож­
ностей и поддержки ограничений.
getcap Проверка возможностей, имеющихся у файла.
getpcaps Отображает возможности для запрашиваемых
процессов.
8е1сар Устанавливает для файла возможности, имею­
щиеся в файле.
М Ь сар . {эо, а } Содержит функции АР1 пакета ИЬсар2.

Перевод с оригинала от 2013-08-20 15:41:29 -0700


Пакет Linux-PAM-1 Л .7 143

Пакет Linux-PAM-1,1.7
Знакомимся с пакетом Linux
В пакете Linux-PAM находятся подключаемые модули аутентифи­
кации Pluggable Authentication Modules. Они позволят системному
администратору выбрать, каким образом в приложениях будет про­
исходить авторизация пользователей.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (H TTP): http://linux-pam .org/library/Linux-PA M -
1.1.7.tar.bz2
• Контрольная сумма MD5: 9f90888cd22212a6b5af2920f4eaaflb
• Размер загружаемого пакета: 1,1 MB
• Оценочный размер требуемого дискового пространства: 36 MB
• Оценочное время сборки: 0,3 SBU

Дополнительные загрузки
Необязательная документация
• Загрузка (HTTP): http://linux-pam .org/docum entation/Linux-
РАМ-1.1.7-docs.tar.bz2
• Контрольная сумма MD5: 808054213e884e69e3f7045d80700dal
• Размер загружаемого пакета: 152 КВ

Зависимости пакета Linux РАМ


Необязательны е
Berkeley DB-6.0.20, CrackLib-2.9.0, libtirpc-0.2.3 и Prelude
Необязательны е (для пересборки докум ентации)
docbook-xml-4.5, docbook-xsl-1.78.1, fop-1.1, libxslt-1.1.28 и w3m-0.5.3
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/w iki/linux-pam

Установка пакета Linux РАМ


Если вы скачали документацию, распакуйте архив, выполнив для
этого следующую команду.
tar -x f . . /L in u x -P A M -1 . 1 . б - d o c s . t a r . b z 2 — strip -com p on en ts= l
ИШШШШ UM i l Глава 4■Безопасность
Установите пакет Linux-РАМ с помощью следующих команд:
./co n fig u re - - p r e f ix = /u s r \
— sy sco n fd ir= /etc \
— d o c d ir = /u sr/sh a re /d o c/L in u x -P A M -l.1 .7 \
- - d i s a b l e - n i s &&
make

Чтобы проверить результаты, следует создать конфигурационный


файл. Этот файл будет удален после того, как тестирование будет за­
вершено. Прежде, чем продолжить установку, убедитесь, что при тес­
тировании не возникли ошибки. Сначала в роли пользователя r o o t с
помощью следующих команд создайте конфигурационный файл:
in sta ll -V -m755 - d / e t c / p a m . d &&

ca t > /etc/p a m . d /o th e r << "EOF"


a u th req uired p a m _ d e n y .s o
account req uired p a m _ d e n y .s o
password r e q u ir e d p a m _ d e n y .s o
se ssio n req u ired p a m _ d e n y .s o
EOF

Теперь с помощью команды make check запустите тест.


В роли пользователя r o o t удалите конфигурационный файл, со­
зданный ранее; для этого выполните следующую команду:
rm - r f v / e t c / p a m . d

Теперь в роли пользователя r o o t выполните:


make i n s t a l l &&
chmod - v 4755 / s b i n / u n i x _ c h k p w d

Пояснение команд
— d i s a b l e - n i s : Этот переключатель отменяет сборку страниц
Network Information Service/Yellow Pages, поддерживаемых в
модулях pam_unix и pam_access modules. Удалите ее, если вы
должны установить пакет libtirpc-0.2.3.
chmod -v 4755 /sbin/unix_chkpwd: Вспомогательная программа
unix_chkpwd должна иметь такой идентификатор пользова­
теля, чтобы процессы, не имеющие прав доступа r o o t , могли
получать доступ к файлу shadow-паролей.

Конфигурирование пакета Linux-PAM


Конфигурационные файлы
/ e t c / s e c u r i t y / * и / e t c /p a m .d/*
Пакет Linux-PAM-1.1.7 ят\
Подробнее о конфигурировании
Информация о конфигурации находится в каталоге /e tc /p a m . d/.
Ниже приведен пример файла:
# Начало / e t c /рагп. d / o t h e r

auth req uired p a m _ u n i x .s o n u llo k


account r eq u ired p a m _ u n ix . s o
se ssio n req uired p a m _ u n ix . so
p a s sw o r d r eq u ired p a m _ u n ix . so n u llo k

# Конец / e t c / p a m . d / o t h e r

Хорошей отправной точкой для изучения допустимых полей и воз­


можных записей является страница man, описывающая РАМ (man
pam). За дополнительной информацией рекомендуется обратиться к
руководству «Linux-РАМ System Administrators’ Guide» («Руководст­
во системного администратора по использованию РАМ в Linux»).
Список доступных модулей, разработанных сторонними произво­
дителями, можно найти по ссылке http://debian.securedservers.com /
kernel/pub /linux/libs/pam /m odules.htm l
штт тмж$1жш тж% % ша};,®ът т !жш% жтт ж'' шшш % шт жтт т штвшт ж
Важно
Теперь вы должные переустановить пакет Shadow-4.1.5.1.

Описание пакета
Установленные программы: mkhomedir_helper, pam_tally, pam_tally2,
pam_timestamp_check, unix_chkpwd и unix_update
Установленные библиотеки: libpam.so, libpamc.so and libpam_misc.so
Установленные каталоги: /etc/security, /lib/security, /u sr/in clu d e/
security и /usr/share/doc/Linux-PAM-1.1.7

Краткое описание
mkhomedir_helper Вспомогательный двоичный модуль, кото­
рый создает домашние каталоги.
pam_tally Используется для доступа к файлу подсчета
пользователей, вошедших в систему, и для
работы с этим файлом.
pam_tally2 Используется для доступа к файлу подсчета
пользователей, зашедших в систему, и для
работы с этим файлом; отсутвуют ограниче­
ния, которые есть в pam_tally.
146 Глава 4. Безопасность

pam_timestamp_ Используется для проверки того, является


check ли правильной временная метка, используе­
мая по умолчанию.
unix_chkpwd Вспомогательная двоичная программа, с по­
мощью которой проверяется пароль текуще­
го пользователя.
unix_update Вспомогательная двоичная программа, с по­
мощью которой обновляется пароль для дан­
ного пользователя,
lib p a m .so Предоставляет интерфейс, используемый
между приложениями и модулями РАМ.
Перевод с оригинала от 2013-09-12 20:08:10 -0700

Пакет MIT Kerberos V 5 -1 .1 1 .3


Знакомимся с пакетом M IT Kerberos V5
Пакет M IT Kerberos V5 представляет собой свободную реализацию
протокола Kerberos 5. Kerberos является сетевым протоколом аутен­
тификации. В состав входят централизованная база данных аутенти­
фикации и приложения для работы с серверами или сервисами, ис­
пользующими протокол Kerberos. Благодаря этому протокол Kerberos
можно использовать для регистрации в системе и для шифрованного
обмена данными как во внутренних сетях, так и в интернете.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.
Информация о пакете
• Загрузка (H TTP): http://w eb.m it.edu/kerberos/w w w /d ist/
k r b 5 /l. 11 /k rb 5 -1.11.3-signed.tar
• Контрольная сумма MD5: 56f0ae274b285320b8a597cb89442449
• Размер загружаемого пакета: 11 MB
• Оценочный размер требуемого дискового пространства: 178 MB
(дополнительно 20 MB в случае, если запускаются тестовые на­
боры)
• Оценочное время сборки: 1,0 SBU (дополнительно 3,0 SBU в
случае, если запускаются тестовые наборы)
Зависимости пакета M IT Kerberos V5
Необязательны е
D ejaG nu-1.5.1 (требуется для запусков тестового набора), keyutils-
1.5.6, OpenLDАР-2.4.36, Python-2.7.5 (используется при запуске
Пакет MIT Kerberos V 5 -1 Л 1.3 147

тестового набора) и rpcbind-0.2.1 (используется при запуске тес­


тового набора)

Зам ечан ие
В вашей системе потребуется какое-нибудь средство синхрониза­
ции времени (например, ntp-4.2.6p5k поскольку Kerberos не будет
выполнять аутентификацию в случае, если есть разница между вре­
менем в клиентской программе и на сервере KDC, использующими
протокол Kerberos.

Замечания для пользователей:


http://w iki.linuxfrom scratch.org/blfs/w iki/m itkrb

Установка пакета M IT Kerberos V5


Пакет MIT Kerberos V5 поставляется в виде файла TAR, в котором
находится пакет, сжатый в формате TAR, и отдельный P G P -файл
AS С. Вам прежде, чем начинать сборку пакета, потребуется распако­
вать полученный файл tar, а затем распаковать находящейся в нем
архив tar.
После того, как распакуете дистрибутив, и если у вас есть ус­
тановленный пакет GnuPG-1.4.14. вы можете проверить подлин­
ность пакета. Во-первых, проверьте содержимое с помощью файла
k r b 5 - l . 1 1 . 3 . t a r . g z . asc.

gpg - - v e r i f y k r b 5 - l . 1 1 . 3 . t a r . g z . a s c k r b 5 - l . 1 1 . 3 . t a r . gz

Вы, вероятно, увидите нечто, похожее на следующее (сообщается,


что не удается проверить подпись, поскольку не найден открытый
ключ - прим. пер.):
gpg: Signature made Wed Aug 8 22:29:58 2012 GMT using RSA key ID F376813D
gpg: C a n ' t c h e c k s i g n a t u r e : p u b l i c key n o t found

Вы можете импортировать публичный ключ с помощью следую­


щей команды:
gpg - - k e y s e r v e r p g p . m i t . e d u - - r e c v - k e y s 0xF376813D

Теперь повторно проверьте пакет с первой командой, указанной


выше. Вы должны получить указание о том, что подпись правильная,
но ключ все еще не будет заверен надежной подписью. Указание сте­
пени надежности ключа является отдельной операцией, но для этого
от вас требуется задать уровень доверия.
Выполните сборку пакета M IT Kerberos V5 с помощью следующих
команд:
148 ■ П Н ! Глава 4. Безопасность

cd s r c &&
sed - e " s0 p y th o n 2 . 5 /P y t h o n . h 0 & p y th o n 2 . 7 /P y th o n .h 0 g " \
- e " s 0 - l p y t h o n 2 . 5 ] 0 & ,\ n AC_CHECK_LIB(python2. 7 , m a i n , [ PYTHON
_ L I B = - l p y t h o n 2 . 7 ] ) 0g" \
- i c o n fig u r e, i n &&
sed - e " s 0 in t e r p - > r e s u lt 0 T c l_ G e t S t r in g R e s u lt (in te rp )0 g " \
- i k a d m i n / t e s t i n g / u t i l / t c l _ k a d m 5 . с &&
a u t o c o n f &&
./co n fig u re C P P F L A G S = " -I/u sr/in clu d e/et - I / u s r / i n c l u d e / s s " \
— p r efix = /u sr \
--sy sc o n fd ir = /e tc \
— lo ca lsta te d ir= /v a r/lib \
— w ith -system -et \
--w ith -sy stem -ss \
- - e n a b l e - d n s - f o r - r e a l m &&
make

После установки пакета следует выполнить набор регрессионных


тестов.
Теперь в роли пользователя ro o t выполните:
make i n s t a l l &&

for LIBRARY i n gssapi_krb5 g ss rp c k5crypto kadm5clnt_mit kadm5srv_mit \


kdb5 kd b _ ld ap krb5 k r b 5 s u p p o r t v e r t о ; do
[ -e / u s r / l i b / l i b $ L I B R A R Y . s o . * . * ] && chmod - v 755 / u s r / l i b /
lib$LIB RARY.SO.*.*
done &&

mv - v / u s r / l i b / l i b k r b 5 . s o . 3* /lib &&
mv - v / u s r / l i b / l i b k 5 c r y p t o . s o .3* /lib &&
mv - v / u s r / l i b / l i b k r b 5 s u p p o r t . s o .0* / l i b &&

In - v - s f . . / . . / I i b / l i b k r b 5 . s o . 3 .3 / u s r / l i b / l i b k r b 5 . so &&
In -v - s f . . / . . / l i b / l i b k 5 c r y p t o . s o . 3.1 /u sr /lib /lib k 5 c r y p to .so &&
In - v - s f . . / . . / l i b / l i b k r b 5 s u p p o r t . s o . 0.1 / u s r / l i b / l i b k r b 5 s u p p o r t . so &&

mv - v / u s r / b i n / k s u / b i n &&
chmod - v 755 / b i n / k s u &&

i n s t a l l - v -dm755 / u s r / s h a r e / d o c / k r b 5 - l . 1 1 . 3 &&
cp - v f r . . / d o c / * / u s r / s h a r e / d o c / k r b 5 - l . 1 1 . 3 &&

u n s e t LIBRARY

Чтобы протестировать установленный пакет, у вас должен быть


также установлен пакет DeiaGnu-1.5.1 и вы должны выполнить ко­
манду make check.
Пакет MIT Kerberos V5-1.1 1.3 ЁтШ 149

Пояснение команд
sed -е Первая команда sed исправляет ошибку, обнаруживае­
мую с помощью Python, а вторая - исправляет ошибки сборки
с Tel 8.6.
— e n a b le -d n s -fo r-re a lm : Этот параметр позволяет использо­
вать сервер DNS для разрешения ссылок в realms.
—w ith -s y s te m -e t: Этот параметр указывает, что при сборке па­
кета будут использоваться установленные в системе версии
программ, поддерживающие работу с таблицами ошибок.
—w ith -s y s te m -s s : Этот параметр указывает, что при сборке па­
кета будут использоваться установленные в системе версии
программ, поддерживающие работу с интерфейсом командной
строки.
— l o c a l s t a t e d i r = / v a r / l i b : Этот параметр указывает, что пере­
менные Kerberos, в которых хранятся данные времени испол­
нения, будут находиться в каталоге / v a r / l i b , а не в каталоге
/u s r / v a r .
mv -v /usr/bin /k su /bin: Перемещает программу ksu в каталог
/b in с тем, чтобы она была доступна в случае, если файловая
система / u s г не смонтирована.
—w ith -ld a p : Используйте этот переключатель в случае, если вы
хотите откомпилировать модуль для работы с хранилищем
данных OpenLDAP.

Конфигурировани пакета M IT Kerberos V5


Конфигурационные файлы
/ e t c / k r b 5 . c o n f И / v a r / l i b / k r b 5 k d c / k d c . conf

Подробнее о конфигурировании
Конфигурирование протокола K erberos

Совет
Чтобы сконфигурировать пакет так, чтобы он позволял использо­
вать только стойкие пароли, вы должны рассмотреть вопрос об
установке какого-нибудь словаря для проверки паролей. Подходя­
щий для использования словарь описан в инструкциях по установке
пакета CrackLib-2.9.0. Обратите внимание, что можно использовать
только один файл, но вы можете объединить в один файл большое
количество отдельных файлов. В конфигурационном файле, пред­
ставленном ниже, предполагается, что вы установили словарь в
/u s г /sh a r e/d iet/w o rd s.
150 Глава 4. Безопасность

В роли пользователя r o o t создайте конфигурационный файл


Kerberos с помощью следующих команд:
c a t > / e t c / k r b 5 . c o n f « "EOF"
# Начало / e t c / k r b 5 . c o n f

[lib d e fa u lts]
d e f a u l t _ r e a l m = <LFS.ORG>
encrypt = true

[realm s]
< L F S . ORG> = {
kdc = < b e l g a r a t h . l f s . o r g >
adm in_server = < b e lg a r a t h .lf s .o r g >
d ict_ file = /u sr /sh a r e /d ic t/w o r d s
}
[ d om ain_realm ]
. < l f s . o r g > = < L F S . ORG>

[lo g g in g ]
kdc = SYSLOG[: INFO[ : AUTH]]
a d m i n _ s e r v e r = SYSLOG[ INFO[ : AUTH]]
d e f a u l t = SYSLOG[ [ : S Y S ] ]

# Конец / e t c / k r b 5 . c o n f
EOF

Вам нужно вместо имен < b e l g a r a t h > и < l f s . org> указать ваш до­
мен и имя соответствующего хоста.
В качестве d e f a u l t _ r e a i m следует указать имя вашего домена, наб­
ранное З А Г Л А В Н Ы М И Б У КВ А МИ . Это не обязательно, но реко­
мендуется как для Heimdal, так и для MIT.
e n c r y p t = t r u e указывает, что нужно шифровать весь трафик
между клиентами и серверами, использующими протокол Kerberos.
Если это не нужно, то шифрование можно отключить. Если шифро­
вание отключено, то вы можете зашифровать весь трафик, идущий
от клиента к серверу, указав для этого переключатель, имеющийся в
клиентской программе.
В параметрах [ r ea l ms ] клиентской программы указывается, где
искать сервис аутентификации KDC.
В [domain_realm] указывается отображение домена в realm.
Создайте базу данных KDC:
k d b 5 _ u t i l c r e a t e - г <LFS.ORG> - s

Теперь в базу данных надо добавить правила (пользователей). Сей­


час просто введите имя обычного пользователя или r o o t .
Пакет MIT Kerberos V 5 -1 .11.3 111 ■ ■ Н І Ш

ka d m in . l o c a l
kadmin: a d d j p o l i c y d i e t - o n l y
kadmin: a d d p r i n c - p o l i c y d i e t - o n l y < l o g in n a m e >

Ha сервере KDC и на любой машине, на которой работают сервер­


ные демоны, использующие протокол Kerberos, должен быть уста­
новлен хост-ключ (host key):
kadmin: a d d p r i n c - r a n d k e y h o s t / < b e l g a r a t h . I f s . org>
После выбора значений, предложенных по умолчанию, вам потре­
буется экспортировать данные в файл keytab:
kadmin: k t a d d h o s t / < b e l g a r a t h . I f s . o r g >

В результате в каталоге / e t c / h e i m d a l должен быть создан файл


kr b5 . k e y t a b (Kerberos 5). Этот файл должен иметь права доступа
600 (запись и чтение только для пользователя r o o t ) . Файл keytab
нужно хранить в месте, к которому запрещен общий доступ, посколь­
ку это чрезвычайно важно для обеспечения общей безопасности уста­
новленного варианта Kerberos.
Выйдите из программы kadmin (используйте команду quit или
exit) и вернитесь в командную оболочку. Запустите вручную демон
KDC просто для того, чтобы проверить результат установки:
/ us r /s bi n/ kr b5kdc

Попытайтесь получить билет с помощью следующей команды:


k i n i t <loginname>

Вам будет предложено ввести созданный вами пароль. После того,


как вы получите ваш билет, вы можете при помощи следующей ко­
манды увидеть его в списке:
klist
Информация о билете должна быть показана на экране.
Чтобы проверить функции файла ke yt ab, введите следующую ко­
манду:
k tu til
k t u t i l : r k t / e t c / k r b 5 . keytab
ktutil: 1

Должен быть выдан список правил, используемых для хоста, а так­


же должны быть указаны методы шифрования, применяемые для дос­
тупа к этим правилам.
152 ■ ■ ■ ill * Глава 4. Безопасность

Если все до этого момента было выполнено успешно, то вы можете


в определенной степени считать, что вы разобрались с установкой,
настройкой и конфигурированием этого пакета.
Дополнительная инф ормация
За дополнительной информацией обратитесь к документации к
пакету k rb 5 -l.1 1.3. на основе которой было разработаны инструкции,
описанные выше.
Скрипт Init
Если вы хотите, чтобы службы Kerberos запускались во время заг­
рузки системы, установите init-скрипт / e t c / r c . d / i n i t . d / k r b 5 , ко­
торый входит в состав пакета blfs-bootscripts-20130908. с помощью
следующей команды:
make i n s t a l l - k r b 5

Описание пакета
Установленные программы: gss-client, gss-server, k5srvutil, kadmin,
kadmin.local, kadmind, kdb5_ldap_util, kdb5_util, kdestroy, kinit,
klist, kpasswd, kprop, kpropd, krb5-config, krb5kdc, krb5-send-pr,
ksu, kswitch, ktutil, kvno, sclient, sim_client, sim_server, sserver,
uuclient и uu server
Установленные библиотеки: libgssapi_krb5.so, libgssrpc.so,
libk5crypto.so, libkadm5clnt.so, libkadm5srv.so, libkdb5.so, libkdb_
ldap.so, libkrb5.so, libkrb5support.so и libverto.so
Установленные каталоги: /usr/include/gssapi, /usr/include/gssrpc,
/usr/include/kadm 5, /usr/include/krb5, /u sr/lib /k rb 5 , /u s r /
sh are/d o c/k rb 5 -l.l 1.3, /usr/share/exam ples/krb5 и /v a r/lib /
krb5kdc
Краткое описание
k5srvutil Является утилитой, предназначенной для
работы с файлами keytable.
kadmin Является утилитой, предназначенной для
внесения изменений в базу данных Kerberos,
kadmind Является сервером, предназначенным для
административного доступа к базе данных
Kerberos.
kdb5 util Является утилитой для доступа к базе дан­
ных KDC.
Пакет MIT Kerberos V 5 -1.1 1.3 153

kdestroy Удаляет текущий набор билетов.


kinit Используется для проверки подлинности на
сервере Kerberos, использкуемого в качестве
основного, и получения билет на выдачу биле­
та, что впоследствии можно будет использовать
для получения билетов для других сервисов.
klist Считывает и отображает текущие билеты в
учетных данных кэша.
kpasswd Является программой, предназначенной для
изменения паролей Kerberos 5.
kprop Берет базу данных в указанном формате и
преобразует его в поток записей в формате
базы данных.
kpropd Получает базу данных, отправленную с по­
мощью kprop, и записывает ее в качестве ло­
кальной базы данных
krb5-config Предоставляет информацию о том, как ском­
поновать программы с библиотеками.
krb5kdc Является сервером Kerberos 5.
ksu Это программа для суперпользователя, поз­
воляющая ему пользоваться протоколом
Kerberos. Требуются правильно сконфигури­
рованные файлы / e t c / s h e l l s и ~ / . k51ogin,
позволяющие лицу, входящему в систему
стать суперпользователем.
kswitch Если есть кэш коллекции, то делает указан­
ный кэш учетных данных первичным кэшем
коллекции.
ktutil Это программа управления файлами keytab,
используемыми в протоколе Kerberos.
kvno Это программа управления файлами keytab,
используемььми в протоколе Kerberos.
sclient Используется для контакта с сервером об­
разцов и аутентификации на нем с помощью
билетов Kerberos 5, затем отображения отве­
та, полученного от сервера.
sserver Сервер образцов Kerberos 5.
154 Глава 4. Безопасность

l i b g s s a p i _ k r b 5 . so Содержит функции интерфейса програм­


мирования общего сервиса безопаснос­
ти (Generic Security Service Application
Programming Interface, GSSAPI), с помощью
которых для тех, кто обращается за серви­
сом, можно обычным образом реализовывать
безопасный сервис, поддерживаемый рядом
основных механизмов и технологий и, сле­
довательно, обеспечивающий переносимость
приложений на уровне исходного кода пере­
носимости приложений в различных средах.
l i b k a d m 5 c l n t . so Содержит административные функции аутен­
тификации и проверки паролей, которые тре­
буются клиентским программам Kerberos 5.
l i b k a d m b s r v . so Содержит административные функции ау­
тентификации и проверки паролей, которые
требуются серверам Kerberos 5.
l i b k d b b . so Является библиотекой Kerberos 5, реализую­
щей доступ к базе данных аутентификации/
авторизации.
l i b k r b b . so Является библиотекой Kerberos 5 общего наз­
начения.
Перевод с оригинала от 2013-08-23 03:32:24 -0700

Пакет N ettle-2.7.1
Знакомимся с пакетом Nettle
Пакет Nettle является низкоуровневой криптографической библио­
текой, которой просто воспользоваться во многих ситуациях.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (HTTP): http://ftp.gnu.Org/gnu/nettle/nettle-2.7.1.tar.gz
• Загрузка (FTP): ftp://ftp.gnu.O rg/gnu/nettle/nettle-2.7.l.tar.gz
• Контрольная сумма MD5: 00335147911317931dd453520eb234a5
• Размер загружаемого пакета: 1,5 MB
• Оценочный размер требуемого дискового пространства: 94 MB
• Оценочное время сборки: 0,6 SBU
Пакет Nettle-2.7.1 155

Зависимости пакета Nettle


Необязательные
OpenSSL-l.O.le
Замечания для пользователей:
http://w iki.linuxfrom scratch.org/blfs/w iki/nettle

Установка пакета Nettle


Установите пакет Nettle с помощью следующих команд:
. /c o n f i g u r e - - p r e f i x = / u s r &&
make

Чтобы проверить результаты, выполните команду make check.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l &&
chmod - v 755 / u s r / l i b / l i b h o g w e e d . s o . 2 . 5 / u s r / l i b / l i b n e t t l e . s o . 4 . 7 &&
i n s t a l l - v -m755 - d / u s r / s h a r e / d o c / n e t t l e - 2 . 7 . 1 &&
i n s t a l l - v -m644 n e t t l e . h t m l / u s r / s h a r e / d o c / n e t t l e - 2 . 7 . 1

Описание пакета
Установленные программы: nettle-hash, nettle-lfib-stream,
pkcsl-conv и sexp-conv
Установленные библиотеки: libhogweed.{so,a} и libnettle.{so,a}
Установленный каталог: /u sr/in clu d e/n ettle

Краткое описание
nettle-hash Вычисляет значение хеш-функции в помощью
указанного алгоритма.
nettle-lfib-stream Выводит последовательность псевдослучайных
(не криптографических) байтов с помощью ге­
нератора чисел Фибоначчи, разработанным
Кнутом. Поток используется для тестирова­
ния, но его не следует использовать для генера­
ции криптографических ключей или для чего-
нибудь другого, где требуются действительно
случайные значения.
pkcsl-conv Преобразует закрытые и открытые ключи RSA
из формата PKCS #1 в формат sexp.
sexp-conv Преобразует s-выражение в другую кодировку.
Перевод с оригинала от 2013-09-01 13:59:10 -0700
156 ■ ■ f Глава 4. Безопасность

Пакет N SS-3.15.1
Знакомимся с пакетом NSS
Пакет Network Security Services (NSS) представляет собой набор
библиотек, предназначенных для поддержки кросс-платформенной
разработки безопасных клиентских и серверных приложений. При­
ложения, созданные с помощью NSS, могут поддерживать работу
с сертификатами SSL v2 и v3, TLS, PKCS #5, PKCS #7, PKCS #11,
PKCS #12, S/M IM E, X.509 v3, а также с другими стандартами безо­
пасности. Пакет полезен при реализации в приложении стандартов
SSL и S/M 1M E или других стандартов интернет безопасности.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.
Информация о пакете
• Загрузка (H T TP): http://ftp.m ozilla.org/pub/m ozilla.org/
security /nss/releases/N SS_3_15_l_R T M /src/nss-3.15. l.tar.gz
• Загрузка (FTP): ftp://ftp.m ozilla.org/pub/m ozilla.org/securitv/
nss/releases/N SS_3_15_l_R TM /src/nss-3,15. l.tar.gz
• Контрольная сумма MD5: fb68f4d210ac9397dd0d3c39c4f938eb
• Размер загружаемого пакета: 6,0 MB
• Оценочный размер требуемого дискового пространства: 74 MB
• Оценочное время сборки: 1,2 SBU
Дополнительные загрузки
• Требуемый патч: http://www .linuxfrom scratch.org/patchcs/
blfs/svn/nss-3.15.1-standalone-2.patch
Зависимости пакета NSS
Обязательные
NSPR-4.10
Реком ендуем ы е
SQLite-3.8.0.2
Замечания для пользователей:
http://w iki.hnuxfrom scratch.org/blfs/w iki/nss

Установка пакета NSS


w , тжж**%
»»»«&«■,штат®',-ттт -мжтгт '
Зам ечан ие
Для этого пакета не допускается параллельная сборка пакетов.
Пакет NSS-3 Л 5.1 шш
Установите пакет NSS с помощью следующих команд:
p a tc h -Npl - i . . / n s s - З . 1 5 . l - s t a n d a l o n e - 2 . p a t c h &&
cd n s s &&
m ake B UILD OPT=l \
NSPR_INCLUDE_DIR=/usr/include/nspr \
USE_SYSTEM_ZLIB=1 \
ZLIB L I B S = -l z \
$ ( [ $ (uname -m) = x86_64 ] && e ch o USE_64=1) \
$ { [ - f / u s r / i n c l u d e / s q l i t e 3 . h ] && e ch o NSS_USE_SYSTEM_SQLITE=1)

Данный пакет поставляется без тестового набора.


Теперь в роли пользователя r oo t выполните:
cd . . / d i s t &&
i n s t a l l - v -m755 L i n u x * / l i b / * . s o / u s r / l i b &&
i n s t a l l - v -m644 L i n u x * / l i b / { * . c h k , l i b c r m f . a } / u s r / l i b &&
i n s t a l l - v -m755 - d / u s r / i n c l u d e / n s s &&
cp - v -RL { p u b l i c , p r i v a t e } / n s s / * / u s r / i n c l u d e / n s s &&
chmod 644 / u s r / i n c l u d e / n s s / * &&
i n s t a l l - v -m755 L i n u x * / b i n / { c e r t u t i l , n s s - c o n f i g , p k l 2 u t i l } / u s r / b i n &&
i n s t a l l - v -m644 L i n u x * / l i b / p k g c o n f i g / n s s . p c / u s r / l i b / p k g c o n f i g

Пояснение команд
build _ o p t =1: Этот необязательный параметр передается в коман­
ду make с тем, чтобы сборка осуществлялась без отладочных
символов в двоичных модулях и использовались оптимиза­
ции, применяемые в компиляторе по умолчанию.
N S P R _ I N C L U D E _ D I R = / u s r / i n c l u d e / n s p r : С П О М О Щ Ь Ю ЭТОГО Не-
обязателытого параметра указывается, где находятся заголов­
ки nspr.
use _ s y s t e m _ z l i b =1: Этот необязательный параметр передается
в команду make с тем, чтобы обеспечить, чтобы библиотека
l i b s s l 3 .so компоновалась с библиотекой zlib, установленной
в системе, а не с версией, имеющейся в дереве пакета.
z l ib _ l i b s = -1 z : В этом необязательном параметре указываются
флаги компоновки, необходимые для компоновки с системной
библиотекой zlib.
$ ([ $(uname -m) = х86_64 ] && echo USE_64=1): Необязатель­
ный параметр u s e _ 6 4 = 1 требуется на машинах с архитекту­
рой х86_64, поскольку в противном случае команда make по­
пытается собрать (и потерпит неудачу) 32-разрядные объекты.
Проверка [ $(uname -m) = х86_64 ] обеспечивает, чтобы эта
настройка не сказалась на 32 разрядной системе.
Ш Я *; Глава 4. Безопасность

([ -f /usr/include/sqlite3.h ] && echo NSS_USE_SYSTEM_


SQLITE=1): Здесь проверяется, установлен ли пакет sqlite, и
если он установлен, то в команду make передается параметр
NSS_USE_SYSTEM _SQLITE=1 с тем, чтобы l i b s o f t o k n 3 .so
компоновалась с системной версией пакета sqlite.

Описание пакета
Установленные программы: certutil, nss-config и pkl2util
Установленные библиотеки: libcrmf.a, libfreebl3.so, libnss3.so,
libnssckbi.so, libnssdbm3.so,
libnsssysinit.so, libnssutil3.so,
libsmime3.so, libsoftokn3.so и libsslS.so
Установленные каталоги: /usr/include/nss
Краткое описание
certutil Является инструментальным средством базы данных
сертификатов Mozilla. Это утилита командной строки,
которая может создавать и изменять файлы базы данных
Netscape Communicator cert8.db и key3.db. Она также
может выдавать список, создавать, изменять или удалять
сертификаты в файле cert8.db и создать или изменить
пароль, генерировать новую пару открытых и закрытых
ключей, отображать содержимое базы данных ключей,
или удалить пары ключей в файле key3.db.
nss-config Используется для задания настроек, используемых
библиотеками NSS.
pkl2util Представляет собой инструмент для импорта
сертификатов и ключей из файлов PKCS #12 в NSS
или их экспорта. Он также может выдавать список
сертификатов и ключей, имеющихся в таких файлах.
Перевод с оригинала от 2013-08-20 13:51:02 -0700

Пакет OpenSSH-6.3p1
Знакомимся с пакетом OpenSSH
В пакете OpenSSH находятся клиентские программы ssh и демон
sshd. Используются для аутентификации и последующей передачи
по сети шифрованного трафика. Команды ssh и scp являются безопас­
ными реализациями команд telnet и гср, соответственно.
Пакет OpenSSH-6.3pl 159

Известно, что пакет правильно собирается и работает на платфор­


ме LFS-7.4.

Информация о пакете
• Загрузка (H TTP): http://ftp.openbsd.org/pub/O penB S D /
OpenSSH/portable/openssh-6.3pl.tar.gz
• Загрузка (FTP): ftp://ftp.openbsd.org/pub/O penB SD /
OpenSSH/portable/openssh-6.3pl,tar.gz
• Контрольная сумма MD5: 225e75c9856f76011966013163784038
• Размер загружаемого пакета: 1,2 MB
• Оценочный размер требуемого дискового пространства: 35 MB
(дополнительно 10 MB в случае, если выполняются тесты)
• Оценочное время сборки: 0,4 SBU (запуск тестов занимает не
менее 10 минут, независимо от скорости процессора)

Зависимости пакета OpenSSH


Обязательные
OpenSSL-l.O.le
Необязательные
Linux-PAM-1.1.7, система X Window, M IT Kerberos V5-1.11.3,
libedit, OpenSC и libsectok
Необязательные врем ени исполнения
(используются только д л я удаления эффекта энтропии)
OpenJDK-1.7.0.40/IcedTea-2.4.1,Net-tools-CVS_20101030
и Sysstat-10.1.7.
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/w iki/O pcnSSH

Установка пакета OpenSSH


Когда происходит подключение к другим компьютерам, OpenSSH за­
пускает два процесса. Первый процесс является привилегированным
и управляет выдачей прав доступа по мере возникновения в них необ­
ходимости. Второй процесс взаимодействует с сетыо. Для того, что­
бы иметь правильно настроенную среду, необходима дополнительная
настройка, которую можно выполнить в роли пользователя r o o t с
помощью следующих команд:
i n s t a l l - V -m700 - d / v a r / l i b / s s h d &&
chown - v r o o t i s y s / v a r / l i b / s s h d &&
■ ■ a n Глава 4. Безопасность

groupadd - g 50 s s h d &&
useradd - c 'ssh d P rivSep' -d / v a r / l i b / s s h d -g sshd \
- s / b i n / f a l s e - u 50 s s h d

Установите пакет OpenSSH с помощью следующих команд:


. /c o n f i g u r e - - p r e f i x = / u s r \
— lib ex e c d ir= /u sr /lib /o p e n ssh \
— sy sc o n fd ir = /e tc /ssh \
--d a ta d ir = /u sr/sh a r e/ssh d \
— w i t h - m d 5 - p a s sw ord s \
— w it h - p r iv s e p - p a t h = /v a r / l i b / sshd &&
make

Чтобы запустить набор тестов, сначала в каталог / u s r / b i n скопи­


руйте программу scp, предварительно убедившись, что вы перед этим
сделали резервные копии всех имеющихся там файлов.
Чтобы получить результаты работы тестов, наберите команду:
make tests.
Теперь в роли пользователя r o o t выполните следующее:
make i n s t a l l &&
i n s t a l l - v -m755 c o n t r i b / s s h - c o p y - i d / u s r / b i n &&
i n s t a l l - v -m644 c o n t r i b / s s h - c o p y - i d . 1 / u s r / s h a r e / m a n / m a n l &&
i n s t a l l - v -m755 - d / u s r / s h a r e / d o c / o p e n s s h - б . 3 p l &&
i n s t a l l - v -m644 INSTALL LICENCE OVERVIEW README* \
/u s r /s h a r e /d o c /o p e n s s h -6 . 3pl

Пояснение команд
- - s y sc o nf di r= / et c/ ss h : Этот параметр предотвращает установ­
ку конфигурационных файлов в каталог /usr/etc.
— d a t a d i r = / u s r / s h a r e / s s h d : Этот переключатель указывает
поместить файл Ssh.bin (используется для аутентификации
смарт-карт) в каталог / u s r / s h a r e / s s h d .
— w i t h - m d 5 - p a s s w o r d s : Включает использование MD5.
— wi th-pam: Этот параметр позволяет в собираемый пакет доба­
вить поддержку Linux-РАМ.
— w i t h - x a u t h = / u s r / b i n / x a u t h : Указывает место, где по умолча­
нию должен находиться модуль xauth, используемый для ау­
тентификации в X. Измените этот параметр, если пакет xauth
будет устанавлен в другом месте. Эту настройку можно также
сделать в файле sshd_config, использовав для этого ключевое
слова XAuthLocation. Вы можете опустить этот параметр, если
пакет Xorg уже установлен.
Пакет O penSSH-6.3pl 11НИ111Й11 161

— w i t h - k e r b e r o s 5 = / u s r : Этот параметр позволяет в собираемый


пакет добавить поддержку Kerberos 5.
—w i t h - l i b e d i t : Этот необязательный параметр позволяет для
sftp использовать редактирование строк и пользоваться исто­
рией команд.

Конфигурирование пакета OpenSSH


Конфигурационные файлы
~/ .ssh/*, / e t c / ss h /s sh _c o nf ig и /e tc / ss h / s s h d _ c o n f i g

В эти файлы вносить изменения не обязательно. Тем не менее, вы


можете изучить файлы / e t c / s s h / и внести в них некоторые изме­
нения, соответствующие требованиям безопасности вашей системы.
Одним из рекомендуемых изменений является запрет пользователю
r o o t входить в систему через ssh. Чтобы отключить возможность
пользователя r o o t входить в систему через ssh, выполните в роли
пользователя r o o t следующую команду:
e c h o " P e r m itR o o t L o g in no" >> / e t c / s s h / s s h d _ c o n f i g

Если вы хотите входить в систему без набора своего пароля, то


сначала с помощью ssh-keygen создайте ~/.ssh/id_rsa и ~/.ssh/id_rsa.
pub, а затем скопируйте ~/*ssV id_rsa.pub в ~/-ssV authorized_keys
на удаленном компьютере, с которого вы хотите входить в систе­
му дистанционно. Вам нужно будет на этом компьютере изменить
REM OTE_HOSTNAM E на имя хостового компьютера и также надо
будет ввести ваш пароль в ssh следующим образом:
s s h - k e y g e n &&
p u b l i c _ k e y = " $ ( c a t ~ / . s s h / i d _ r s a . p u b ) " &&
s s h REMOTE_HOSTNAME "echo $ {p u b lic _ k e y } » ~ / . s s h / a u t h o r i z e d _ k e y s " &&
u n set p u b lic_k ey

Как только вы добьетесь того, что сможете входить в систему без


набора пароля, это будет действительно более надежно, чем набор
пароля (поскольку закрытый ключ гораздо длиннее, чем пароли, ко­
торыми пользуются большинство людей). Если вы теперь захотите
отменить возможность входа в систему с помощью набора пароля, то
в роли пользователя r o o t выполните следующее:
e ch o " P a s s w o r d A u t h e n t i c a t i o n no" » / e t c / s s h / s s h d _ c o n f i g &&
e ch o " C h a l l e n g e R e s p o n s e A u t h e n t i c a t i o n no" » / e t c / s s h / s s h d _ c o n f i g

Если вы добавили поддержку Linux-PAM, то вам нужно для sshd


добавить конфигурационный файл и разрешить использование
162 Глава 4. Безопасность

Linux-PAM. Заметьте, что ssh использует РАМ только для проверки


паролей, так что если вы отменили вход с паролями, то вам эти коман­
ды не нужны. Если вы хотите использовать РАМ, то в роли пользова­
теля ro o t выполните следующие команды:
s e d 's 0 d / l o g in @ d / s s h d @ g ' / e t c / р а ш . d / l o g i n > / e t c / p a m . d / s s h d &&
chmod 644 / e t c / р а ш . d / s s h d &&
e ch o "UsePAM y e s " >> / e t c / s s h / s s h d _ c o n f i g

Дополнительную информацию о конфигурировании можно найти


на страницах man команд sshd, ssh и ssh-agent.
Загрузочный скрипт
Чтобы запускать сервер SSI I во время загрузки системы, установи­
те загрузочный скрипт / e t c / r c .d / i n i t .d/sshd, который находится
в пакете blfs-bootscripts-201309Q8.
make i n s t a l l - s s h d

Описание пакета
Установленные программы: scp, sftp, sftp-server, slogin, ssh, sshd, ssh-
add, ssh-agent, ssh-copy-id, ssh-keygen, ssh-keyscan, ssh-keysign и
ssh-pkcs 11-helper
Установленные библиотеки: Нет
Установленные каталоги: /etc/ssh, /var/lib/sshd, /usr/lib/openssh
и /usr/share/doc/openssh-6.2p2

Краткое описание
scp Программа копирования файлов, который
действует как программа гср, за исключением
лишь того, что она использует защищенный
протокол.
sftp Является программой, похожей на FTP, ко­
торая работает поверх протоколов SSH1 и
SSH2.
sftp-server Является подсистемой сервера SFTP. Эта про­
грамма обычно не вызывается непосредствен­
но пользователем.
slogin Символическая ссылка на ssh.
ssh Клиентская программа, похожая на rlogin/rsh,
за исключением лишь того, что она использует
защищенный протокол.
Пакет OpenSSL-1.0.1 163

sshd Демон, который через ssh принимает запросы


на вход в систему.
ssh-add Инструментальное средство, с помощью кото­
рого в ssh-agent добавляются ключи.
ssh-agent Является агентом аутентификации, которая
может хранить закрытые ключи.
ssh-copy-id Скрипт, который позволяет дистанционно вхо­
дить на удаленную машину с использованием
локальных ключей.
ssh-keygen Является инструментальным средством гене­
рации ключей.
ssh-keyscan Утилита сбора открытых ключей с ряда хос­
тов.
ssh-keysign Используется программой ssh для доступа к
ключам локальных хостов и генерации циф­
ровой подписи, необходимой для аутентифи­
кации по протоколу SSH версии 2 и при ис­
пользовании отдельного хоста. Эта программа
обычно не вызывается непосредственно поль­
зователем.
ssh-pkcsll-helper Вспомогательная программа - ssh-agent для
поддержки PKCS#11.
Перевод с оригинала от 2013-09-13 12:50:39 -0700

Пакет OpenSSL-1.0.1 е
Знакомимся с пакетом OpenSSL
В пакете OpenSSL находятся средства управления и библиотеки,
связанные с криптографией. Они используются для предоставления
криптографических функций другим пакетами, в частности, пакету
OpenSSH, приложениям электронной почты и веб-браузерам (для
доступа к сайтам HTTPS).
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (H TTP): http://www.openssl.org/source/openssl-
l.Q.le.tar.gz
• Загрузка (FTP): ftp://ftp.openssl.org/sourcc/opcnssl-1.0.le.tar.gz
11811! Глава 4. Безопасность

• Контрольная сумма MD5: 66bf6fl0f060d561929de96f9dfe5b8c


• Размер загружаемого пакета: 4,3 MB
• Оценочный размер требуемого дискового пространства: 55 MB
• Оценочное время сборки: 1,5 SBU

Дополнительные загрузки
• Необходимые патчи:
h ttp ://w w w .lin u x fro m scratch .o rg /p atch es/b lfs/sv n /o p en ssl-
1.0.1 c-fix_parallcl_build-1.patch
h ttp ://w w w .lin u x fro m scratch .o rg /p atch es/b lfs/sv n /o p en ssl-
1.0.1 e-fix_pod_svntax-1.patch

Зависимости пакета OpenSSL


Необязательные
be-1.06.95 (необходимы для выполнения полного набора тестов
в процессе сборки пакета) и MIT Kerberos V5-1.11.3
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/w iki/O penSSL

Установка пакета OpenSSL


Установите пакет OpenSSL с помощью следующих команд:
p a t c h -N p l - i . . / o p e n s s l - 1 . О. l e - f i x _ p a r a l l e l _ b u i l d - l . p a t c h &&
p a t c h -N p l - i . . / o p e n s s l - 1 . 0 . l e - f i x _ p o d _ s y n t a x - l . p a t c h &&

./co n fig — p refix = /u sr \


--o p e n ssld ir = /e tc /ssl \
shared \
z l i b - d y n a m i c &&
make

Чтобы проверить результаты, выполните: make test.


Если вы хотите отменить установку статических библиотек, то ис­
пользуйте следующую команду sed:
sed - i ' s # l i b e r y p t o . a##; s# l i b s s l . a # # ' Makefile

Теперь в роли пользователя root выполните:


make MANDIR =/usr /share/m an MANSUFFIX=ssl i n s t a l l &&
i n s t a l l - d v -m755 / u s r / s h a r e / d o c / o p e n s s l - 1 . 0 . l e &&
cp - v f r d o c / * /u sr /sh a r e /d o c /o p e n s sl-1 . 0 . le
Пакет OpenSSL-1.0.1 е мшт 165

Пояснение команд
s h a r ed : Этот параметр указывает, что вместе со статическими
библиотеками нужно создать динамические общедоступные
библиотеки.
z l i b - d y n a m i c : Этот параметр добавляет функцию сжатия / рас­
паковки архивов, которая реализуется с помощью библиотеки
libz.
n o - r c 5 n o - i d e a : Когда этот параметр добавляется к команде
./config, указанные методы шифрования собираться не будут.
Чтобы в ваших проектах использовать любой из этих методов,
вам могут потребоваться патентные лицензии.
make M ANDIR=/usr/share/man MANSUFFIX=ssl install: С по­
мощью этой команды указывается, что пакет OpenSSL будет
установлен со страницами man, которые устанавливаются в
каталоге / u s r / s h a r e / m a n , а не в каталоге / e t c / s s l / m a n , при
этом суффикс «ssl» к именам страниц руководства добавляет­
ся для того, чтобы избежать конфликтов со страницами руко­
водств, устанавливаемые другими пакетами.

Конфигуриование пакета OpenSSL


Конфигурационные файлы
/ e t c / s s l / o p e n s s i . cnf
Подробнее о конфигурировании
Большинство пользователей хотят установить сертификаты
Certificate Authority (подписанные сертификаты), предназначенные
для проверки загружаемых сертификатов. Например, эти сертифи­
каты используются в пакетах git-1.8.3.4, cURL-7.32.0 или Wget-1.14
при доступе к защищенным сайтам (по протоколу https). Для это­
го следуйте инструкциям на странице «Сертификаты Certificate
Authority».
Те, кто просто хочет использовать пакет OpenSSL в виде функций,
к которым обращаются другие программы, такие как OpenSSH и веб­
браузеры, не нужно беспокоиться о дополнительной настройке. Кон­
фигурирование пакета OpenSSL является сложной темой, так что те,
кому конфигурирование нужно, как правило, либо знают, как обно­
вить файл / e t c / s s l / o p e n s s l . cnf, либо имеют возможность узнать,
как это сделать.
1111! Глава 4. Безопасность

Описание пакета
Установленные программы: c_rehash и openssl
Установленные библиотеки: libcrypto.{so,a} и libssl.{so,a}
Установленные каталоги: /etc/ssl, /usr/include/openssl, /u sr/Н Ь/
engines и /usr/share/doc/openssl-l.O .le
Краткое описание
с rehash Это Perl-скрипт, который сканирует все фай­
лы, находящиеся в каталоге, и добавляет сим­
волические ссылки на их хэш-значения.
openssl Это инструментальное средство, работающее
из командной строки, которое позволяет из
командной оболочки обращаться к различ­
ным функциям криптографической библио­
теки OpenSSL. Его можно использовать для
доступа к различным функциям, которые
описаны в man 1 openssl.
l i b c r y p t o . { s o , а} Реализует широкий спектр криптографичес­
ких алгоритмов, используемых в различных
стандартах сети интернет. Возможности, пре­
доставляемые этой библиотекой, используют­
ся в OpenSSL при реализации стандартов SSL,
TLS и S/M IM E; их следует также использо­
вать при реализации OpenSSH, OpenPGP и
других криптографических стандартов.
l i b s s l . { s o , а} Реализует протоколы Secure Sockets Layer
(SSL v2/v3) и Transport Layer Security (TLS
v l). Предоставляет богатый интерфейс API,
документацию по которому мохно получить с
помощью команды man 3 ssl.
Перевод с оригинала от 2013-08-17 13:38:01 -0700

Пакет р 1 1 -kit-0.20.1
Знакомимся с пакетом р 1 1-kit
В пакете p i 1-kit предоставляется средство загрузки и нумерации мо­
дулей PKCS #11 (стандарт на интерфейс криптографических токе­
нов).
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (H TTP): http://pll-glue.freedesktop.org/releases/
p i l-kit-0.18.5.tar.gz
• Контрольная сумма MD5: 88c651137f76al67336639371eafd8cc
• Размер загружаемого пакета: 1,1 MB
• Оценочный размер требуемого дискового пространства: 74 MB
• Оценочное время сборки: 0,4 SBU

Зависимости пакета р 1 1 -kit


Р еком ендуем ы е
Сертификаты Certificate Authority и libtasnl-3.3
Необязательные
GTK-Doc-1.19 и libxslt-1.1.28
Замечания для пользователей:
http://w iki.linuxfrom scratch.org/blfs/w iki/pll-kit

Установка пакета р 1 1
Установите пакет p i 1-kit с помощью следующих команд:
. / c o n f i g u r e - - p r e f i x = / u s r - - s y s c o n f d i r = / e t c &&
make

Чтобы проверить результаты, выполните команду: make check.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l

Пояснение команд
— en ab le-d o c: Используйте этот переключатель в случае, если
у вас установлены пакеты GTK-Doc-1.19 и libxslt-1.1.28 и вы
желаете пересобрать документацию и сгенерировать страницы
руководств.

Описание пакета
Установленные программы: р 11 -kit
Установленные библиотеки: libpl 1-kit.so и pll-kit-proxy.so
Установленные каталоги: /e tc /p k c sl 1, /u sr/in c lu d e /p l 1-kit-l,
Ш И И 4 1 1 iî Глава 4. Безопасность

/u s r/lib /р 11 -kit, /u sr/lib /p k cs 11, /u sr/sh are /g tk -d o c/h tm l/


p i 1-kit и /u s r/s h a re /p l 1-kit

Краткое описание
p ll- k it Инструментальное средство, работающее из
командной строки, которое можно использо­
вать для выполнения операций с модулями
PKCS#11, сконфигурированными в системе,
l i b p l l - k i t . so Содержит функции, используемые для коор­
динации выполнения инициализации и фина-
лизации любого модуля PKCS#11.
p i l - k i t - p r o x y . so Прокси-модуль PKCS#11.
Перевод с оригинала от 2013-09-09 15:17:21 -0700

Пакет P o lkit-0.111
Знакомимся с пакетом Polkit
Пакет Polkit является инструментальным набором для определения
и обработки механизма авторизации. Он позволяет непривилегиро­
ванным процессам взаимодействовать с привилегированными про­
цессами.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка ГНТТРУ http://w w w .freedesktop.org/softw are/polkit/
releases/polkit-O.lll.tar.gz
• Контрольная сумма MD5: 81bll6edf986d8el3502929al71f4e0d
• Размер загружаемого пакета: 1,4 MB
• Оценочный размер требуемого дискового пространства: 17 MB
• Оценочное время сборки: 0,5 SBU

Зависимости пакета Polkit


Обязательные
GLib-2.36.4, Intltool-0.50.2 и JS-17.0.0
Необязательные
(необходимы в случае, если собирается GNOM E)
gobject-introspection-1.36.0
Необязательные
docbook-xml-4.5, docbook-xsl-1.78.1, GTK-Doc-1.19, libxslt-1.1.28
и Linux-PAM-1.1.7

Замечание
Если установлен пакет libxslt-1.1.28. то требуются пакеты docbook-
xml-4.5 и docbook-xsl-1.78.1. Если установлен пакет libxslt-1.1.28.
но вы не хотите устанавливать какой-нибудь из упомянутых пакетов
DocBook, вам нужно в инструкции, которые приведены ниже, ис­
пользовать — d i s a b l e - m a n - p a g e s .

Замечания для пользователей:


http://w iki.lin u x fro m scratch .o rg /b lfs/w ik i/p Q lk it

Установка пакета Polkit


Для того, чтобы можно было управлять демоном polkitd после того, как
он будет запущен, нужны специальный пользователь и специальная
группа. В роли пользователя r o o t выполните следующие команды:
groupadd - f g 27 p o l k i t d &&
u s e r a d d - с " P o l i c y K i t Daemon Owner" - d / e t c / p o l k i t - 1 - u 27 \
-g p o lk itd -s /b i n / f a ls e p o lk itd

Установите пакет Polkit с помощью следующих команд:


. /c o n f i g u r e - - p r e f i x = / u s r \
— sy sco n fd ir= /etc \
— lo ca lsta ted ir= /v a r \
--lib e x e c d ir = /u sr /lib /p o lk it-l \
--w ith-authfw = shadow \
- - d i s a b l e - s t a t i c &&
make

Чтобы проверить результаты, наберите: make check. Заметьте, что


для того, чтобы можно было завершить выполнение тестового набо­
ра, должен работать демон шины D-Bus. Также будет выдано предуп­
реждение о том, что нет базы данных ConsoleKit, но его можно будет
просто проигнорировать.
Теперь в роли пользователя r o o t выполните:
make i n s t a l l

Пояснение команд
— wi th -a ut hf w=s ha do w: Этот параметр указывает, что будет ис­
пользоваться Shadow, а не фреймворк аутентификации Linux-
I Глава 4. Безопасность

РАМ. Удалите этот параметр в случае, если вам нравится поль­


зоваться пакетом Linux-PAM.
— d i s a b l e - s t a t i c : Этот переключатель предотвращает установ­
ки статических версий библиотек.
— e n a b l e - g t k - d o c : Используйте этот параметр в случае, если
установлен пакет GTK-Doc и вы хотите заново пересобрать и
установить документацию по API.

Конфигурирование пакета Polkit


Конфигурирование РАМ

Замечание
Если вы собрали пакет Polkit без поддержки Linux-PAM, то вы може­
те пропустить этот раздел.

Если вы собрали пакет Polkit с поддержкой Linux-PAM, то вам для


того, чтобы заставить пакет Polkit правильно работать с BLFS, нуж­
но будет изменить конфигурационный файл РАМ, используемый по
умолчанию. В роли пользователя r o o t наберите следующие команды
для того, чтобы создать конфигурационный файл Linux-PAM:
ca t > /e tc /p a m .d /p o lk it-1 « "EOF"
# Начало / e t c / p a m . d / p o l k i t - 1

auth in c lu d e system -auth


account in c lu d e system -accou nt
password in c lu d e system -passw ord
se ssio n in c lu d e sy stem -sessio n

# Завершение / e t c / p a m . d / p o l k i t - 1
EOF

Описание пакета
Установленные программы: ркасВоп, рксЬеск,
рк-ехатр1е-1тоЬшса1е,
ркехес, pkttyagent и ро1кйх[
Установленные библиотеки: НЬроПсЕ^епМ.БО
и НЬро1кй;^оЬ]есМ.50
Установленные каталоги: /е^ /р о П В М , /Ч15г/тс1ис1е/ро1кй-1,
/ш г/НЬ/ро1Ы М , /и Б г/зЬ а ге ^ к -б о с /
ЬВгй/роПВМ и /изг/БЬаге/роИВМ
Пакет Shadow-4.1.5.1 171

Краткое описание
pkaction Используется для получения информации о за­
регистрированных действиях Policy Kit.
pkcheck Используется для проверки, был ли процесс ав­
торизован для выполнения в качестве действия,
ркехес Позволяет авторизованному пользователю вы­
полнять команду в роли другого пользователя,
polkitd Предоставляет на шине системных сообщений
сервис org.freedesktop.PolicyKitl D-Bus.
pkaction Используется для получения информации о за­
регистрированных действиях Policy Kit.
libpolkit- Содержит функции API агента аутентификации
a g e n t - 1 . so Polkit.
libpolkit-
Содержит функции API авторизации Polkit.
gobj e c t - 1 . so
Перевод с оригинала от 2013-09-12 04:52:21 -0700

Пакет Shadow -4.1.5.1


Знакомимся с пакетом Shadow
Пакет Shadow в действительности уже был установлен и его не тре­
буется переустанавливать, если после того, как была собрана систе­
ма LFS, вы не устанавливали пакет CrackLib или пакет Linux-PAM.
Если после сборки системы LFS вы установили пакет CrackLib, то
переустановка пакета Shadow позволит пользоваться стойкими паро­
лями. Если у вас установлен пакет Linux-PAM, то переустановка па­
кета Shadow позволит таким программам, как login и su, пользоваться
технологией РАМ.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• 3arpv3KatHTTPFhttp://pkg-shadow.alioth.debian.org/releases/
shadow-4.1.5.1 .tar.bz2
• Контрольная сумма MD5: a00449aa439c69287b6d472191dc2247
• Размер загружаемого пакета: 2,1 MB
• Оценочный размер требуемого дискового пространства: 38 MB
• Оценочное время сборки: 0,3 SBU
П Ш Я ДНИНИ Ш Ш ш т
172 ■ ■ I Глава 4. Безопасность

Зависимости пакета Shadow


Обязательные
Linux-РАМ-1.1.7 или CrackLib-2.9.0
Замечания для пользователей:
http://w iki.linuxfrom scratch.org/blfs/w iki/shadow

Установка пакета Shadow


Важно
Установочные команды, показанные ниже, предназначены для пе­
реустановки пакета Shadow в тех случаях, когда был установлен
пакет Linux-РАМ (с установкой или без установки пакета CrackLib) с
тем, чтобы обеспечить поддержку использования Linux-PAM.
Если вы переустанавливаете пакет Shadow для того, чтобы мож­
но было использовать стойкие пароли, что реализовано с помощью
библиотеки CrackLib, и вам не нужно использовать Linux-PAM, до­
бавьте к скрипту configure, показанному ниже, параметр — w i t h -
l i b c r a c k , а также выполните следующую команду:
s e d - i ' S 0 D I C T P A T H .* 0 D I C T P A T H \t/lib /c r a c k lib /p w _ d ic t 0 '
e tc /lo g in .d e fs

Переустановите пакет Shadow с помощью следующих команд:


s e d - i ' s / g r o u p s $ (EXEEXT) / / ' s r c / M a k e f i l e . i n &&
find man -name M akefile, i n - e x e c s e d - i ' s / g r o u p s \ . l / / ' {} \ ; &&
s e d —i - e ' s / k o / / ' - e ' s / zh_CN zh_TW//' m an/M akefile. i n &&

sed - i -e 's@#ENCRYPT_METHOD DES0ENCRYPT_METHOD SHA5120' \


-e ' s 0 / v a r / s p o o l / m a i l 0 / v a r / m a i l 0 ' e t c / l o g i n . d e f s &&

sed - i -e 's0 P A T H = /sb in :/b in :/u sr /sb in :/u sr /b in 0 & : / u s r / l o c a l / s b i n :


/u sr /lo c a l/b in 0 / \
- e 's 0 P A T H = /b in :/u s r/b in 0 & : / u s r / l o c a l / b i n 0 ' e t c / l o g i n . d e f s &&

. / c o n f i g u r e - - p r e f i x = / u s r - - s y s c o n f d i r = / e t c &&
make

В этом пакете набор тестов отсутствует.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l &&
mv - v / u s r / b i n / p a s s w d / b i n

Пояснение команд
sed -i <s/groups$(E X E EX T) / / ’ src/Makefile.in: Эта команда sed
используется для подавления установки программы groups,
Пакет Shadow -4.1.5.1 И у ИИНИШ ДИ 173

поскольку более предпочтительной является версия из пакета


Coreutils, установленная в системе LFS.
find man -name Makefile.in -exec ... {} \;: Эта команда использу­
ется для подавления установки страниц man для программы
groups, поскольку существующие страницы, которые установ­
лены из пакета Coreutils, замены не требуют,
sed -i -е *...’ -е man/Makefile.in: Эта команда отключает установ­
ку страниц руководств на китайском и корейском языках, пос­
кольку пакет Man-DB не может правильно их форматировать,
sed -i -е <s@#ENCRYPT_METHOD DES@ENCRYPT_METHOD
SHA512@* -e ‘8@ /уаг/8роо1/тай@ /уаг/таи@ ’ etc/login.defs:
Вместо метода 'crypt’, используемого по умолчанию, эта ко­
манда изменяет установку так, что в ней используется более
надежный метод шифрования паролей ‘md5’, который также
позволяет использовать пароли, длина которых больше вось­
ми символов. Также происходит замена устаревшего каталога
/ v a r / s p o o l / m a i l на каталог / v a r / m a i l , в котором по умол­
чанию пакет Shadow должен хранить почтовые ящики поль­
зователей.
sed -i -е ‘s@ PATH=/sbin:/bin:/usr/sbin:/usr/bin@ & :/usr/local/
sbin:/usr/local/bin@ ’ -е ‘s@PATH=/bm:/usr/bin@&:/usr/
local/bin@’ etc/login.defs: Эта команда sed добавляет в PATH
путь / u s г / l o c a l / b i n для обычного пользователя и пользова­
теля root, а также добавляет путь / u s r / l o c a l / s b i n только для
пользователя r o o t ,
mv -v /usr/bin/passw d /bin: Программа passwd может потре­
боваться в тех случаях, когда файловая система / u s г еще не
смонтирована, поэтому эта программа перемещается в корне­
вой раздел.

Конфигурирование пакета Shadow


В вашем случае конфигурование пакета Shadow может оказаться
нежелательным для утилиты useradd. Единственный параметр, ис­
пользуемый в useradd, предназначен для создания файлов почтовых
ящиков для вновь добавляемых пользователей. Утилита useradd
определяет для этого файла группу владельцев как m a i l с правами
доступа 0660. Если вы предпочитаете, чтобы эти файлы почтовых
ящиков не создавались с помощь утилиты useradd, выполните в роли
пользователя r o o t следующую команду:
sed - i 's/y es/n o /' /etc /d efa u lt/u se ra d d
Глава 4. Безопасность

Конфигурирование Linux-РАМ для работы


с пакетом Shadow

Замечание
Оставшаяся часть этого раздела посвящена настройке пакета
Shadow для правильной работы с Linux-PAM. Если у вас пакет Linux-
РАМ не установлен и вы переустановили пакет Shadow только для
поддержки работы со стойкими паролями, что реализуется с помо­
щью библиотеки CrackLib, то никаких дополнительных настроек не
требуется.

Конфигурационные файлы
/ e t c /раш. d / * или, как альтернатива, / e t c /раш. c o n f , / e t c / l o g i n ,
defs и / e t c / s e c u r i t y / *

Подробнее о конфигурировании
Настройка системы для использования Linux-PAM может оказать­
ся сложной задачей. Ниже описывается базовая настройка, благодаря
которой функции проверки имени и пароля будут эффективно вы­
полняться Linux-PAM. Дополнительную информацию о конфигури­
ровании и необходимые ссылки смотрите на странице Linux-PAM-
1.1.7. Информацию, относящуюся к интеграции пакетов Shadow,
Linux-PAM и CrackLib, вы можете получить по следующей ссылке:
http://www .deer-run.com /-hal/sysadm in/pam _cracklib.htm l
Конфигурирование / e tc /lo g in . defs
В текущий момент программа login выполняет большинство функ­
ций, которые должны реализовываться с помощью модулей Linux-
PAM. Следующая команда sed закомментирует соответствующие
строки в файле / e t c / l o g i n . d e f s , и программа login не будет вы­
полнять эти функции (также будет создан резервный файл с именем
/ e t c / l o g i n . d e f s . o r i g , в котором будет сохранено содержимое ис­
ходного файла). Выполните в роли пользователя r o o t следующие
команды:
i n s t a l l - V -m644 / e t c / l o g i n . d e f s / e t c / l o g i n . d e f s . o r i g &&
f o r FUNCTION i n FAIL_DELAY FAILLOG_ENAB \
LASTLOG_ENAB \
MAIL_CHECK_ENAB \
OBSCURE_CHECKS_ENAB \
PORTTIME CHECKS ENAB \
Пакет Shadow-4.1.5.1

QUOTAS_ENAB \
CONSOLE MOTD_FILE \
FTMP_FILE NOLOGINS_FILE \
ENV_HZ PASS_MIN_LEN \
SU_WHEEL_ONLY \
CRACKLIB_DICTPATH \
PAS S_CHANGE_T RIE S \
PAS S_ALWAYS_WARN \
CHFN_AUTH ENCRYPT_METHOD \
ENVIRON_FILE
do
sed - i " s / A$ { FUNCTION} / # &/" / e t c / l o g i n . d e f s
done

Конфигурирование файлов /e t c /p a m .d /
Как уже ранее упоминалось в инструкциях пакета Linux-PAM, в
Linux-PAM поддерживается два способа конфигурирования. В ко­
мандах, приведенных ниже, считается, что вы выбрали метод с ис­
пользованием для конфигурирования каталога, в котором для каждой
программы есть свой собственный конфигурационный файл. При же­
лании можно пользоваться единственным конфигурационным фай­
лом / e t c /раш. c o n f и записать в него текст из файлов, приведенных
ниже, а в качестве дополнительного первого поля в каждой строке
указать имя конфигурируемой программы.
Перейдите в роль пользователя r o o t и с помощью следующих
команд замените указанные ниже конфигурационные файлы Linux-
PAM, находящиеся в каталоге / e t c / p a m . d / или добавьте их содержи­
мое в файл / e t c /раш. conf:
Ф ай л ‘sys tem -acc o u n t’
cat > /etc/раш.d/system-account « "EOF"
# Начало / e t c / р а ш . d / s y s t e m - a c c o u n t

account req uired p a m _ u n i x .s o

# Конец / e t c / p a m . d / s y s t e m - a c c o u n t
EOF

Ф ай л ‘sys te m -au th ’
cat > /etc/раш.d/system-auth « "EOF"
# Начало / e t c / p a m . d / s y s t e m - a u t h

auth req uired p a m _ u n i x .s o

# Конец / e t c / p a m . d / s y s t e m - a u t h
EOF
176 Глава 4. Безопасность

Ф ай л 1system -p assw d ’ (с cracklib)


cat > /etc/pam.d/system-password « "EOF"
# Начало / e t c / p a m . d / s y s t e m - p a s s w o r d

# Проверяется стой кость новых паролей (man p a m _ c r a c k li b )


password required pam _cracklib.so type=Linux retry=3 difok=5 \
difignore=23 minlen=9 d c r e d it= l \
u c r e d it= l l c r e d i t = l o c r e d i t = l \
dictpath= /lib/cracklib/pw _d ict
# и с п о л ь з у е т с я хэш зн ачени е sh a5 12 для шифрования, и с п о л ь з у е т с я
# shadow, и и с п о л ь з у е т с я аутентификационная лексема (выбранный
# п а р о л ь ) , задан ная с помощью p a m _ c r a c k l i b указанным р а н ее (или
# любым предыдущим модулем)
password r e q u ir e d p a m _ u n i x .s o sh a 512 shadow u s e _ a u t h t o k

# Конец / e t c / p a m . d / s y s t e m - p a s s w o r d
EOF

s* %ттттжштжттшттшжттштшштжжжтшшттттт шшштштш
Замечание
В конфигурации, используемой по умолчанию, даже в случае, когда
значение minien установлено равным 11, модуль pam_cracklib раз­
решает использовать несколько паролей, длина которых меньше 6
символов. Вы должны посмотреть man-страницу pam_cracklib(8) и вы­
яснить, являются ли эти значения, используемые в системе по умол­
чанию, допустимыми с точки зрения безопасности вашей системы.
ътгъI" хш ттмтт^тъ г «жяттттж '< *>%/'. ’ / -v ?' &*тжттшштшттттФтт?жтш

Ф ай л ‘s ystem -p assw d ’ (без cracklib)


cat > /etc/pam.d/system-password « "EOF"
# Начало / e t c / p a m . d / s y s t e m - p a s s w o r d

# и с п о л ь з у е т с я хэш зн ачени е sh a 512 для шифрования, и с п о л ь з у е т с я


# shadow, и д е л а е т с я попытка использовать любую ран ее определенную
# аутентификационную лексем у (выбранный п а р о л ь ) , заданную р а н ее
# с помощью любого модуля
passw ord r e q u i r e d p a m _ u n ix .s o sha512 shadow t r y _ f i r s t _ p a s s

# Завершение / e t c / p a m . d / s y s t e m - p a s s w o r d
EOF

Ф а й л ‘system -sessio n ’
cat > /etc/pam.d/system-session « "EOF"
# Начало / e t c / p a m . d / s y s t e m - s e s s i o n

se ssio n req uired p a m _ u n i x .s o

#~ Конец / e t c / p a m . d / s y s t e m - s e s s i o n
EOF
Ф а й л ‘lo g in ’
cat > / e t c / p a m . d / l o g i n « "EOF"
# Н ачало / e t c / p a m . d / l o g i n

# Устанавливает задержку в 3 секунды для повторного приглашения


# в случае н е у д а ч н о г о входа
auth op tio n a l p a m _ f a ild e la y . so d e la y = 3 0 0 0 0 0 0

# Проверка наличия у пользователя возможности регистрации в системе


auth requ i s i t e p a m _ n o l o g i n .so

# Проверка наличия у пользователя root возможности регистрации в системе


# По у м о л ч а н и ю отключено. Вам нужно создать ф а й л / e t c / s e c u r e t t y
# чтобы э т о т модуль р а б о т а л . Смотрите man 5 s e c u r e t t y .
# a u th req uired p a m _ s e c u r e t t y . so

# Д о п о л н и т е л ь н а я п р и н а д л е ж н о с т ь к группе - о т к л ю ч е но по у м о л ч а н и ю
#auth optional pam_group.so

# Д о б а в л я е т с я н а с т р о й к а auth, и с п о л ь з у е м а я по у м о л ч а н и ю
auth i nclude system-auth

# Прове р к а в о з м о ж н о с т и п о л ь з о в а т е л я во й т и в си с т е м у
account required p a m _ a c c e s s .so

# Д о б а в л я е т с я н а с т р о й к а account, и с п о л ь з у е м а я по у м о л ч а н и ю
account i nclude system-account

# У с т а н а в л и в а е т п е р е м е н н ы е с р е д ы окружения, д о с т у п ные
# п о л ь з о в а т е л ю по у м о л ч а н и ю
sess i o n required pam_env.so

# У с т а н а в л и в а е т о г р а н и ч е н и я на ресурсы, доступные пользователю


session required p a m _ l i m i t s .so

# Выдача даты последней регистрации в системе - по умолчанию отключено


#session o p tional p a m _ l a s t l o g .so

# Выдача " с о о б щ е н и я дня" - по у м о л ч а н и ю о т к л ю ч е н о


# se s s i o n o p tional pam_motd.so

# Прове р к а п о ч т ы п о л ь з о в а т е л я - по у м о л ч а н и ю о т к л ю чено
#session o p tional pam_mail.so s t a n d a r d quiet

# Добавляется настройки session и password, используемые по умолчанию


s ess i o n i nclude system-session
p a s s w o r d include system-password

# К онец /e t c / p a m . d / l o g i n
EOF
178 Глава 4. Безопасность

Ф ай л ‘p a ssw d ’
cat > /etc/pam.d/passwd « "EOF"
# Начало / e t c / p a m . d / p a s s w d

p a s sw o r d in clu d e system -passw ord

# Конец / e t c / p a m . d / p a s s w d
EOF

Ф ай л ‘s u ’
cat > /etc/pam.d/su « "EOF"
# Начало / e t c / p a m . d / s u

# в с е г д а им еется для r o o t
auth s u f f i c i e n t p a m _ r o o t o k . so
auth in c lu d e system -auth

# Д обавля ется настройка a c c o u n t , испол ьзуем ая по умолчанию


account in c lu d e system -accou nt

# Устанавливает для по л ь зо в а т ел я сер в и с а переменные среды


# окружения, используемые по умолчанию
se ssio n req uired p a m _ e n v .s o

# По умолчанию в с истем у д о б а в л я е т с я s e s s i o n
se ssio n in c lu d e sy stem -sessio n

# Конец / e t c / p a m . d / s u
EOF

Ф ай л ‘c h a g e ’
cat > /etc/pam.d/chage « "EOF"
#Начало / e t c / p a m . d / c h a g e

# в с е г д а им еется для r o o t
auth s u f f i c i e n t p a m _ r o o to k . s o

# в с и стем е по умолчанию использую тся a u t h a c c o u n t и s e s s i o n


auth in c lu d e system -au th
account in c lu d e system -account
se ssio n in clu d e sy stem -sessio n

# В с егд а выполняется при обновлениях аутентификации


p a s sw o r d r e q u i r e d pam _perm it. so

# Конец / e t c / p a m . d / c h a g e
EOF
Пакет Shadow-4.1.5.1 179

Ф айлы ‘c h fn ’, ‘c h g p a s s w d ‘chgpassw d’, ‘ch sh ’, ‘groupadd


‘g ro u p d el’, ‘g r o u p m e m s ‘g r o u p m o d ‘new u sers1, ‘useradd
‘u serd e l’ и ‘userm o d ’
f o r PROGRAM i n c h f n ch g p a s sw d chpassw d c h s h groupadd g r o u p d e l \
groupmems groupmod new u sers u s er a d d u s e r d e l usermod
do
i n s t a l l - v -m644 / e t c / p a m . d / c h a g e / e t c / p a m . d / $ { PROGRAM}
s e d - i "s / c h a g e / $ PROGRAM/ " / e t c / p a m . d / $ { PROGRAM}
done

Предупреждение
Теперь вы должны выполнить простой тест с тем, чтобы убедиться,
что пакет Shadow работает так, как ожидается. Откройте еще один
терминал и войдите в систему как пользователь, а затем наберите
команду su для перехода в роль пользователя r o o t . Если никаких
ошибок не будет, то все в порядке и вам следует приступить к ос­
тавшейся части конфигурирования. Если ошибки будут, то сразу же
остановитесь и вручную повторно проверьте конфигурационные
файлы, приведенные выше. Вы также можете запустить набор тес­
тов, имеющийся в пакете Linux-PAM, который поможет вам в обна­
ружении проблемы. Если вы не можете найти и исправить ошибку,
вы должны перекомпилировать пакет Shadow, добавив к команде
configure, указанной в приведенных выше инструкциях, параметр
— w i t h o u t - l i b p a m (также скопируйте содержимое резервной ко­
пии файла / e t c / l o g i n . d e f s . o r i g в файл / e t c / l o g i n . d e f s ) .
Если вы этого не сделаете этого и ошибки останутся, вы не сможете
войти в свою систему.

Ф ай л o th er
В настоящий момент файл / e t c /раш. d / o t h e r сконфигурирован
так, что любой, у кого есть учетная запись на машине, может пользо­
ваться любыми программами, которые обращаются к РАМ; конфи­
гурационные файлы этих программ использоваться при этом не бу­
дут. После того, как будет проверено, что конфигурация Linux-PAM
задана правильно, установите файл o t h e r , в котором заданы более
строгие требования, заставляющие использовать конфигурационные
файлы конкретных программ:
cat > /etc/pam.d/other « "EOF"
# Начало / e t c / p a m . d / o t h e r

auth req u ired pam _w arn .s o


auth req uired p a m _ d en y .s o
account req uired pam _w arn .s o
account req uired p a m _ d e n y .s o
180 И ? ? Глава 4. Безопасность

password req uired pam_warn. s o


password req uired pam _deny. s o
se ssio n req uired pam_warn. so
se ssio n req uired pam_deny. so

# Завершение / e t c / р а ш . d / o t h e r
EOF

Конфигурирование доступа в систему


Вместо того, чтобы для управления доступом к системе исполь­
зовать файл / e t c / l o g i n . a c c e s s , Linux-PAM использует модуль
p a m _ a c c e s s . so и файл / e t c / s e c u r i t y / a c c e s s . conf. Переименуйте
файл / e t c / l o g i n . a c c e s s с помощью следующей команды:
[ - f /e tc /lo g in .a c c e ss ] && mv - v / e t c / l o g i n . a c c e s s { , .NOUSE}

Конфигурирование лимитов на ресурсы


Вместо того, чтобы для ограничения использования системных
ресурсов использовать файл / e t c / l i m i t s , Linux-PAM использует
модуль p a m _ l i m i t s . so и файл / e t c / s e c u r i t y / l i m i t s . c o n f . Пере­
именуйте файл / e t c / l i m i t s с помощью следующей команды:
[ -f /e tc /lim its 3 && mv - v / e t c / l i m i t s { , .NOUSE}

Описание пакета
Список установленных файлов, вместе с их кратким описанием мож­
но найти в главе б проекта LFS.
Перевод с оригинала от 2013-08-23 03:32:24 -0700

Пакет stunnel-4.56
Знакомимся с пакетом stunnel
В пакете stunnel находится программа, которая позволит вам шифро­
вать любые соединения TCP внутри слоя SSL (Secure Sockets Layer),
так что вы сможете легко общаться с клиентами через защищенные
каналы. Пакет stunnel можно использовать для добавления функций
SSL к обычно используемым демонам Inetd, таким как POP-2, РОР-3
и сервера IMAP, к автономно работающим демонам, таким как NNTP,
SM TP и HTTP, и при туннелировании Р Р Р через сетевые сокеты,
причем изменять исходный код в пакетах серверов не потребуется.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.
Пакет stunnel-4.56 181

Информация о пакете
• Загрузка (HTTP): http://mirrors.zerg.biz/stunnel/stunnel-4.56.tar.gz
• Загрузка (FTP): ftp://ftp.stunnel.Qrg/stunnel/stunnel-4.56.tar.gz
• Контрольная сумма MD5: ac4c4a30bd7a55b6687cbd62d864054c
• Размер загружаемого пакета: 532 КВ
• Оценочный размер требуемого дискового пространства: 6,0 MB
• Оценочное время сборки: 0,2 SBU

Зависимости пакета stunnel


Обязательные
OpenSSL-l.O.le
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/w iki/stunnel

Установка пакета stunnel


Демон stunnel будет запускаться непривилегированным пользовате­
лем в изолированной среде chroot. В роли пользователя r o o t с помо­
щью следующих команд создайте нового пользователя и группу:
groupadd - g 51 s t u n n e l &&
u s e r a d d - с " s t u n n e l Daemon" - d / v a r / l i b / s t u n n e l \
- g s t u n n e l - s / b i n / f a l s e - u 51 s t u n n e l

Замечание
Чтобы запустить демон stunnel, нужен подписанный сертификат
SSL и закрытый ключ. Если сертификат у вас есть или если вы уже
создали подписанный сертификат SSL, который вы хотите исполь­
зовать, скопируйте его в / e t c / s t u n n e l / s t u n n e l .pern перед тем,
как начать сборку пакета (обеспечьте, чтобы только пользователь
r o o t имел право на чтение и запись), в противном случае вам будет
выдано приглашение создать его в процессе установки. Файл .pern
должен иметь следующий формат:

BEGIN p r i v a t e k e y -----
<много зашифрованных строк закрытого ключа>
END PRIVATE KEY--------
BEGIN CERTIFICATE--------
<много зашифрованных строк сертификата>
---------END CERTIFICATE---------
---------BEGIN DH PARAMETERS---------
<зашифрованные строки параметров для dh>
END DH PARAMETERS--------
Глава 4. Безопасность

Установите пакет stunnel с помощью следующих команд:


./c o n fig u r e - - p r e f ix = /u s r \
— sy sco n fd ir= /etc \
— lo ca lsta te d ir= /v a r \
- - d i s a b l e - l i b w r a p &&
make

В этом пакете набор тестов отсутствует.


Теперь в роли пользователя r o o t выполните:
make d o c d i r = / u s r / s h a r e / d o c / s t u n n e l - 4 .5 6 i n s t a l l

Пояснение команд
— s y s c o n f d i r = / e t c : Этот параметр указывает, что конфигураци­
онным каталогом будет / e t c , а не / u s r / e t c .
— l o c a l s t a t e d i r = / v a r : Этот параметр указывает, чтобы при ус­
тановке пакета использовался каталог / v a r / l i b / s t u n n e l , а не
создавался и использовался каталог / u s r / v a r / s t u n n e l .
— d i s a b l e - l i b w r a p : Этот параметр необходим, если у вас не ус­
тановлен tcpwrappers. Удалите этот параметр, если tcpwrappers
установлен.
make docdir=... install: Эта команда устанавливает пакет, изме­
няет каталог, в котором устанавливается документация, в
соответствие с общепринятым соглашением об именовании и,
если у вас в каталоге / e t c / s t u n n e l нет копии файла s t u n n e l .
pem, запрашивает у вас необходимую информацию, чтобы со­
здать такой файл. Убедитесь, что в ответ на запрос
Common Name (FQDN o f your s e r v e r ) [lo ca lh o st]:
вы указали имя или IP -адрес, которые будут использоваться
для доступа к сервису (сервисам).

Конфигурирование пакета stunnel


Конфигурационные файлы
/ e t c / s t u n n e l / s t u n n e l . conf

Подробнее о конфигурировании
В роли пользователя r o o t создайте каталог, используемый файлом
. pid, который создается, когда демон stunnel запускается:
in sta ll -V -m750 - о s t u n n e l - g s t u n n e l - d / v a r / l i b / s t u n n e l / r u n

Затем создайте базовый конфигурационный файл / e t c / s t u n n e l /


Пакет stunnel-4.56 ш яя 183

s t u n n e l. conf, выполнив следующие команды в роли пользователя


root:
cat >/etc/stunnel/stunnel.conf « "EOF" &&
; Файл: / e t c / s t u n n e l / s t u n n e l . c o n f

pid = /r u n /stu n n e l.p id


chroot = /v a r/lib /stu n n e l
c lie n t = no
setu id = stu nn el
setg id = stu nn el
cert = /e tc /s tu n n e l/stu n n e l.p e m

EOF
chmod ~v 644 /etc/stunnel/stunnel.conf

Наконец, необходимо добавить в конфигурационный файл сервис


(сервисы), которые вы хотите шифровать. Формат следующий:
[<сервис>]
a c c e p t = <имяхоста : номерпорт а>
c o n n e c t = <им яхост а: номерпорт а>

Если вы используете stunnel для шифрования демона, запускае­


мого с помощью [xjinetd, вам может понадобиться отключить демон
в файле / e t c / [ х ] i n e t d . c o n f и включить соответствующий сервис
< s е r v i с е > s t u n n e l . Возможно, вам также придется добавить соот­
ветствующую запись в / e t c / s e r v i c e s .
Для полного объяснения команд и синтаксиса, используемого в
конфигурационном файле, запустите команду man stunnel. Чтобы
посмотреть пример BLFS фактической настройки сервиса шиф­
рования stunnel, прочитайте раздел «Конфигурирование SWAT»
(«Configuring SWAT») в инструкциях по Samba.

Загрузочный скрипт
Чтобы автоматически запускать демон stunnel, когда система пе­
резагружается, установите загрузочный скрипт / e t c / r c . d / i n i t . d /
s t u n n e l , имеющийся в пакете blfs-bootscripts-20130908.

make i n s t a l l - s t u n n e l

Описание пакета
Установленные программы: stunnel и stunnel3
Установленная библиотека: libstunnel.so
Установленные каталоги: /etc/stunnel, /usr/lib/stunnel, /u sr/sh are/
doc/stunnel-4.56 и /v ar/lib /stu n n el
184 Глава 4. Безопасность

Краткое описание
5Шппе1 Это программа, предназначенная для ис­
пользования в качестве обертки шифро­
вания ББЬ между удаленными клиентами
и локальными (запускаемые с помощью
{{х}1л^с1) или удаленными серверами.
stunnel3 Это скрипт-обвертка Рег1 для использования
синтаксиса версии зШппе1 3.x с версиями
8йтпе1 >=4.05.
l i b s t u n n e l .so Содержит функции АР1, необходимые паке­
ту 5ШпПе1.
Перевод с оригинала от 2013-08-22 15:40:33 -0700

Пакет Sudo-1.8 .7
Знакомимся с пакетом Sudo
Пакет sudo позволяет системному администратору предоставить оп­
ределенным пользователям (или группам пользователей) возмож­
ность запускать некоторые (или все) команды в роли пользователя
r o o t или в роли другого пользователя, указываемого в командах или
в аргументах.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (HTTP): http://www.sudo.ws/sudo/dist/sudo-1.8,7.tar.gz
• Загрузка (FTP): ftp://ftp.tw aren.net/U nix/S ecuritv/S udo/
sudo-1.8.7.tar.gz
• Контрольная сумма MD5: a02367090eldac8d0cl747del 127b6bf
• Размер загружаемого пакета: 1,9 MB
• Оценочный размер требуемого дискового пространства: 31 MB
• Оценочное время сборки: 0,3 SBU

Зависимости пакета Sudo


Необязательные
AFS, FWTK, Linux-PAM-1.1.7, MIT Kerberos V5-1.11.3 и почтовый
транспортный агент МТА (в котором реализована команда sendmail),
OpenLD АР-2.4.36, Opie и SecurID
Пакет Sudo-1.8.7 ІІІН Н
Замечания для пользователей:
h ttp :/ /w ik i ,linuxfromscratch.org/blfs/wiki /sudo

Установка пакета Бисіо


Установите пакет Sudo с помощью следующих команд:
. /c o n f i g u r e - - p r e f i x = / u s r \
— libexecdir=/usr/lib/sudo \
— d o c d i r = / u s r / s h a r e / d o c / s u d o - l .8.7 \
— with-timedir=/var/lib/sudo \
— with-all-insults \
--with-env-editor &&
make

В этом пакете набор тестов отсутствует.


Теперь в роли пользователя ro o t выполните:
make i n s t a l l

Пояснение команд
Этот переключатель указывает
— w ith -tim e d ir = /v a r /lib /su d o :
помещать файлы с переменными - отметками времени туда,
где они должны быть в соответствие с требованиями FHS.
— w ith -a ll-in su lts: Этот переключатель включает все наборы
insult для команды sudo.
Этот переключатель разрешает для visudo
— w ith -e n v -e d ito r:
использовать переменную среды окружения EDITOR.

Замечание
В команде configure для sudo есть много параметров. Полный спи­
сок параметров можно получить с помощью команды configure —
help.

Конфигурирование пакета Биво


Конфигурационный файл
/ e tc /s u d o e r s

Подробнее о конфигурировании
Файл su d o ers может быть довольно сложным. В нем присутству­
ют два типа записей: алиасы (в основном переменные) и специфи­
186 Глава 4. Безопасность

кации пользователей (в которых указывается, кто какие команды


может запускать). Во время установки формируется конфигурация,
используемая по умолчанию, в которой ни для кого из пользователей
привилегий не делается.
Одним из примеров использования является случай, когда сис­
темному администратору разрешается без ввода пароля выполнять
любую программу с привилегиями пользователя ro o t. Настройку
можно сделать следующим образом:
# Спецификация алиаса п ол ьзов ат ел я
U s e r _ A l i a s ADMIN = Y o u r L o g in ld

# Всем, входящим в группу ADMIN, разреш ается зап уск ать


# вс е программы б е з ввода пароля
ADMIN ALL = NOPASSWD: ALL

Подробности смотрите с помощью команды man sudoers.

Замечание
Разработчики Sudo настоятельно рекомендуют для редактирования
файла s u d o e r s использовать программу visudo. Она обеспечит ос­
новную проверку правильности настройки, например, синтаксиса и
прав доступа к файлам, что позволит избежать некоторых возмож­
ных ошибок, которые могут привести к уязвимости в конфигура­
ции.

Если вы создали Sudo с поддержкой РАМ, то в роли пользователя


ro o t выполните следующую команду с тем, чтобы создать конфигу­
рационный файл РАМ:
c a t > / e t c / p a m . d / s u d o « "EOF" &&
# Начало / e t c / p a m . d / s u d o

# Добавляет настройку a u t h , используемую по умолчанию


auth in c lu d e system -auth

# Добавляет настройку a c c o u n t , используемую по умолчанию


account in c lu d e system -accou nt

# Устанавливает для пользователя сервиса переменные среды окружения,


# используемые по умолчанию
se ssio n req uired p a m _ e n v .s o

# Добавляет системную с ес си ю , используемую по умолчанию


se ssio n in c lu d e sy stem -sessio n

# Конец / e t c / p a m . d / s u d o
Пакет Tripwire-2.4.2.2

EOF
chmod 644 /etc/pam.d/sudo

Описание пакета
Установленные программы: sudo, sudoedit, sudoreplay и visudo
Установленные библиотеки: group_file.so, sudoers.so, system group.
so и sudo_noexec.so
Установленные каталоги: /etc/sudoers.d, /usr/lib/sudo, /u sr/sh a re /
doc/sudo-1.8.7 и /v ar/lib /su d o

Краткое описание
sudo Выполняет команды от имени другого пользовате­
ля, разрешенные в конфигурационном файле / e t c /
sudoers.
sudoedit Является жесткой ссылкой на sudo, которая подразу­
мевает использование параметра - е для вызова текс­
тового редактора от имени другого пользователя,
visudo Позволяет безопасно редактировать файл s u d o e r s .
sudoreplay Используется для прокрутки или выдачи списка
журнальных файлов, созданных с помощью команды
sudo.
Перевод с оригинала от 2013-08-17 13:38:01 -0700

Пакет Tripw ire-2.4.2.2


Знакомимся с пакетом Tripwire
В пакете Tripwire находятся программы, используемые для проверки
целостности файлов данной системы.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (H TTP): http://dow nloads.sourceforge.net/tripw ire/
tripwire-2.4.2.2-src.tar.bz2
• Контрольная сумма MD5: 2462eal6fb0b5ae810471011ad2f2dd6
• Размер загружаемого пакета: 704 КВ
• Оценочный размер требуемого дискового пространства: 31 MB
• Оценочное время сборки: 1,3 SBU (в том числе время на ин­
терактивные запросы во время установки пакета)
188 Глава 4. Безопасность

Зависимости пакета Tripwire


Обязательные
OpenSSL-l.O.le
Необязательные
МТА
Замечания для пользователей:
http://w iki.linuxfrom scratch.org/blfs/w iki/tripw ire

Установка пакета Tripwire


Откомпилируйте пакет Tripwire при помощи следующих команд:
s e d - i - е 's@TWDB="$ {prefix} @TWDB="/var0' i n s t a l l / i n s t a l l . c f g &&
sed - i - e ' s / !E q u a l / !t h i s - > E q u a l / ' s r c / c r y p t l i b / a l g e b r a . h &&
sed - i - e V s t d t w a d m in .h /i# in c lu d e < u n istd .h > ' sr c /tw a d m in /
t w a d m i n c l . cpp &&

./co n fig u re — p refix = /u sr — s y s c o n f d i r = / e t c / t r i p w i r e &&


make

Зам ечан ие
Конфигурация, задаваемая по умолчанию, позволяет использовать
локальный МТА (Mail Transport Agent — почтовый транспортный
агент). Если у вас нет установленного МТА и вы не хотите его ус­
танавливать, то измените файл i n s t a l l / i n s t a l l . c f g так, чтобы
указать, что вместо него будет использоваться сервер SMTP. В про­
тивном случае установка завершится неудачей.

В этом пакете набор тестов отсутствует.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l &&
ср - v p o l i c y / * . t x t / u s r / d o c / t r i p w i r e

Пояснение команд
sed -i -e ^(OTW DB^’S fp refix ^ T W D B ^ y v a r® ’ install/install,
cfg: Эта команда указывает, что устанавливать базу данных и
хранить отчеты следует в каталог / v a r / l i b / t r i p w i r e .
sed ... src/cryptlib/algebra.h: Исправляет ошибки компиляции,
связанные с gcc-4.7.
sed ... src/twadmin/twadmincl.cpp: Исправляет ошибки компи­
ляции, связанные с gcc-4.7.
make install: Эта команда создает ключи безопасности Tripwire, а
также устанавливает бинарные файлы. Есть два ключа: ключ
сайта (site key) и локальный ключ (local key), которые хранят­
ся в каталоге / e t c / t r i p w i r e / ,
ср -V policy/*.txt /usr/doc/tripwire: Эта команда устанавливает
файлы с примерами политик, а также другую документацию
по Tripwire.

Конфигурирование пакета Tripwire


Конфигурационные файлы
/e tc /tr ip w ir e /*

Подробнее о конфигурировании
В пакете Tripwire используется файл политик, в котором указы­
ваются файлы, целостность которых следует контролировать. Ког­
да устанавливается пакет, устанавливается файл политик ( / e t c
/ t r i p w i r e / t w p o l . t x t ) , созданный по умолчанию, и его следует от­
редактировать с учетом требований вашей системы.
Файлы политик следует адаптировать к каждому дистрибутиву и /
или к каждому варианту установки системы. Ряд примеров файлов
политик можно найти в каталоге / u s r / d o c / t r i p w i r e / (заметим, что
в системе LFS каталог / u s г / d o c / является символической ссылкой
на каталог / u s r / s h a r e / d o c / ) .
При желании, скопируйте файл политик, которые вы хотели бы
использовать, в каталог / e t c / t r i p w i r e / на место файла политик
t w p o l . t x t , созданного по умолчанию. Однако мы также рекомендуем
вам отредактировать ваш файл политик. Ознакомьтесь с принципами
по примерам, которые были приведены выше, и прочитайте допол­
нительную информацию В файле / u s r / d o c / t r i p w i r e / p o l i c y g u i d e .
t x t . Файл t w p o l . t x t является хорошим файлом политик для изуче­
ния Tripwire, поскольку в нем будут отмечаться любые изменения,
сделанные в файловой системе, и его даже можно будет использовать
при удалении программного обеспечения как достаточно надоедли­
вый способ отслеживания изменений.
После того, как ваш файл политик будет отредактирован в соот­
ветствие с вашими пожеланиями, вы можете выполнить собственно
конфигурирование (выполняется в роли пользователя ro o t):
tw a d m i n — create-polfile --site-keyfile / e t c / t r i p w i r e / s i t e .key \
/etc/tripwire/twpol.txt &&
t r ipwire --init
Глава 4. Безопасность

В зависимости от вашей системы и содержимого файла политик,


этап инициализации, описанный выше, может занять продолжитель­
ное время.
Об использовании
Tripwire будет обнаруживать изменения в критически важных для
системы файлах, указанных в файле политик. Если изменения часты,
то Tripwire будет делать пометки обо всех этих изменениях в соответст­
вующих каталогах. Особенно это удобно после того, когда система
скопфигуроваиа так, что пользователь будет считать ее стабильной.
Чтобы после создания файла политик получить отчет Tripwire, ис­
пользуйте следующую команду:
tr ip w ir e — check > / e t c / t r i p w i r e / r e p o r t . t x t

Просмотрите выданный отчет для того, чтобы проверить целост­


ность ваших файлов. Автоматический отчет о целостности файлов
можно получать с помощью cron, указав для этого график запуска.
Отчеты хранятся в двоичном виде и, если нужно, могут быть за­
шифрованы. Отчеты можно просматривать в роли пользователя r o o t
с помощью следующей команды:
t w p r i n t —p r i n t - r e p o r t - г / v a r / l i b / t r i p w i r e / r e p o r t / < r e p o r t - n a m e . twr>

После того, как вы запустите проверку целостности, вы должны


изучить отчет (или пришедшее вам электронное письмо), а затем из­
менить базу данных Tripwire так, чтобы отразить изменения файлов
в вашей системе. Это требуется для того, чтобы Tripwire не сообщала
о нарушении безопасности для тех файлов, которые вы изменили на­
меренно. Для этого вы должны сначала запустить команду Is -1 /v a r /
lib/tripwire/report/ и обратить внимание на название самого нового
файла, которое начинается с имени вашей системы так, как оно вы­
дается командой u n a m e -п, и завершается расширением .twr. Эти
файлы были созданы при создании отчета и самый последний файл
необходим для обновления базы данных Tripwire в вашей системе.
В роли пользователя r o o t наберите следующую команду, указав имя
соответствующего отчета:
t r i p w i r e — up date — twrfile / v a r / l i b / t r i p w i r e / r e p o r t / < r e p o r t - n a m e . t w r >

Вы перейдете в редактор Vim с открытой в нем копией отчета. Если


все изменения были правильными, то просто наберите команду :wq,
а затем введите локальный ключ (local key) и база данных будет об­
новлена. Если есть файлы, о которых вы все еще хотите получать пре­
Пакет Tripwire-2.4.2.2

дупреждения, то удалите символ V , стоящий в отчете перед именем


файла, и наберите команду :wq.
Хорошее краткое описание операций tripwire можно найти по
следующей ссылке http://va-holladays.no-ip.info:22Q0/tools/security-
docs/tripwire-vl.O.pdf.

Изменение файла политик


Если вы недовольны вашим файлом политик и хотели бы его изме­
нить, либо использовать новый файл, то измените это файл, а затем в
роли пользователя ro o t выполните следующие команды:
twadmin — c r e a t e - p o l f i l e / e t c / t r i p w i r e / t w p o l . t x t &&
tr ip w ir e - - i n i t

Описание пакета
Установленные программы: siggen, tripwire, twadmin и tw print
Установленные библиотеки: Нет
Установленные каталоги: /etc/tripw ire, /v ar/lib /trip w ire
и /usr/share/doc/tripw ire
Краткое описание
siggen Это утилита сбора сигнатур, которая отображает значе­
ния хэш-функции для указанных файлов,
tripwire Является основной программой, проверяющей целост­
ность файлов.
twadmin Административное и инструментальное средство, ис­
пользуемое для выполнения определенных админис­
тративных функций, связанных с файлами Tripwire и
конфигурационными параметрами,
twprint Выдает в обычном текстовом формате базу данных
Tripwire и файлы отчетов.
Перевод с оригинала от 2013-08-23 03:32:24 -0700
ГЛАВА 5.
Файловые системы
и управление дисками

Журналируемые файловые системы сокращают время, необходимое


для восстановления файловой системы в случае, если она не была
размонтирована должным образом. Хотя такие файловые системы
крайне важны для сокращения времени простоя серверов, они также
становятся популярными и в настольных системах. В настоящем раз­
деле рассматриваются журналируемые файловые системы, которые
вы можете использовать вместо тех систем (ext2/3/4), которые были
установлены по умолчанию в проекте LFS. Также предлагается ввод­
ный материал по управлению массивами дисков.

О файловой системе initramfs


Единственное назначение файловой системы initramfs - смонтиро­
вать файловую систему root. Файловая система initramfs является
полным набором каталогов, которые вы можете найти в обычной
файловой системе r o o t. Она собрана в один архив cpio и сжата с по­
мощью одного из нескольких алгоритмов сжатия.
Во время загрузки системы загрузчик загружает ядро и образ фай­
ловой системы initramfs в память и запускает ядро. Ядро проверяет
наличие файловой системы initramfs и, если она найдена, монтирует
ее в точке монтирования и запускает /in it. Программа init обычно яв­
ляется скриптом командной оболочки. Обратите внимание, что, если
используется файловая система initramfs, процесс загрузки длится
дольше, возможно, существенно дольше.
Во многих дистрибутивах основной причиной наличия файловой
системы initramfs является необходимость использования модулей
ядра. В типичном дистрибутиве может быть много неопределенностей
разного рода, например, типы файловых систем и разбиение дисков
на разделы. В некотором смысле это является противоположностью
О файловой системе initramfs : L J IB M И И Ш Д Щ Д

проекта LFS, в котором известны все особенности системы и разби­


ение диска на разделы, а также в котором обычно собирается доста­
точно типичное ядро. В такой ситуации файловая система initramfs
требуется редко.
Есть только четыре главные причины использовать файловую сис­
тему в среде LFS: загрузка файловой системы rootfs из сети, загрузка
ее с логического тома LVM, наличие зашифрованной файловой сис­
темы rootfs, для которой требуется пароль, или для того, чтобы было
удобно определить файловую систему rootfs с использованием метки
LABEL или идентификатора UUID. Все другое обычно означает, что
ядро не было сконфигурировано должным образом.

Сборка файловой системы initramfs


Если вы решили собрать файловую систему initramfs, то приводимые
далее скрипты будут хорошей для этого основой. Скрипты позволят
определить файловую систему rootfs через идентификатор UU ID или
метку LABEL, определяющую раздел, либо задать файловую систему
rootfs на логическом томе LVM. В них не поддерживается шифрова­
ние файловой системы root или ее монтирование с использованием
сетевой карты. В более сложных ситуациях обращайтесь к советам
проекта LFS (LFS Hints).
Для того, чтобы установить эти скрипты, запустите в роли пользо­
вателя r o o t следующие команды:
c a t > / s b i n / m k i n i t r a m f s «"EO F"
# ! /b in /b a sh
# Этот файл частично основан на скрипте m k in itr a fm s для LFS LiveCD,
# написанном Александром Е. Патраковым и Jeremy Huntwork.

copy ( )
{
l o c a l file

if [ "$2"== " l i b " ] ; t h e n


file = $ (P A T H = /lib : / u s r / l i b t y p e - p $1)
e lse
file = $ ( t y p e - p $1)
fi

if [ - n $ f ile ] ; t h e n
cp $ f i le $WDIR/$2
e lse
echo "M issing r e q u ir e d file : $1 f o r d i r e c t o r y $2"
rm - r f $WDIR
j і Глава 5. Файловые системы и управление дисками

exit 1
fi
}
if [ -z $1 ] ; then
IN ITRAMFS_FILE=initrd. im g-no-km ods
e lse
KERNEL_VERSI0N=$1
IN ITRAMFS_FILE=initrd. img-$KERNEL_VERSION
fi

if [ - n "$KERNEL_VERSION"] &&[ ! - d " / l i b / m o d u l e s / $ l " ] ; then


e c h o "No m od u le s d i r e c t o r y named $1"
e x it 1
fi

p r i n t f " C r e a t i n g $ I N I T R A M F S _ F I L E ... "

b i n f i l e s = " s h c a t cp dd k i l l a l l I s mkdir mknod mount "


b i n f i l e s = " $ b i n f i l e s umount s e d s l e e p I n rm uname"

s b i n f i l e s =/,udevadm modprobe b l k i d s w i t c h _ r o o t "

# O p t i o n a l f i l e s and l o c a t i o n s
f o r f i n mdadm udevd; do
i f [ -x / s b i n / $ f ] ; t h e n s b i n f i l e s = " $ s b i n f i l e s $ f " ; fi
done

u n so r ted = $ (m k te m p /tmp/unsorted.XXXXXXXXXX)

DATADIR=/usr/share/mkinitramfs
I N I T I N = i n i t .in

# Создаем временный рабочий каталог


WDIR=$(mktemp - d / t m p / i n i t r d - w o r k . XXXXXXXXXX)

# Создаем стр ук т уру б а з о в о г о каталога


m kdir - р $WDIR/ { b i n , d e v , l ib /f i r m w a r e , run, s b i n , s y s , p r o c }
mkdir - p $W D I R /e tc /{ m o d p r o b e . d , u d e v / r u l e s . d}
t o u c h $W D IR /etc /m od p r o b e . d / m o d p r o b e . c o n f
In - s l i b $WDIR/lib64

# Создаем ноды необходимых ус тр о й с тв


mknod -m 640 $ W D I R /d e v /c o n s o le с 5 1
mknod -m 664 $ W D I R /d e v /n u ll с 1 3

# Устанавливаем конфигурационные файлы u d ev


cp / e t c / u d e v / u d e v . c o n f $ W D I R / e t c / u d e v / u d e v . c o n f

f o r f i l e i n $ (find / e t c / u d e v / r u l e s . d / - t y p e f ) ; do
О файловой системе iniframfs 1111 19 5

ср $ f ile $ W D I R / e t c / u d e v / r u l e s . d
done

# Устанавливаем любое имеющееся firmware


ср - a / l i b / f i r m w a r e $WDIR/lib

# Копируем конфигурационный файл RAID, е сли он им еется


i f [ - f /etc/m d ad m .con f ] ; then
cp / e t c / m d a d m . c o n f $WDIR/etc
fi

# Устанавливаем файл i n i t
i n s t a l l -mO755 $DATADIR/$INITIN $W D IR /in it

if [ - n "$KERNEL_VERSION"] ; t h e n
i f [ - x /bin/km od ] ; th en
b i n f i l e s =,/$ b i n f i l e s kmod"
else
b i n f i l e s = " $ b i n f i l e s lsmod"
s b i n f i l e s = " $ s b i n f i l e s insmod"
fi
fi

# Устанавливаем основные двоичные файлы


f o r f i n $ b i n f i l e s ; do
ldd / b i n / $ f | sed " s / \ t / / " | cu t -d " " - f l >>$unsorted
copy $ f b in
done

# Добавляем lvm, если он е ст ь


i f [ - x / s b i n / l v m ] ; t h e n s b i n f i l e s = " $ s b i n f i l e s lvm"; fi

f o r f i n $ s b i n f i l e s ; do
ldd / s b i n / $ f | sed " s / \ t / / " | cut -d " " - f l >>$unsorted
co p y $ f s b i n
done

# Добавляем библиотеки u d evd , если их нет в / s b i n


i f [ -х /lib /u d e v /u d e v d ] ; then
ldd /li b / u d e v /u d e v d | sed " s / \ t / / " | c u t -d " " - f l >>$unsorted
fi

# Добавляем символические ссылки, если они уместны


i f [ - n "$KERNEL_VERSION"] &&[ - х / b i n / k m o d ] ; t h e n
In - s kmod $W DIR/bin/lsm od
In - s kmod $W DIR/bin/insm od
fi

# Добавляем символические ссылки lvm, если они уместны


if [ -х /s b in /lv m ] ; then
Глава 5. Файловые системы и управление дисками

In -s lvm $ W D I R / s b i n /l v c h a n g e
In -s lvm $W D I R /sb in /lv r en a m e
In -s lvm $W D IR /sb in /lv ex ten d
In -s lvm $ W D IR /sb in /lvcreate
In -s lvm $ W D IR /sb in /lv d isp la y
In -s lvm $ W D IR /sbin /lvscan

In -s lvm $ W D IR /sb in /p v ch an ge
In -s lvm $ W D IR /sbin /p vck
In -s lvm $ W D I R / s b i n /p v c r e a t e
In -s lvm $ W D IR /sbin /p vdisp lay
In -s lvm $ W D I R /sb in /p v sc a n

In -s lvm $ W D I R /sb in /v g c h a n g e
In -s lvm $ W D IR /sbin /vgcreate
In -s lvm $ W D I R /s b in /v g s c a n
In -s lvm $W D IR /sbin /vgren am e
In -s lvm $ W D I R /sb in /v g c k
fi

# Устанавливаем библиотеки
s o r t $ u n s o r t e d I u n i q | w h i l e r e a d l i b r a r y ; do
i f [ " $ l i b r a r y " = = " l i n u x - v d s o . s o . 1"] | |
[ " $ lib ra ry " = = " l i n u x - g a t e . s o .1 " ]; th en
con tin u e
fi

copy $ l i b r a r y l i b
done

cp - a / l i b / u d e v $WDIR/lib

# Устанавливаем модули ядра, если э т о т р е б у е т с я


i f [ - n "$KERNEL_VERSION"] ; t h e n
find \
/lib/modules/$KERNEL_VERSION/kernel/{crypto,fs,lib} \
/lib/modules/$KERNEL_VERSION/kernel/drivers/{block,ata,md, firewire} \
/lib/modules/$KERNEL_VERSION/kernel/drivers/{scsi,message,pcmcia,virtio} \
/lib/modules/$KERNEL_VERSION/kernel/drivers/usb/{host,storage) \
-type f 2>/dev/null I cpio —make-directories -p —quiet $WDIR

cp /lib/m odu les/$K ER N EL_V ER S IO N /m odu les. { b u i l t i n , o r d e r } \


$WDIR/lib/modules/$KERNEL_VERSION

depmod - b $WDIR $KERNEL_VERSION


fi

( cd $WDIR ; find . | cpio -о -H newc —q u iet | gzip -9 ) >$INITRAMFS_FILE

# Удаляем временный ка т а лог и файл


О файловой системе initramfs т я 197

r m -rf $ WD I R $uns o r t e d
p r i n t f "don e . \ n "

EOF

chmod 0755 / s b i n / m k i n i t r a m f s
mk d i r -p / u s r / s h a r e / m k i n i t r a m f s &&
c a t > / u s r / s h a r e / m k i n i t r a m f s / i n i t . i n <<"E0F"
# ! /bin/sh

PATH=/bin:/usr/bin:/sbin:/usr/sbin
export PATH

p r o b le m {)
{
printf " E n c o untered a p r o b l e m ! \n\nDr o p p i n g you to a shell.\n\n"
sh
}
n o_ d e v i c e ()
{
p r i n t f "The devi c e %s, w h i c h is s u p p o s e d to c o n t a i n the\n"$l
p r i n t f "root file system , does not e x i s t . \n "
p r i n t f " P l e a s e fix t h i s p r o b le m and e x i t t h i s s h e l l . \ n \ n "

n o _ m o u n t ()
{
p r i n t f " C o u l d not m o u n t dev i c e % s\n"$l
printf "Sleeping forever. Please reboot and fix the kernel command
line.\n\n"
p r i n t f "Maybe the de v i c e is fo r m a t t e d w i t h an u n s u p p o r t e d file
s y stem?\n\ n "
p r i n t f "Or m a y b e filesystem type a u t o d e t e c t i o n went wrong, in
w h i c h case\n"
printf "you should add the rootf s t y p e = . .. parameter to the kernel
command l i n e .\n\n"
p r i n t f "Ava i l a b l e p a r t i t i o n s :\n"
}
d o _ m o u n t _ r o o t ()
{
m k d i r /.root
[ -n "$rootflags"] &&rootflags="$rootflags,"
rootflags=//$rootflags$ro/'

case " $ r o o t " i n


/dev/* ) d e v i c e = $ r o o t ;;
UUID = * ) eval $root; d e v i c e = " / d e v / d i s k / b y - u u i d / $ U U I D " ;;
LABEL=*) eval $root; device="/dev/disk/by-label/$LABEL";;
Глава 5. Файловые системы и управление дисками

echo "No root d e vice specified."; p r o b l e m ;;

wh i l e [ ! -b "$device"] ; do
no _ d e v i c e $device
problem
done

if ! mount -n -t "$rootfstype"-o "$rootflags""$device"/.root ; then


no_ m o u n t $device
cat / p r o c / p a r t i t i o n s
w hi l e true ; do sleep 10000 ; done
else
echo " S u c c e s s f u l l y m o u n t e d d e vice $root"
fi

init=/sbin/init
root=
root d e l a y =
rootfstype=auto
ro="ro"
rootflags=
de v i c e =

mount -n -t devt m p f s d e v t m p f s /dev


mount -n -t proc proc /proc
mo u n t -n -t sysfs sysfs /sys
mount -n -t tmpfs tmpfs /run

read -r c m d l i n e < / p r o c / c m d l i n e

for p a r a m in $cmd l i n e ; do
case $ p a r a m in
init=* ) init=${param#init=}
root=* ) root=${param#root=}
ro o t de l a y = * ) r o o t d e l a y = $ { p a r a m # r o o t d e l a y = }
rootfstype=*) r o o t f s t y p e = $ { p a r a m # r o o t f s t y p e =
rootflags=* ) rootflags=${param#rootflags=}
ro ) r o="ro"
rw ) r o="rw"
esac
done

# м е с т о р а с п о л о ж е н и е u d e v d з а в и с и т от и с п о л ь з у е м о й версии
if [ -х / s b i n / u d e v d ]; then
UDEV_PATH=/sbin
else
UDEV_PATH=/lib/udev
fi

$ {UDEV _ P A T H } / u d e v d - - d a e m o n — r e s o l v e - n a m e s = n e v e r
О файловой системе initramfs 199

udevadm trigger
u d e v a d m settle

if [- f / e t c / m d a d m . c o n f ] ; t h e n mdadm -As ; fi
if [- x / s b i n / v g c h a n g e ] ; t h e n / s b i n / v g c h a n g e — n ou devsyn c - a у>
/ d e v / n u l l ; fi
if [- n " $ r o o t d e l a y " ] ; then s l e e p " $ rootd elay" ; fi

do_ m o u n t_ r o o t

k illa ll -w $ { U D E V _ P A T H } / u d e v d

e x e c s w i t c h _ r o o t / . r o o t " $ init"" $@ "

EOF

Использование файловой системы


initramfs
Требуемые зависимости времени выполнения
cpio-2.ll
Замечания для пользователей:
http://w iki.linuxfrom scratch.org/blfs/w iki/initram fs
Чтобы собрать файловую систему initramfs, запустите в роли поль­
зователя r o o t следующую команду:
mkinitramfs [KERNEL VERSION]

Необязательным аргументом является каталог, в котором размеща­


ются соответствующие модули ядра. Это должен быть подкаталог ка­
талога / l i b / m o d u l e s . Если модули не указаны, то файловая система
initramfs будет иметь название initrd.img-no-kmods. Если указана вер­
сия ядра, то initrd будет иметь название initrd.img- $ВЕРСИЯ_ЯДРА и
будет использоваться только с конкретным ядром. Результирующий
файл будет размещаться в текущем каталоге.
После генерации initrd скопируйте его в каталог /boot.
Теперь отредактируйте файл / b o o t / g r u b / g r u b . c f и добавьте в
него новые пункты меню. Ниже приведены несколько примеров.
# Общая in i t ramfs и ф а й л о в а я сист е м а root,
# у к а з ы в а е м а я с п о м о щ ь ю и д е н т и ф и к а т о р а UUI D
m e n u e n tr y "LFS Dev (L F S -7 . 0 - F e b l 4 ) i n i t r d , Linu x 3 . 0 . 4 "
{
lin u x / v m l i n u z - З . 0 . 4 - l f s - 2 0 1 2 0 2 1 4 r o o t= U U ID = 5 4 b 9 3 4 a 9 -3 0 2 d -4 1 5 e-
a c l l - 4 9 8 8 4 0 8 e b 0 a 8 ro
шШ Ш ЯШ I Глава 5. Файловые системы и управление дисками

i n i t r d /in itrd .im g -n o -k m o d s


}
# Общая i n i t r a m f s и файловая система r o o t в р а з д е л е тома LVM
m e n u e n tr y "LFS Dev (L F S - 7 . 0 - F e b l 8 ) i n i t r d lvm, Linux 3 . 0 . 4 "
{
lin u x / v m l i n u z - З . 0 . 4 - l f s - 2 0 1 2 0 2 1 8 r o o t = / d e v / m a p p e r / m y r o o t ro
in i t r d /in itrd .im g -n o -k m o d s
}
# Конкретная i n i t r a m f s файловая система r o o t , идентифицируемая
# меткой LABEL
m e n u e n tr y "LFS Dev ( L F S - 7 . 1 - F e b 2 0 ) i n i t r d l a b e l , Linux 3 . 2 . 6 "
{
lin u x / v m l i n u z - З . 2 . 6 - l f S 7 1 - 1 2 0 2 2 0 r oot=LABEL =lfs71 ro
i n i t r d / i n i t r d . i m g - 3 . 2 . 6 - l f s 7 1 -1 2 0 2 2 0
}
И, в заключении, перезагрузите машину и выберите нужную сис­
тему
Перевод с оригинала от 2013-02-11 10:51:17-0800

Пакет Fuse-2.9.3
Знакомимся с пакетом Fuse
FUSE (Filesystem in Userspace - файловая система в пользовательс­
ком пространстве) является простым интерфейсом для программ
пользовательского пространства, который экспортирует виртуаль­
ную файловую систему в ядро Linux. Назначение пакета Fuse также
состоит в предоставлении непривилегированным пользователям бе­
зопасного метода для создания и монтирования своих собственных
реализаций файловых систем.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (HTTP): http://downloads.sourceforge.net/fuse/fuse-
2.9.3.tar.gz
• Контрольная сумма MD5: 33сае22са50311446400daf8a6255c6a
• Размер загружаемого пакета: 564 КВ
• Оценочный размер требуемого дискового пространства: 9,5 MB
• Оценочное время сборки: 0,1 SB U
Замечания для пользователей:
http://w iki.linuxfrom scratch.org/blfs/w iki/fuse
Пакет Fuse-2.9.3

Конфигурирование ядра
Включите следующие параметры в конфигурации ядра и перекомпи­
лируйте ядро, если это необходимо:
F i l e system s ----- >
[*] FUSE ( F i l e s y s t e m i n U s e r s p a c e ) support

Установка пакета Fuse


Зам ечан ие
После того, как скрипт configure закончит свою работу, вы увидите
предупреждающее сообщение, приведенное ниже и рекомендую­
щее установить util-linux версии 2.18 или выше, в которых в опера­
циях mount и unmout поддерживается использование параметров
— fake и — n o - c a n o n i c a l i z e . Вы можете спокойно игнорировать
это предупреждение,
c onfigure: WARNING:
•k-k-k-k-k-k-k-k-k-k-k'k-k-k-k'kic-k-k-k'k'k-k-k-k-k-k-k-k-k-k-k-kjc-k-k-k-k-k-k-k'k-k-k-k-k-kic-k'k'k-k'k-k

* P l e a s e i n s t a l l u t i l - l i n u x v e r s i o n 2 . 1 8 or l a t e r which *
* su p p orts — fake and — n o - c a n o n i c a l i z e o p t i o n s i n mount *
* and umount *
■ k - k i r - k 1 c ' k - k ' k ' k ' k ' k ' k - k - k - k j c - k - k -k - k ' i c ' k ' k - k ' k - k - k - k - k - k - k i ' i ( - k - k - k - k - k - k - k m
k -k-k-k-k-k'k-k'k'k'k-k-k-k

Установите пакет Fuse с помощью запуска следующих команд:


./c o n f i g u r e — p r e fix = /u s r — d i s a b l e - s t a t i c IN IT _D_PATH=/tm p/init. d &&
make

Если у вас установлен пакет Doxygen-l.8.5 и вы хотите собрать до­


кументацию API, выполните команду doxygen doc/Doxyfile.
Этот пакет поставляется без тестового набора.
Теперь в роли пользователя r o o t выполните:
make i n s t a l l &&

mv - v / u s r / l i b / l i b f u s e . s o .* / l i b &&
In - s f v . . / . . / l i b / l i b f u s e . s o . 2 . 9 . 3 / u s r / l i b / l i b f u s e . s o &&
rm - r f / t m p / i n i t . d &&

i n s t a l l - v -m755 - d / u s r / s h a r e / d o c / f u s e - 2 . 9 . 3 &&
i n s t a l l - v -m644 d o c / {h o w - f u s e - w o r k s , k e r n e l . t x t } \
/u s r /s h a r e /d o c /f u s e - 2 .9 .3

Если вы собрали документацию API, то в роли пользователя r o o t


установите ее с помощью следующих команд:
i n s t a l l - v -m755 - d / u s r / s h a r e / d o c / f u s e - 2 . 9 . 3 / a p i &&
ill Глава 5. Файловые системы и управление дисками

in sta ll -V -ш644 d o c/h tm l/* \


/u s г /s h a r e /d o c /f u s e - 2 . 9 . 3/ap i

Пояснение команд
— d isa b le -sta tic : Этот переключатель предотвращает установ­
ку статических версий библиотек.
i n i t _ d _ p a t h = / t m p / i n i t . d: Этот параметр устанавливает загру­
зочный скрипт в каталог /tm p/init.d, т. к. загрузочный скрипт
не требуется.
mv -V /usr/lib/libfuse.so.* /lib: С помощью этой команды проис­
ходит перемещение библиотеки FUSE в файловую систему
root, поскольку она с случае, когда /u sr монтируется в отде­
льном разделе, а пакет ntfs-3g-2013.1.13 сбирается с версий па­
кета FUSE, установленного в системе, должна быть в наличии
на ранних этапах процесса,
rm -rf /tmp/init.d: Эта команда удаляет ненужный загрузочный
скрипт.

Конфигурирование пакета fuse


Конфигурационные файлы
Некоторые необязательные параметры монтирования, относящие­
ся к политики монтирования, могут быть установлены в файле / e t c /
f u s e . c o n f . Чтобы установить этот файл, в роли пользователя r o o t
выполните следующие команды:
c a t > / e t c / f u s e . c o n f « "EOF"
# Установка максимального числа точек монтирования, доступных для
# п о л ь з о в а т е л е й , не являющихся пользователями r o o t . По умолчанию
# равно 1 0 0 0 .
#
#mount_max = 1000

# Разрешает пол ьзовател ям , не являющихся пользовател ями r o o t ,


# указывать параметры монтирования ' a l l o w _ o t h e r ' или ' a l l o w _ r o o t ' .
#
# u ser _ a llo w _ o th e r
EOF

Дополнительную информацию о смысле конфигурационных пара­


метров ищите на странице man.

Описание пакета
Установленные программы: fusermount, mount.fnse и ulockmgr_server
Установленные библиотеки: libfuse.so и libulockmgr.so
Установленные каталоги: /usr/include/fuse

Краткое описание
fusermount Устанавливает программу root с пользователь­
ским идентификатором ID, которая монтирует
и демонтирует файловые системы Fuse.
mount.fuse Является командой mount, которая должна
вызываться для монтирования файловой сис­
темы Fuse.
ulockmgr_server Является сервером менеджера блокировок
пользовательского пространства Userspace
Lock Manager Server для файловых систем
Fuse.
l i b f u s e . so Содержит функции API пакета Fuse.
lib u lo c k m g r.s o Содержит функции API менеджера блокиро­
вок пользовательского пространства Userspace
Lock Manager.
Перевод с оригинала от 2013-08-22 04:10:10 -0700

Пакет jfsutils-1 .1 .1 5
Знакомимся с пакетом jfsutils
В пакете jfsutils находятся административные и отладочные сресдс-
тва для файловой системы jfs.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (HTTP): http://jfs.sourceforge.net/project/pub/jfsutils-
1.1.15.tar.gz
• Контрольная сумма MD5: 8809465cd48a202895bc2al2el923b5d
• Размер загружаемого пакета: 532 КВ
• Оценочный размер требуемого дискового пространства: 8,9 MB
• Оценочное время сборки: 0,1 SBU
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/w iki/jfs
Глава 5. Файловые системы и управление дисками

Конфигурирование ядра
Включите следующие параметры в конфигурации ядра и перекомпи­
лируйте ядро:
F i l e System s:
JFS f i l e s y s t e m s u p p o r t : M or Y

Установка пакета jfsutils


Установите пакет jfsutils с помощью следующих команд:
sed "s0<unistd.h> @&\n#include <sys/types.h>@ g" - i f s c k l o g / e x t r a c t . с &&
. / c o n f i g u r e &&
make

Данный пакет не поставляется с тестовым набором.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l

Пояснение команд
sed “s@<unistd.h>@&\n#include <sys/types.h>@ g” -i fscklog/
extract.c: Фиксирует ошибки сборки, связанные с Glibc 2.17.

Описание пакета
Установленные программы: fsck.jfs, jfs debugfs, jfs fsck, jfs_fscklog,
jfs_logdump, jfs_mkfs, jfs_tune, mkfs.jfs
Установленные библиотеки: Нет
Установленные каталоги: Нет

Краткое описание
fsck.jfs Используется для прокрутки журнала транзакций
JFS, проверки ошибок устройства, форматированно­
го в JFS, а также фиксации всех найденных ошибок.
jfs_fsck Жесткая ссылка на fsck.jfs.
mkfs.jfs Создает файловую систему JFS.
jfs_mkfs Жесткая ссылка на mkfs.jfs.
jfs_debugfs Программа, которую можно использовать для выпол­
нения различных низкоуровневых действий на уст­
ройстве, форматированном в JFS.
jfs_fscklog Преобразует журнал сервиса JFS fsck в файла и/или
форматирует и выдает содержимое этого файла.
I Ш. ШШ ШЁШШ т ш ш ш т р ш н н
Пакет LVM 2-2.02.100 lllllH H I E S & i

jfs_logdum p Преобразует дамп содержимого журнала для указан­


ного устройства, форматированного в JFS, в резуль­
тирующий файл ./jfslog.dmp.
jfs_tune Регулирует настраиваемые параметры файловой сис­
темы в файловых системах JFS.
Перевод с оригинала от 2013-08-23 03:32:24 -0700

Пакет L V M 2-2.02.100
Знакомимся с пакетом LVM2
Пакет LVM2 является пакетом, который управляет логическими раз­
делами. Он позволяет распределять файловые системы по многим
физическим устройствам и разделам диска и предоставляет динами­
ческие средства, позволяющие увеличивать размеры логических раз­
делов и их динамически продлевать на другие устройства.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (FTP): f t p: / / s o u r c e s . r e d h a t . c o m / p u b / l v m 2 /
LVM2.2.02.100.tgz
• Контрольная сумма MD5: 9629cf5728544d7e637cafdelf73d777
• Размер загружаемого пакета: 1,3 MB
• Оценочный размер требуемого дискового пространства: 22 MB
• Оценочное время сборки: 0,3 SBU

Зависимости пакета LVM2


Необязательные
mdadm-З.З (для проверки) и xfsprogs-3.1.11 (для проверки)
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/w iki/lvm 2

Конфигурирование ядра
Замечание
В ядре помимо тех параметров Device Mapper, которые указаны
ниже, есть несколько других параметров Для того, чтобы при работе
регрессивных тестов получить приемлемые результаты, все пара­
S T iJ i! Глава 5. Файловые системы и управление дисками

метры должны быть заданы как внутренние для ядра (internail) или
должны быть определены в загружаемых модулях (module).

Включите следующие параметры в конфигурации ядра и переком­


пилируйте ядро:
D e v i c e D r i v e r s ----->
M u l t i p l e d e v i c e s d r i v e r s u p p o r t (RAID and LVM): Y
D e v i c e mapper s u p p o r t : Y or M
Crypt t a r g e t s u p p o r t : ( o p t i o n a l )
Snapshot t a r g e t : (o p t io n a l)
M ir ro r t a r g e t : ( o p t i o n a l )

Установка пакета LVM2


Установите пакет LVM2 с помощью следующих команд:
. /c o n f i g u r e - - p r e f i x = / u s r \
--ex ec-p refix = \
— w ith -c o n fd ir = /e tc \
— e n ab le-ap p lib \
--en a b le-cm d lib \
--en ab le-p k gcon fig \
— enable-udev_syn c &&
make

Чтобы проверить результаты, выполните команду: make check.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l

Пояснение команд
— e n a b l e - a p p l i b : Этот переключатель разрешает сборку совмес­
тно используемой динамической библиотеки приложения.
— e n a b l e - c m d l i b : Этот переключатель разрешает сборку совмест­
но используемой динамической библиотеки команд. Необхо­
димо, когда собирается демон событий.
— e na bl e - pkgc onfig: Этот переключатель включает установку
поддерживающих файлов pkg-config.
— e n a b l e - u d e v _ s y n c : Этот переключатель включает синхрони­
зацию при обработке Udev.
— e n a b l e - d m e v en t d : Этот переключатель разрешает сборку де­
мона событий Device Mapper.
Описание пакета
Установленные программы: б т з е ^ р , £зас1т, 1уш, 1угпсоп1, Ьчпбитр,
vgimportclone.
Е сть также многочисленные символические ссылки на 1уш, кото­
рые позволяют обращаться к реализациям конкретных функций.
Установленные библиотеки: НЬбеутаррег.БО, НЬ1ут2арр.зо
и НЫут2стс1.80
Установленные каталоги: Нет

Краткое описание
dmsetup Низкоуровневое инструментальное средство
для управления логическими томами.
fsadm Утилита, используемая для изменения размеров
или проверки файловой системы устройства.
lvm Предоставляет инструментальное средство
для LVM2, используемое из командной строки.
Команды реализуются через символические
ссылки па эту программу, с помощью которой
можно управлять физическим устройством
(pv*), группами томов (vg*) и логическими то­
мами (lv*).
lvmconf Скрипт, который модифицирует конфигура­
цию блокировок в конфигурационном файле
LVM2.
lvmdump Инструментальное средство, используемое для
выдачи дампа различной информации, относя­
щейся к LVM2.
vgimportclone Используется для импорта дубликатов VG
(т. е. моментального снимтса состояния аппа­
ратного устройства).
lib d ev m ap p er. so Содержит функции API для Device Mapper.
Перевод с оригинала от 2013-08-27 10:06:41 -0700

О массиве RAID
В технологии хранения данных, известной как RAID (Redundant
Array of Independent Disks - избыточный массив независимых дис­
ков), несколько физических дисков объединяются в логическую еди­
ницу. Диски обычно могут объединяться для того, чтобы обеспечить
208 ІН Ш 1Н І! Глава 5. Файловые системы и управление дисками

избыточность сохраняемых данных или для увеличения размера ло­


гических единиц, выходящего за пределы возможностей физических
дисков, или для одного и другого. Эта технология также позволяет
обслуживать аппаратное обеспечение без отключения питания сис­
темы.
Типы построения массивов RAID описаны на wiki-страницах
RAID Wiki.
Обратите внимание, что хотя с помощью технологии RAID обес­
печивается защита от дисковых сбоев, она не заменяет резервного ко­
пирования. Удаляемый файл будет удаляться со всех дисков массива
RAID. Современное резервное копирование, как правило, осущест­
вляется с помощью пакета rsvnc-3.0.9.
Есть три основных типа реализации массивов RAID: аппарат­
ный RAID, RAID на основе использования BIOS и программный
RAID.

Аппаратный RAID
Аппаратный RAID реализуется с помощью проприетарного аппарат­
ного обеспечения и специальных схем размещения данных. Управле­
ние и настройкаосуществляется, как правило, с помощью прошивки
в сочетании с программами, предоставляемыми производителями
устройств. Все это, обычно, происходит с использованием карты PCI,
хотя есть некоторые варианты реализации RAID, когда компоненты
интегрируются в материнскую плату. Аппаратный RAID может быть
также выполнен как отдельное устройство в своем собственном кор­
пусе.
Одно из преимуществ аппаратного RAID заключается в том, что
диски предоставляются операционной системе уже как логический
диск и операционная система не будет зависеть ни от каких настроек.
К недостаткам можно отнести трудности, возникающие при пере­
носе дисков из одной системы в другую, обновлении прошивок или
замене неисправного оборудования RAID.

RAID на основе использования BIOS


На некоторых компьютерах предлагается реализация RAID в систем­
ном BIOS, которая похожа на аппаратную реализацию. Иногда такая
реализация называется «фиктивным» RAID, поскольку ее возмож­
ности, как правило, реализованы с помощью прошивки без всякого
аппаратного ускорения.
Преимущества и недостатки RAID на основе использования BIOS
обычно те же самые, что в аппаратном RAID с дополнительным не­
достатком, связанным с отсутствием аппаратного ускорения. В неко­
торых случаях RAID, создаваемый на основе BIOS, по умолчанию
включен (например, в некоторых системах DELL). В случае, если
необходим программный RAID, эту функцию можно в BIOS отклю­
чить.

Программный RAID
RAID на основе использования программного обеспечения является
наиболее гибкой формой RAID. Его легко устанавливать и обновлять
и он всега совместим со всеми или с частью любых дисков, доступных
в системе. В проекте BLFS, программное обеспечение, необходимое
для RAID, устанавливается из пакета mdadm-3.3.
Конфигурирование устройства RAID, использующего пакет
mdadm, является относительно простой операцией. Обычно уст­
ройства создаются в каталоге / d e v и представляют собой устройства
/ d e v / m d x , ГДЄ х - ЦЄЛОЄ ЧИСЛО.
На первом шаге создания массива RAID используются программы,
предназначенные для разбиения дисков на разделы, например, f d i s k
или parted-3.1. с помощью которых определяется, какие разделы сле­
дует выделить под массив. Обычно на каждом диске, участвующим в
создании массива RAID, используется один раздел, но это условие не
является строго необходимым. В следующем примере будут исполь­
зованы четыре дисковых устройства: / d e v / s d a , / d e v / s d b , / d e v / s d c И
/ d e v / s d d . Они разбиваются на разделы следующим образом:

Размер р а з д е л а Тип Использован ие


sdal : 100 MB fd Linux r a id auto /b oot (RAID 1) /dev/mdO
sda2 : 10 GB fd Linux r a id auto / (RAID 1) /d e v /m d l
sd a3 : 2 GB 83 Linux swap swap
sda4 300 GB fd Linux r a id auto /home (RAID 5) /d e v /m d 2

sdbl : 100 MB fd Linux r a id auto /b oot (RAID 1) /dev/mdO


sdb2 : 10 GB fd Linux r a id auto / (RAID 1) /d e v /m d l
sdb3 : 2 GB 83 Linux swap swap
sdb4 300 GB fd Linux r a id auto /home (RAID 5) /d e v /m d 2

sdcl : 12 GB f d Linux r a i d a u t o /u sr/src (RAID 0) /d e v /m d 3


s d c2 : 300 GB f d Linux r a i d a u t o /home (RAID 5) /d e v /m d 2

sddl : 12 GB f d Linux r a i d a u t o /u sr/src (RAID 0) /d e v /m d 3


sdd2 : 300 GB f d Linux r a i d a u t o /home (RAID 5) /d e v/m d 2
Глава 5. Файловые системы и управление дисками

В данном случае отдельный загрузочный раздел boot создается


как первый небольшой массив RAID, а файловая система root - как
второй массив RAID, причем оба массива с зеркалированием. Третий
раздел является большим (около 1 ТВ) массивом для каталога /home.
В нем используется возможность расслоения данных по нескольким
устройствам, благодаря чему повышается скорость чтения и записи
больших файлов. Наконец создается четвертый массив, в котором два
раздела объединяются в большое устройство.

Зам ечан ие
Все команды mdadm должны выполняться в роли пользователя
root.

Чтобы создать такие массивы RAID, используются следующие ко­


манды:
/sbin/mdadm -Cv /dev/mdO — level-1 — raid-devices=2 /dev/sdal /dev/sdbl
/sbin/mdadm -Cv /dev/mdl — level=l — raid-devices=2 /dev/sda2 /dev/sdb2
/sbin/mdadm -Cv /dev/md3 — level=0 — raid-devices=2 /dev/sdcl /dev/sddl
/sbin/mdadm -Cv /dev/md2 — level=5 — raid-devices=4 \
/dev/sda4 /dev/sdb4 /dev/sdc2 /dev/sdd2

Можно проверить конкретные характеристики созданных уст­


ройств. Например, для того, чтобы увидеть харакьеристики / d e v /
mdl, используйте / s bi n/ md ad m — d e t a i l / de v /md l :
V ersion :1 .2
C r e a t i o n Time : Tue Feb 7 1 7 : 0 8 : 4 5 2012
Raid L e v e l :r a i d l
A rray S i z e : 104846 64 ( 1 0 . 0 0 GiB 1 0 . 7 4 GB)
Used Dev S i z e : 1048 466 4 ( 1 0 . 0 0 GiB 1 0 . 7 4 GB)
R aid D e v i c e s :2
T o ta l D evices :2
P ersisten ce :S u p erb lock i s p e r s i s t e n t

Update Time : Tue Feb 7 2 3 : 1 1 : 5 3 2012


S tate :c l e a n
A c tiv e D evices :2
Working D e v i c e s :2
F a ile d D evices :0
S p are D e v i c e s :0

Name : c o r e 2 - b l f s : 0 (lo ca l to host co re 2 -b lfs)


UUID : f c b 9 4 4 a 4 : 9 0 5 4 a e b 2 : d 9 8 7 d 8 f e : a 8 9 1 2 1 f 8
E v e n t s : 17

Номер Major Minor Устройство Raid Статус


шт ш яш
Пакет mdadm-3.3 л ШшШШШ 211
0 8 1 0 a c t iv e sync /d e v /sd a l
1 8 17 1 a c t iv e sync /d e v /sd b l

С этого момента разделы можно будет отформатировать под любую


файловую систему по вашему выбору (например, ext3, ext4, xfsprogs-
3.1.11, reiserfsprogs-3.6.24 и т. д.). Затем отформатированные разделы
можно будет монтировать. Чтобы созданные устройства монтиро­
вались во время загрузки системы, можно использовать файл / e t c /
f s t a b и в строке команды linux в файле / b o o t / g r u b / g r u b . c f g можно
указать r o o t = / d e v / m d l .

Замечание
Устройства swap следует, как правило, определять в файле / e t c /
f s t a b . Расслоение данных swap по нескольким файлам swap обыч­
но выполняется ядром и эти устройства не следует размещать в
массиве RAID.

Дополнительные параметры и описание конкретных деталей уп­


равления устройствами RAID смотрите в man mdadm.
Дополнительные подробности мониторинга массивов RAID и
описания связанных с этим проблем можно найти на вики страницах
Linux RAID Wiki.
Перевод с оригинала от 2013-02-11 10:51:17 -0800

Пакет m dadm -3.3


Знакомимся с пакетом mdadm
В пакете mdadm находятся административные инструментальные
средства для программного RAID.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.
Информация о пакете
• Загрузка (HTTP): http://w w w .kernel.org/pub/linux/utils/raid/
mdadm/mdadm-3.3.tar.xz
• Контрольная сумма MD5: abbl9b309281b93cf79d29fb2dfb2e85
• Размер загружаемого пакета: 390 КВ
• Оценочный размер требуемого дискового пространства: 8,3 MB
• Оценочное время сборки: менее 0,1 SBU
Замечания для пользователей:
http://w iki.linuxfrom scratch.org/blfs/w iki/m dadm
Глава 5. Файловые системы и управление дисками

Конфигурирование ядра
Включите следующие параметры в конфигурации ядра и перекомпи­
лируйте ядро, если это необходимо. Нужно выбирать только нужные
типы RAID.
F i l e System s:
D evice D r iv er s:
M u l t i p l e d e v i c e s d r i v e r s u p p o r t (RAID and LVM): Y
RAID s u p p o r t : Y or M
A u t o d e t e c t RAID a r r a y s d u r i n g k e r n e l b o o t : Y
L i n e a r (append) mode: Y or M
RAID-0 ( s t r i p i n g ) mode : Y or M
RAID-1 ( m i r r o r i n g ) mode : Y or M
RAID-10 (m i r r o r e d s t r i p i n g ) mode: Y or M
RAID-4/RAID-5/RAID-6 mode : Y or M

Установка пакета mdadm


Установите пакет mdadm с помощью следующих команд:
make

Если вы хотите запустить тесты, то удостоверьтесь в том, что в ядре


поддерживается работа с RAID, а также в том, что пакет mdadm еще
не запущен; после этого выполните команду make test, а затем в роли
пользователя r o o t выполните команду ./test.
Теперь в роли пользователя r o o t выполните:
make i n s t a l l

Пояснение команд
— make e v e r y t h i n g : Этот переключатель указывает создавать
дополнительные программы, в частности, статически скомпо­
нованную версию mdadm, а также версии mdassemble. Эти все
программы нужно устанавливать вручную.

Описание пакета
Установленные программы: mdadm, mdmon и, возможно, mdassemble
Установленные библиотеки: Нет
Установленные каталоги: Нет

Краткое описание
тбайт Управление устройствами, т. е. программным мас­
сивом RAID системы 1лпих.
mdmon Мониторинг массивов метаданных внешних уст­
ройств MD.
mdassemble Крошечная программ, которую можно использо­
вать для сборки устройств MD на исходном диске
ramdisk (initrd) в файловыз системах initramfs.
Перевод с оригинала от 2013-09-10 16:12:35 -0700

Пакет n tfs -3 g -2 0 1 3 .1 .13


Знакомимся с пакетом N tfs-3g
В пакете Ntfs-3g находится открытый исходный код драйвера файло­
вой системы Windows NTFS. Можно монтировать разделы Windows,
в которых можно будет записывать данные (writeable), и, следова­
тельно, в системе Linux можно будет редактировать файлы системы
Windows или удалять эти файлы.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (H TTP): http://tuxera.com /opensource/ntfs-3g_
ntfsprogs-2013.1.13.tgz
• Контрольная сумма MD5: 2d6fb47ddf62b51733227126fe9227fe
• Размер загружаемого пакета: 1,2 МБ
• Оценочный размер требуемого дискового пространства: 24 MB
• Оценочное время сборки: 0,4 SBU

Зависимости пакета Ntfs-3g


Н еобяза тельные
Fuse-2.9.3.
Замечания для пользователей:
http://w iki.linuxfrom scratch.org/blfs/w iki/ntfs-3g

Конфигурирование ядра
Включите следующие параметры в конфигурации ядра и перекомпи­
лируйте ядро, если это необходимо:
F il e system s ----->
[*] FUSE ( F i l e s y s t e m i n U s e r s p a c e ) support
И Ы ШШшШШ. Глава 5. Файловые системы и управление дисками

Установка пакета N tfs-3g


Установите пакет Ntfs-3g с помощью следующих команд:
./configure --p r e fix = /u sr - - d i s a b l e - s t a t i c &&
make

С этим пакетом не поставляется тестовый набор.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l &&
In - s v . . / b i n / n t f s - 3 g / s b i n / m o u n t . n t f s &&
In - s v / u s r / s h a r e / m a n / m a n 8 / {n t f s - 3 g , m o u n t . n t f s } . 8

Если вы хотите, чтобы обычные пользователи могли монтировать


разделы NTFS, вам необходимо установить mount.ntfs с ID пользова­
теля root. Замечание: так поступать, возможно, небезопасно в случае,
если нужно, чтобы компьютер был надежно защищен (например, как
сервер). В роли пользователя r o o t выполните:
chmod -V 4755 / s b i n / m o u n t . n t f s

Пояснение команд
— d i s a b l e - s t a t i c : Этот переключатель предотвращает установ­
ку статических версий библиотек.
— w i t h - f u s e = e x t e r n a l : Пакет Ntfs-3g поступает с версией па­
кета Fuse, который статически скомпилирован в lowntfs-3g и
ntfs-3g. Если у вас установлен пакет Fuse-2.9.3, то используйте
этот параметр — w i t h - f u s e = e x t e r n a l для динамической ком­
поновки lowntfs-3g и ntfs-3g с пакетом libfuse.
In -sv ../bin/ntfs-3g /sbin/mount.ntfs: Создание /sbin/m ount.ntfs
позволяет команде mount использовать по умолчанию пакет
Ntfs-3g для монтирования разделов NTFS.
chmod -V 4755 /sbin/mount.ntfs: Указание id пользователя root в
mount.ntfs setuid позволяет пользователям, не являющимися
пользователями root, монтировать разделы NTFS.

Использование пакета N tfs-3g


Чтобы монтировать раздел Windows во время загрузки системы, по­
местите в файл /etc/fstab строку, аналогичную следующей:
/ d e v / s d a l /m n t/w in d o w s a u t o d e f a u l t s О О

Чтобы позволить пользователям монтировать флешки usb с файло­


вой системой NTFS, поместите в файл /etc/fstab строку, аналогичную
следующей (измените sdcl в зависимости от того, к какому разъему
usb будет подключаться флешка на вашей):
/ d e v / s d c l / m n t / u s b a u t o u s e r , n o a u t o , umask=0, u t f 8 0 0

Для пользователя, который может монтировать флешку, нужно,


чтобы он мог писать на устройство / m n t / u s b , поэтому в роли пользо­
вателя r o o t выполните:
chmod -V 777 / m n t / u s b

Описание пакета
Установленные программы: lowntfs-3g, mkfs.ntfs, mkntfs, mount.
lowntfs-3g, mount.ntfs, mount.ntfs-3g, ntfs-3g, ntfs-3g.probe, ntfs-
3g.secaudit, ntfs-3g.usermap, ntfscat, ntfsclone, ntfscluster, ntfscmp,
ntfscp, ntfsfix, ntfsinfo, ntfslabel, ntfsls, ntfsresize и ntfsundelete
Установленная библиотека: libntfs-3g.so
Установленные каталоги: /usr/include/ntfs-3g и /u sr/sh a re /d o c /
ntfs-3g

Краткое описание
lowntfs-3g Аналогично ntfs-3g, использует низкоуровневый
интерфейс пакета Fuse,
m kfs.ntfs Символическая ссылка на mkntfs.
mkntfs Создает файловую систему NTFS.
m o u n t.lo w n tf s -Символическая ссылка на lowntfs-3g.
3g
m ount.ntfs Монтирует файловую систему NTFS.
m ount.ntfs-3g Символическая ссылка на ntfs-3g.
ntfs-3g Драйвер NTFS, который может создавать, уда­
лять, переименовывать и перемещать файлы,
каталоги, жесткие ссылки и потоки; он может
читать и записывать файлы, в том числе потоки,
разреженные файлы и прозрачно сжатые файлы;
он может обрабатывать специальные файлы, та­
кие как символические ссылки, устройства и оче­
реди FIFO; более того, он может предоставлять
стандартный доступ к файлам для владельцев
файлов и использовать права доступа к файлу, в
том числе списки POSIX ACL.
Глава 5. Файловые системы и управление дисками

ntfs-3g. probe Проверяет, смонтирован ли том NTFS как до­


ступный только для чтения или как доступный
для чтения и записи, и выдает значение соответс­
твующего состояния. Том может быть блочным
устройством или файлом образа устройства.
ntfs-3g.secaudit Осуществляет аудит безопасности данных
NTFS.
ntfs-3g.usermap Создает файл, в котором определено отображе­
ние учетных записей системы Windows в учет­
ные записи login в Linux logins для пользовате­
лей, файлы которых должны быть видны как из
Windows, так и из Linux.
ntfscluster Указывает, какие файлы находятся в указанной
части тома NTFS.
ntfscp Копирует файлы на том NTFS.
ntfsfix Исправляет обычные ошибки и заставляет систе­
му Windows проверить раздел NTFS.
ntfsls Выдает список каталогов, которые есть в файло­
вой системе NTFS.
ntfscat Выводит файлы и потоки NTFS в стандартный
системный поток вывода.
ntfsclone Клонирует файловую систему NTFS.
ntfscmp Сравнивает две файловые системы NTFS и сооб­
щает о различиях.
ntfsinfo Выдает дамп атрибутов файла.
ntfslabel Показывает или изменяет метку файловой систе­
мы ntfs.
ntfsresize Изменяет размер файловой системы NTFS не те­
ряя при этом данные.
ntfsundelete Восстанавливает файл, удаленный с тома NTFS.
l i b n t f s - 3 g . s o Содержит функции API пакета Ntfs-3g

Перевод с оригинала от 2013-08-23 03:32:24 -0700

Пакет gptfdisk-0.8.7
Знакомимся с пакетом gptfdisk
Пакет gptfdisk является набором программ для создания и управ­
ления дисковыми устройствами, использующими таблицу разделов
Пакет gptfdisk-0.8.7 1 1 1 Ё Ш М 1 217

GUI D Partition Table (G PT). Диск с разделами GPT необходим для


устройств, размер которых больше 2 ТВ, и является современной за­
меной устаревшему варианту разбиения дисков на разделы с исполь­
зованием PC-BIOS и загрузочной записи Master Boot Record (MBR).
Основная программа, gdisk, имеет интерфейс, аналогичный класси­
ческой программе fdisk.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (HTTP): http://dow nloads.sourceforge.net/project/
gptfdisk/gptfdisk/0.8.7/gptfdisk-0.8.7.tar.gz
• Контрольная сумма MD5: 005b45c0b37c37a99024704fdb2ee610
• Размер загружаемого пакета: 188 КВ
• Оценочный размер требуемого дискового пространства: 2,8 MB
• Оценочное время сборки: менее 0,1 SBU

Дополнительные загрузки
• Рекомендуемый патч: http://www.linuxfromscratch.org/patches/
blfs/svn/gptfdisk-0.8.7-convenience-1.patch

Зависимости пакета gptfdisk


Н еобяза тельные
popt-1.16 (требуется для сборки sgdisk) и ICU-51.2 (для использо­
вания кодировки Unicode в именах разделах)
Замечания для пользователей:
h ttp ://w ik i,linuxfrom scratch.org/blfs/wiki/gptdisk

Установка пакета gptfdisk


Пакет gptfdisk поставляется с рудиментарным файлом M a k e f il e .
Сначала мы изменим его для того, чтобы упростить сборку и уста­
новить интерфейс. Установите пакет gptfdisk с помощью следующих
команд:
p a tc h -N pl - i . . / g p t f d i s k - О . 8 . 7 - c o n v e n i e n c e - l . p a t c h &&
make

С этим пакетом наборы тестов не поставляются.


Теперь в роли пользователя ro o t выполните:
make i n s t a l l
218 llll | Глава 5. Файловые системы и управление дисками

Пояснение команд
icu = l: Добавление этого необязательного параметра к коман­
де make позволяет в именах разделов использовать символы
Unicode.
ро рт =1: Добавление этого необязательного параметра к коман­
де make требуется для сборки sgdisk. Если этот параметр ис­
пользуется, то он должен быть в обеих строках make и make
install.

Описание пакета
Установленные программы: cgdisk, gdisk, fixparts и sgdisk
Краткое описание
cgdisk Инструментальное средство, работающее в текстовом
режиме с использованием курсора и предназначенное
для манипуляции разделами GPT.
gdisk Интерактивное инструментальное средство работаю­
щее в текстовом режиме и предназначенное для мани­
пуляции разделами GPT.
fixparts Восстанавливает диски, неправильно отформатирован­
ные с использованием MBR.
sgdisk Программа для манипуляции с разделами GPT, анало­
гичная программе sfdisk.
Перевод с оригинала от 2013-07-13 00:39:31 +0000

Пакет parted-3.1
Знакомимся с пакетом parted
Пакет Parted является инструментальным средством, предназначен­
ным для задания на диске разделов и для изменения размеров этих
разделов.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.
Информация о пакете
• Загрузка (H TTP): http://ftp.gnu.org/gnii/parted/paited-3.1.tar.xz
• Контрольная сумма MD5: 5d89d64d94bcfefa9ce8f59f4b81bdcb
• Размер загружаемого пакета: 1,5 MB
• Оценочный размер требуемого дискового пространства: 38 MB
Пакет parted-3.1

• Оценочное время сборки: 0,5 SBU


Зависимости пакета Parted
Р еком ендуем ы е
LVM2-2.02.100 (device-mapper, необходимый в случае, если
собирается пакет udisks)
Замечания для пользователей:
http://w iki.linuxfrom scratch.org/blfs/w iki/parted

Установка пакета parted


Установите пакет Parted с помощью следующих команд:
./c o n fig u re — p r efix = /u sr — d i s a b l e - s t a t i c &&
make &&

make -С do c html &&


m a k e i n f o — htm l -o d oc/h tm l d o c / p a r t e d . t e x i &&
m akeinfo - - p l a i n t e x t - o d o c / p a r t e d . t x t d o c /p a r te d .te x i

Если у вас есть установленный пакет texlive-20130530 и вы желаете


документацию в форматах PD F и Postcript, то наберите следующие
команды:
te x i2 p d f -о d o c /p a r te d .p d f d o c / p a r t e d . t e x i &&
te x i2 d v i -о d o c /p a r te d . dvi d o c / p a r t e d . t e x i &&
dvip s -o d o c /p a r te d .p s d o c /p a r te d .d v i

Чтобы проверить результаты, выполните команду make check.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l &&
i n s t a l l - v -m755 - d / u s r / s h a r e / d o c / p a r t e d - З . 1 / h t m l &&
i n s t a l l - v -m644 d oc/h tm l/* \
/ u s r / s h a r e / d o c / p a r t e d - З . 1 / h t m l &&
i n s t a l l - v -m644 d o c / { FAT, API, p a r t e d . { t x t , h t m l }} \
/ u s r / s h a r e / d o c / p a r t e d - З .1

Установите необязательный набор документации в форматах PD F


и Postscript при помощи следующих команд, выполняемых в роли
пользователя r o o t :
i n s t a l l - v -m644 doc/FAT d o c /A P I d o c / p a r t e d . { p d f , p s , d v i } \
/ u s r / s h a r e / d o c / p a r t e d - З .1

Пояснение команд
— d i s a b l e - s t a t i c : Э тот переклю чатель предотвращ ает установ­
ку статических версий библиотек.
Е Ш Н М Глава 5. Файловые системы и управление дисками

— d i s a b l e - d e v i c e - m a p p e r : Этот необязательный параметр от­


ключает поддержку device mapper (механизм отображения
устройств). Добавьте этот параметр в случае, если вы не уста­
новили пакет LVM2.

Описание пакета
Установленные программы: parted и partprobe
Установленная библиотека: libparted.so
Установленные каталоги: /usr/include/parted
Краткое описание
parted Программа, предназначенная для работы с разде­
лами диска.
partprobe Информирует ОС об изменениях в таблице разде­
лов.
l i b p a r t e d . so Содержит функции API пакета Parted
Перевод с оригинала от 2013-08-23 03:32:24 -0700

Пакет reiserfsprogs-3.6.24
Знакомимся с пакетом reiserfsprogs
В пакете reiserfsprogs находятся различные утилиты, предназначен­
ные для использования с файловой системой.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.
Информация о пакете
• Загрузка (HTTP): ftp://andiiin.linuxfromscratch.org/BLFS/svn/
r/reiserfsprogs-3.6.24.tar,bz2
• Контрольная сумма MD5: 66787380fb418ff7d88a23e47cda7af6
• Размер загружаемого пакета: 316 КВ
• Оценочный размер требуемого дискового пространства: 13 MB
• Оценочное время сборки: 0,1 SBU
Замечания для пользователей:
h ttp ://w ik i.linuxfromscratch.org/blfs/wiki /reiser

Конфигурирование ядра
Включите следующие параметры в конфигурации ядра и перекомпи­
лируйте ядро:
Пакет reiserfsprogs-3.6.243 J| r 3 1 1 1 | | 1 | [ Н Й E S I

F i l e System s:
R e i s e r f s supp ort: M or Y

Установка пакета reiserfs


Установите пакет reiserfsprogs с помощью следующих команд:
. / c o n f i g u r e — p r e f i x = / u s r — s b i n d i r = / s b i n &&
make

С этим пакетом наборы тестов не поставляются.


Теперь в роли пользователя ro o t выполните:
make i n s t a l l &&
In - s f r e i s e r f s c k / s b i n / f s c k . r e i s e r f s &&
In - s f m k r e i s e r f s / s b i n / m k f s . r e i s e r f s

Пояснение команд
— s b i n d i r = / s b i n : Обеспечивает, чтобы утилиты reiserfsprogs ус­
танавливались в каталоге / sbin.

Описание пакета
Установленные программы: debugreiserfs, mkreiserfs, reiserfsck,
reiserfstune и resize_reiserfs
Установленные библиотеки: Нет
Установленные каталоги: Нет

Краткое описание
debugreiserfs Может иногда помочь решить проблему с файло­
выми системами ReiserFS. Если вызывается без
параметров, то выдает содержимое суперблока
любой файловой системы ReiserFS, найденной на
устройстве.
mkreiserfs Создает файловую систему ReiserFS.
reiserfsck Используется для проверки или восстановления
файловой системы ReiserFS.
reiserfstune Используется для настройки журнала ReiserFS.
ПРЕДУПРЕЖДЕНИЕ: Не используйте эту утилиту,
предварительно не прочитав полностью инструк­
ции на странице man.
resize_reiserfs Используется для изменения разделов несмонти­
рованной файловой системы ReiserFS.
Перевод с оригинала от 2013-08-29 15:03:56 -0700
S ' SSII Глава 5. Файловые системы и управление дисками

Пакет sshfs-fuse-2.4
Знакомимся с пакетом Sshfs Fuse
В пакете Sshfs Fuse находится клиентская программа файловой сис­
темы, использующая безопасный транспортный протокол SSFI File
Transfer Protocol. Программа используется для дистанционного мон­
тирования с удаленным компьютером, у которого есть доступ к ло­
кальной файловой системе с использованием ssh. Она позволит вам
с помощью мыши перетаскивать файлы или запускать команды ко­
мандной оболочки на удаленном компьютере так, как если бы это был
локальный компьютер.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.
Информация о пакете
• Загрузка (H TTP): http://dow nloads.sourceforge.net/fusc/
sshfs-fuse-2.4.tar.gz
• Контрольная сумма MD5: 3c7c3647c52ce84d09486flda3a3ce24
• Размер загружаемого пакета: 132 КВ
• Оценочный размер требуемого дискового пространства: 2,6 MB
• Оценочное время сборки: 0,1 SBU
Зависимости пакета Sshfs Fuse
Обязательные
Fuse-2.9.3, GLib-2.36.4 и OpenSSH-6.3pl.
Замечания для пользователей:
http:/Aviki.linuxfromscratch.org/blfs/wiki/sshfs-fusc

Установка пакета Sshfs Fuse


Установите пакет Sshfs Fuse с помощью следующих команд:
. / c o n f i g u r e — p r e f i x = / u s r &&
make

С этим пакетом наборы тестов не поставляются.


Теперь в роли пользователя ro o t выполните:
make i n s t a l l

Использование пакета Sshfs Fuse


Чтобы смонтировать сервер ssh, вам необходимо будет зарегистри­
роваться на сервере. Например, чтобы смонтировать ваш домашний
Пакет х1$ргод5-3.1.1 1 И Л И И ШИ
каталог на компьютере, называющимся ТНШСУ, в каталоге мон­
тирования ~/М 01Ж ТРА ТН (каталог должен существовать и у вас
должны быть права записи в него):
ТНШ5У:~ -/МОиИТРАТН

Когда вы завершите работу, то вы должны его снова размонтиро­


вать:
Ииэегтоиг^ - и ~/М01ШТРАТН

Описание пакета
Установленные программы:
Установленные библиотеки: Нет
Установленные каталоги: Нет

Краткое описание
881^ Монтирует сервер 88Ь как локальную файло­
вую систему.
Перевод с оригинала от 2013-08-22 04:10:10 -0700

Пакет xfsprogs-3.1.11
Знакомимся с пакетом xfsprogs
В пакете xfsprogs находятся административные и отладочные инстру­
ментальные средства, предназначенные для файловой системы ХРБ.
Известно, что пакет правильно собирается и работает на платфор­
ме Ь Р З-7Л .

Информация о пакете
• Загрузка (Н ТТР): http://anduin.linuxfrom scratch.org/sources/
ВЬЁЗ /5 У п /х ^ 5 р п ^ 5 -3 .1.11
• Загрузка (РТР): ftp://oss.sgi.com/projects/xfs/cmd_tars/xfsprogs-
3.1.11Даг^г
• Контрольная сумма М 05: de9flf45026c2f4e0776058d429ff4b6
• Размер загружаемого пакета: 1,3 М В
• Оценочный размер требуемого дискового пространства: 45 МВ
• Оценочное время сборки: 0,5 БВ и
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/w iki/xfs
K £ il^ ^ 8 ^ e iS iillï Глава 5. Файловые системы и управление дисками

Конфигурирование ядра
Включите следующие параметры в конфигурации ядра и перекомпи­
лируйте ядро, если это необходимо:
F i l e S y s te m s :
XFS f i l e s y s t e m s u p p o r t : M or Y

Установка пакета xfsprogs


Установите пакет xfsprogs с помощью следующих команд:
make DEBUG=-DNDEBUG INSTALL_USER=root INSTALL_GROUP=root \
LOCAL_CONFIGURE_OPTIONS="--enable-readline"

С этим пакетом наборы тестов не поставляются.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l i n s t a l l - d e v &&
rm - r f v / l i b / l i b h a n d l e . { a , l a , so } &&
In - s f v / l i b / l i b h a n d l e . s o .1 / u s r / l i b / l i b h a n d l e . s o &&
sed - i " s 0 1 ib d i r = ' /l i b @ li b d ir = ' / u s r / l ib 0 g " / u s r / l i b / l i b h a n d l e . la

Пояснение команд
make DEBUG=-DNDEBUG: Выключает отладочные символы.
iNSTALL_usER=root i N S T A L L _ G R O U P = r o o t : Задает владельца и
группу для установленных файлов.
l o c a l _ c o n f i g u r e _ o p t i o n s = " . . .": Передает дополнитель­
ные параметры в скрипт configure. Например, параметр
— e n a b l e - r e a d l i n e разрешает компоновать XFS с библиоте­
кой l i b r e a d l i n e .so с тем, чтобы можно было пользоваться
интерактивными командами редактирования.
o p t i m i z e r s . . . Добавление этого параметра к концу команды
make переопределяет настройки параметров оптимизации, за­
даваемые по умолчанию.

Описание пакета
Установленные программы: fsck.xfs, mkfs.xfs, xfs_admin, xfs_bmap,
xfs_check, xfs_copy, xfs_db, xfs_freeze, fs_growfs, xfs_info, xfs_io,
xfs_logprint, xfs_mdrestore, xfs_metadump, xfs_mkfile, xfs_ncheck,
xfs_quota, xfs_repair и xfs_rtcp
Установленные библиотеки: libhandle.{so,a}
Установленные каталоги: /usr/include/xfs и /u sr/sh a re /d o c /
xfsprogs
Пакет xfsprogs-3.1.1 1

Краткое описание
fsck.xfs Просто выходит со статусом, равным нулю, пос­
кольку разделы XFS проверяются во время их
монтирования,
mkfs.xfs Строит файловую систему XFS.
xfs admin Изменяет параметры файловой системы XFS.
xfs bmap Выдает информацию об отображении блоков для
файла XFS.
xfs check Проверяет согласованность файловой системы
XFS.
xfs сору Копирует содержимое файловой системы XFS в
одно или несколько мест параллельно,
xfs db Используется для отладки файловой системы
XFS.
xfs freeze Приостанавливает доступ к файловой системе
XFS.
xfs_growfs Расширяет файловую систему XFS.
xfs__info Эквивалентно обращению к xfs_growfs, но указы­
вает, что в фаловой системе изменения делаться не
должны.
xfs io Отладочное средство, похожее на xfs_db, но пред­
назначенное для проверки путей ввода/вывода
обычных файлов, а не самого тома XFS.
xfs_logprint Выдает журнал файловой системы XFS.
xfs m drestore Восстанавливает образ метадампа в образе файло­
вой системы.
xfs m etadump Копирует в файл метаданные файловой системы
XFS.
xfs__mkfile Создает файл XFS, заполняемый по умолчанию
нулями.
xfs ncheck Генерирует имена путей по номерам инодов для
файловой системы XFS.
xfs quota Утилита, сообщающая и изменяющая различные
характеристики квот файловой системы,
xfs repair Восстанавливает поврежденные и испорченные
файловые системы X F S .
xfs rtcp В системе XFS копирует файл в раздел реального
времени.
226 Глава 5. Файловые системы и управление дисками

ііЬ їіа п с іїе . эо Содержит специальные функции ХББ, с помощью


которых предоставляется возможность выполнять
определенные операции в файловой системе и,
при этом, не использовать дескриптор файла для
доступа к объектам файловой системы.
Перевод с оригинала от 2013-08-23 03:32:24 -0700
ГЛАВА 6 .
Текстовые редакторы

Эта глава включена в книгу для тех, кто хочет в своей системе
ЬР8 пользоваться другими текстовыми редакторами. Вы также уви­
дите, какие преимущества получат некоторые уже установленные в
системе программы после того, как они будут перекомпилиро­
ваны после установки библиотек с графическим пользовательским
интерфейсом.

Пакет В1иейв11-2.2.4
Знакомимся с пакетом
В1ие&Ь является текстовым редактором на базе в1к+, ориентиро­
ванным на программистов и веб-дизайнеров и имеющим большое ко­
личество возможностей для написания веб-сайтов, скриптов и кода
программн. В ВЫеЙБЬ поддерживается множество языков програм­
мирования и языков разметки и, поэтому, он идеально подходит для
редактировании динамических и интерактивных веб-сайтов.
Известно, что пакет правильно собирается и работает на платфор­
ме иге-7.4.

Информация о пакете
• Загрузка (Н ТТР): http://www .bennewitz.com /bliiefish/stable/
5оигсе/ЫиеЙ511-2.2.4Лаг.Ьг2
• Контрольная сумма МБ5: аЬс06Ь90с38с3714Н9428(116а5сЬ311
• Размер загружаемого пакета: 3,6 МВ
• Оценочный размер требуемого дискового пространства: 70 МВ
• Оценочное время сборки: 0,8 БВ и

Зависимости пакета ЕЫиеНэИ


Обязательные
ОТК+-2.24.20 или ОТК+-3.8.4. Если установлены оба пакета, то
228 Глава 6. Текстовые редакторы

настройте команду конфигурирования configure так, чтобы по


умолчанию использовался пакет GTK+ 3.
Необязательные
enchant-1.6.0 (для проверки правописания), Gucharmap-3.8.2, Jing
и PCRE-8.33
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/w iki/bluefish

Установка пакета Bluefish


Установите пакет Bluefish с помощью следующих команд:
. / c o n f i g u r e - - p r e f i x = / u s r &&
make

В этом пакете набор тестов отсутствует.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l

Описание пакета
Установленная программа: bluefish
Установленные библиотеки: Нет
Установленные каталоги: /usr/lib/bluefish, /usr/share/bluefish,
/usr/share/doc/bluefish и /u sr/s h a re /
xml/bluefish

Краткое описание
bluefish Текстовый редактор GTK+ text для языков разметки и
языков программирования.
Перевод с оригинала от 2013-08-21 18:50:45 -0700

Пакет E d-1.9
Знакомимся с пакетом Ed
Ed является текстовым редактором, ориентированным на обработку
строк. Он используется для создания, отображения, модификации,
а также для других действий с текстовыми файлами, причем как в
интерактивном режиме, так и с использованием скриптов. Ed - это
не то, что используется многими. Он описывается здесь потому, что
Пакет Ed-1.9 229

им можно пользоваться в программе patch в случае, если вам встре­


тился файл с патчем, созданным с помощью éd. Это случается редко,
поскольку в настоящее время предпочитают использовать файлы с
патчами, создаваемые с помощью diff.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (H TTP): http ://ftp.gnu.org/pub/gnii/ed/ed-1.5.tar.gz
(H TTP): h ttp://ftp.gnu.0rg/pub/gnu/ed/ed-l.9.tar.gz
• Загрузка (FTP): http://ftp.gnu.0rg/pub/gnu/ed/ed-l.5.tar.gz
(FTP): ftp ://ftp.gnu.org/pub/gnu/ed/ed-1.9.tar.gz
• Контрольная сумма MD5: 565b6dld5a9a8816b9b304fc4ed9405d
• Размер загружаемого пакета: 92 КВ
• Оценочный размер требуемого дискового пространства: 2,3 MB
• Оценочное время сборки: менее 0,1 SBU
Замечания для пользователей:
http://w iki.linuxfrom scratch.org/blfs/w iki/ed

Установка пакета Ed
Установите пакет Ed с помощью следующих команд:
. / c o n f i g u r e - - p r e f i x = / u s r — b i n d i r = / b i n &&
make

Чтобы проверить результаты, выполните команду make check.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l

Описание пакета
Установленные программы: ed и red
Установленные библиотеки: Нет
Установленные каталоги: Нет
Краткое описание
ed Тестовый редактор, ориентированный на обработку строк,
red Является ограниченной версией ed - может редактировать
только файлы, расположенные в текущем каталоге, и не мо­
жет выполнять команды командной оболочки.
Перевод с оригинала от 2013-08-21 18:50:45 -0700
B E IH H IIlll Глава 6. Текстовые редакторы

Пакет Em acs-24.3
Знакомимся с пакетом Emacs
В пакете Emacs находится расширяемый, настраиваемый, самодоку-
ментированный текстовый редактор, работающий в режиме реально­
го времени.
Известно, что пакет правильно собирается и работает па платфор­
ме LFS-7.4.
Информация о пакете
• Загрузка (HTTP): http://ftp.gnu.org/pub/gnu/cm acs/em acs-
24.3.tar.xz
• Загрузка (FTP): ftp://ftp.gnu.Org/pub/gnu/emacs/emacs-24.3.tar.xz
• Контрольная сумма MD5: ea9ed000cal65280265aabb55b9afbd7
• Размер загружаемого пакета: 34 MB
• Оценочный размер требуемого дискового пространства: 458 MB
• Оценочное время сборки: 6,8 SBU

Зависимости пакета Emacs


Необязательные
Система X Window, libjpeg-turbo-1.3.0, libpng-1.6.4, LibTIFF-4.0.3
и libungif
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/w iki/em acs

Установка пакета Emacs


Установите пакет Emacs с помощью следующих команд:
. /c o n f i g u r e — p r e f i x = / u s r \
--lib e x e c d ir = /u sr /lib \
— l o c a l s t a t e d i r = / v a r &&
make b o o t s t r a p

Данный пакет поставляется без тестового набора.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l &&
chown - v -R r o o t : r o o t / u s r / s h a r e / e m a c s / 2 4 .3

Пояснение команд
— w i t h - g i f = n o : Этот параметр необходим в случае, если не уста­
новлен пакет libungif.
Пакет JOE-3.7

— libexecdir=/usr/lib: Размещает исполняемые модули в соот­


ветствие со стандартом Filesystem Hierarchy Standard (FHS).
— l o c a l s t a t e d i r = / v a r : Размещает файлы с итоговым счетом в
/ v a r / g a m e s / e m a c s , а НС в / u s r / v a r / g a m e s / e m a c s .

Описание пакета
Установленные программы: ctags, ebrowse, emacs, emacsclient,
etags, grep-changelog и rcs-checkin
Установленные библиотеки: Нет
Установленные каталоги: /usr/lib/em acs, /usr/share/em acs и /v a r /
games/emacs
Краткое описание
ctags Создает для исходного кода файлы базы данных, в
которых содержатся теги перекрестных ссылок.
ebrowse Выполняет в самом редакторе ешасз поиск внут­
ри иерархии классов С++.
emacs Текстовый редактор.
emacsclient Подключает сессию ешасв к уже работающему
экземпляру сервера етас88егуег.
etags Еще одна программа для генерации тегов пе­
рекрестных ссылок, используемых в исходном
коде.
grep-changelog Делает записи в журналах изменений, соответст­
вующие определенным критериям.
гсБ-сЬескт Скрипт командной оболочки, используемый для
проверки файлов в ИСБ (системе управления
версиями).
Перевод с оригинала от 2013-08-21 18:50:45 -0700

Пакет JO E-3.7
Знакомимся с пакетом JOE
JO E (сокращение от Jo e’s own editor - Собственный редактор Джо)
является небольшим текстовым редактором, который может эмули­
ровать работу WordStar, Pico и Emacs.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.
Е а И И й ! ^ , Глава 6. Текстовые редакторы

Информация о пакете
• Загрузка (H TTP): http://downlQads.sourceforge.net/joe-editor/
ioe-3.7,tar.gz
• Загрузка (FTP): ftp://m irror.ovh.net/gentoo-distfiles/distfiles/
ioe-3.7.tar.gz
• Контрольная сумма MD5: 66delb073e869bal2abbfcde3885c577
• Размер загружаемого пакета: 680 КВ
• Оценочный размер требуемого дискового пространства: 9 MB
• Оценочное время сборки: 0,2 SBU
Замечания для пользователей:
http://wiki.hniixfrom scratch.org/blfs/w iki/joe

Установка пакета JOE


Установите пакет JO E с помощью следующих команд:
. / c o n f i g u r e — s y s c o n f d i r = / e t c — p r e f i x = / u s r &&
make

В этом пакете набор тестов отсутствует.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l

Конфигурирование пакета JOE


Конфигурационные файлы
/ e t c / j о е / jm acsrc, / e t c / j о е / jo e r c , / e t c / j о е / j p ic o r c ,
/ e t c / j o e / j starre, /e tc /jo e /r jo e r c H ~ /.jo e r c

Описание пакета
Установленные программы: jmacs, joe, jpico, jstar, rjoe и termidx
Установленные библиотеки: Нет
Установленные каталоги: /etc/joe, /usr/share/joe и /usr/share/doc/joc

Краткое описание
jmacs Символическая ссылка на joe, используемая для запуска
режима эмуляции Emacs.
joe Является небольшим текстовым редактором, который мо­
жет эмулировать WordStar, Pico и Emacs.
jpico Символическая ссылка на joe, используемая для запуска
режима эмуляции Pico.
jstar Символическая ссылка на joe, используемая для запуска
режима эмуляции WordStar,
rjoe Символическая ссылка на joe, которая ограничивает ис­
пользование JO E только с файлами, указываемыми в ко­
мандной строке.
termidx Это программа, используемая редактором joe для созда­
ния индексного файла tcrmcap.
Перевод с оригинала от 2013-08-21 18:50:45 -0700

Пакет N ano-2.3.2
Знакомимся с пакетом Nano
В пакете Nano находится небольшой, простой текстовый редактор,
который предназначен для замены Pico - редактора, используемого
по умолчанию в пакете Pine.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (HTTP): http://ftp.gnu.Org/gnu/nano/nano-2.3.2.tar.gz
• Загрузка (FTP): ftp://ftp.gnu.0rg/gnu/nano/nano-2.3.2.tar.gz
• Контрольная сумма MD5: 6451aeae836471cadea8567c44a46c99
• Размер загружаемого пакета: 1,7 MB
• Оценочный размер требуемого дискового пространства: 12 MB
• Оценочное время сборки: 0,2 SBU

Зависимости пакета Nano


Необяза тельные
S-Lang-2.2.4
Замечания для пользователей:
h ttp ://wiki.linuxfrom scratch.org/blfs/wiki /Nano

Установка пакета Nano


Установите пакет Nano с помощью следующих команд:
./configure --p r e fix = /u sr \
— sy sco n fd ir= /etc \
— e n a b l e - u t f 8 &&
make
234 ШЯЩ ЩШШЩ Глава 6. Текстовые редакторы

В этом пакете набор тестов отсутствует.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l &&
i n s t a l l - v -m644 d o c / n a n o r c . sam p le / e t c &&
i n s t a l l - v -m755 - d / u s r / s h a r e / d o c / n a n o - 2 . 3 . 2 &&
i n s t a l l - v -m644 d o c / { , m a n / , t e x i n f o / } * . html / u s r / s h a r e / d o c / n a n o - 2 . 3 . 2

Пояснение команд
— e n a b l e - u t f 8: Э т о т переключатель включает поддержку коди­
ровки Unicode в Nano.
— w i t h - s l a n g = / u s r : Этот переключатель заставляет пакет Nano
использовать пакет S-Lang. Используйте этот пакет, если он
установлен.

Конфигурирование пакета nano


Конфигурационные файлы
/ e t c / n a n o r c И ~ / .n a n o r c

Подробнее о конфигурировании
Пример конфигурирования (создается как общесистемный файл
/ e t c / n a n o / n a n o r c или персональный файл - / .nanorc)

set a u toind en t
set const
set f i l l 72
set h isto r y lo g
set m u ltib u ffer
set noh elp
set regexp
set smooth
set suspend

Другим примером является файл n a n o r c .sample, который распо­


ложен в каталоге /etc/nano. В нем показано, как задавать использо­
вание цвета, а в комментариях приведена некоторая дополнительная
документация.

Описание пакета
Установленные программы: nano и гпапо
Установленные библиотеки: Нет
Установленные каталоги: /u sr/share/nano и
/usr/share/doc/nano-2.3.2
Пакет Vim-7.4 тшшш и т 235

Краткое описание
nano Это небольшой, простой текстовый редактор, который
призван заменить Pico-редактор, используемый по умол­
чанию в пакете Pine,
rnano Ограниченный режим пакета nano.
Перевод с оригинала от 2013-04-27 18:04:22 +0000

Пакет Vim -7.4


Знакомимся с пакетом Vim
В пакете Vim, который является сокращением VI IMproved (улуч­
шенный VI), находится клон vi, имеющий дополнительные функции
в сравнении с оригинальным vi.
В инструкциях, используемых по умолчанию для установки LFS,
редактор vim устанавливается как часть базовой системы. Если вы
предпочитаете скомпоновать vim с X, вы должны перекомпилиро­
вать vim с включенным параметром GUI. Специальных инструкций
не нужно, поскольку поддержка X определяется автоматически.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (FTP): ftp://ftp.vim.0rg/pub/vim/unix/vim-7.4.tar.bz2
• Контрольная сумма MD5: 607el35c559be642f210094ad023dc65
• Размер загружаемого пакета: 9,4 MB
• Оценочный размер требуемого дискового пространства: 90 MB
• Оценочное время сборки: 1,7 SBU

Дополнительные загрузки
• Переведенные сообщения Vim: ftp://ftp.vim .org/pub/vim /extra/
vim-7.2-lang.tar.gz

Зависимости пакета Vim


Р еком ендуем ы е
Система X Window
Необязательные
GTK+-2.24.20 или LessTif, Python-2.7.5, Tcl-8.6.0, Ruby-2.0.0 и
GPM-1.20.7
236 Глава 6. Текстовые редакторы

Замечания для пользователей:


http://wiki.linuxfrom scratch.org/blfs /w iki/vim

Установка пакета Vim


Замечание
Если вы перекомпилируете Vim с X и ваши библиотеки X расположе­
ны не в корневом разделе, у вас исчезнет возможность использо­
вать тестовый редактор в аварийных ситуациях. Вы можете выбрать
для установки другой редактор, а не компилировать Vim с X, либо
можете переместить текущий исполняемый модуль Vim в каталог
/ b i n под другим именем, например, v i .

Если желаете, распакуйте архив с переведенными сообщениями:


tar -x f . . / v i m - 7 . 2 - l a n g . t a r . gz - - s t r i p - c o m p o n e n t s = l

Установите пакет Vim с помощью следующих команд:


e c h o '#define SYS_VIMRC_FILE " / e t c / v i m r c " ' » s r e / f e a t u r e . h &&
e c h o '#define SYS_GVTMRC_FILE " / e t c / g v i m r c " ' » s r e / f e a t u r e . h &&
. /c o n f i g u r e - - p r e f i x = / u s r — w i t h - f e a t u r e s = h u g e &&
make

Чтобы проверить результаты, выполните команду make test. На­


бор тестов пакета vim выдает на экран большое количество данных,
из-за чего могут возникнуть проблемы с настройками текущего тер­
минала. Их можно решить с помощью перенаправления выходного
потока в журнальный файл. Даже если с каким-нибудь из тестов
возникнут проблемы при создании файла t e s t . o u t в каталоге s r e /
t e s t d i r , оставшиеся тесты все равно будут выполняться. Если все
будет в порядке, последним сообщением в файле будет ALL DONE (Все
выполнено).
ПРИМЕЧАНИЕ: Предполагается, что некоторые из тесторов,
проверяющие цвета, будут выполняться под эмулятором тер­
минала xterm.
Теперь в роли пользователя r o o t выполните:
make i n s t a l l

По умолчанию, документация vim устанавливается в каталог / u s r /


s h a r e / v i m . Следующая символическая ссылка позволит получить
доступ К ней по / u s r / s h a r e / d o c / v i m - 7 . 3, что аналогично доступу к
документации для других пакетов:
In - s n f v . . / v i m / v i m 7 3 / d o c / u s r / s h a r e / d o c / v i m - 7 .4
Пакет Vim-7.4 237

Если вы хотите обновить файлы времени выполнения, выполните


следующую команду (требуется rsync-3.0.9):
rsync -avzcP — d e l e t e - - e x c lu d e = " /d o s /" — e x c l u d e = " / s p e l l / " \
f t p . n l u u g . n l :: V i m / r u n t i m e / . / r u n t i m e /

Чтобы установить файлы времени выполнения и пересоздать файл


tags, в роли пользователя r o o t выполните:
make -С s r c i n s t a l l r u n t i m e &&
vim - с " i h e l p t a g s / u s r / s h a r e / d o c / v i m - 7 . 4" - с " : q"

Пояснение команд
— w i t h - f e a t u r e s = h u g e : Этот переключатель включает все до­
полнительные функции, доступные в Vim.
— e n a b l e - g u i = n o : Этот параметр позволит запретить компиля­
цию графического пользовательского интерфейса. Тем не ме­
нее, vim все еще будет компоноваться с X, так что, по-прежне­
му, будут доступны некоторые возможности, например, модель
клиент-сервер или использование буфера xl l .
— w i t h o u t - x : Если вы предпочитаете не компоновать Vim с X, то
используйте этот параметр.
— en a b l e - p e r l i n t e r p , — enable-pythoninterp, — enable-
tclinterp, — e n a b l e - r u b y i n t e r p : С помощью этих парамет­
ров добавляются интерпретаторы Perl, Python, Tel или Ruby,
что позволяет в скриптах vim использовать код на этих языках.

Конфигурирование пакета Vim


Конфигурационные файлы
/ e t c / v i m r c И ~ / .v i m r c

Подробнее о конфигурировании
В vim есть интегрированное средство проверки орфографии, кото­
рое вы можете включить, если в окне vim наберете следующую ко­
манду:
: s e t l o c a l s p e l l sp ellla n g = r u

Этот параметр включает для текущей сессии проверку орфогра­


фии русского языка.
По умолчанию в Vim устанавливаются файлы только для проверки
орфографии английского языка. Если для некоторого языка файл про­
верки орфографии отсутствует, то Vim вызовет плагин $ v i m r u n t i m e /
В Ш И 1 И ш < ч ::| И Глава 6. Текстовые редакторы

и попытается получить с ftp сервера vim файл


p l u g i n / s p e l l f i l e . vim
*.spl и необязательный файл *.sug.
Либо вы можете вручную загрузить файлы *.spl и *.sug из ftp ://ftp .
vim .org/pub/vim /runtim e/spell/ и сохранить их в каталоге - / . v i m /
s p e l l или в каталоге / u s r / s h a r e / v i m / v i m 7 4 / s p e l l / .
Чтобы узнать, что нового в версии пакета Vim-7.4, введите следу­
ющую команду:
:help v e r s io n - 7 .4

Дополнительную информацию о настройке конфигурационных


файлов Vim смотрите в «Файлы /etc/vim rc и -/.vim rc» и на h ttp ://
www.vi-improved.org/vimrc.php.

Описание пакета
Список переустановленных файлов вместе с их кратким описани­
ем можно найти в инструкциях по устапновки пакета Vim в проекте
LFS.
Установленные программы: gview, gvim, gvimdiff, rgview и rgvim
Установленные библиотеки: Нет
Установленный каталог: /usr/share/vim
Краткое описание
gview Запускает gvim в режиме только для чтения,
gvim Редактор, который запускается под X и имеет в своем
составе графический интерфейс,
gvimdiff Редактирует две или три версии файла с помощью gvim
и показывает различия,
rgview Версия gview с ограниченными функциональными воз­
можностями.
rgvim Версия gvim с ограниченными функциональными воз­
можностями.
Перевод с оригинала от 2013-08-21 18:50:45 -0700

Другие редакторы
Редактор pico является текстовым редактором, устанавливаемым как
часть пакета Re-alpine-2.03.
Редактор mcedit является текстовым редактором, устанавливае­
мым как часть пакета МС-4.8.10.
Перевод с оригинала от 2012-04-17 10:53:55 -0700
ГЛАВА 7.
Командны е оболочки
Мы все знакомы с командной оболочкой Bourne Again SHell, но есть
два других пользовательских интерфейса, которые считаются удоб­
ными современными оболочками - оболочка Berkeley Unix С и обо­
лочка Korn. В этой главе устанавливаются пакеты, совместимые с
этими дополнительными типами командных оболочек.

Пакет D ash-0.5.7
Знакомимся с пакетом Dash
Dash является командной оболочкой, совместимой с POSIX. Ее мож­
но установить в /b in /s h или в качестве оболочки, используемой по
умолчанию либо пользователем r o o t , либо любым другим пользо­
вателем, имеющим идентификатор пользователя равный 0. Эта ко­
мандная оболочка зависит от гораздо меньшего числа библиотек, чем
Bash, и поэтому она, скорее всего, не пострадает в случае обновления
системы или сбоя жесткого диска. Командная оболочка Dash также
полезна для проверки того, что скрипт полностью совместим с син­
таксисом POSIX.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.
Информация о пакете
• Загрузка (H TTP): http://gondor.apana.org.au/~herbert/dash/
files/d ash -0.5.7.tar.gz
• Контрольная сумма MD5: f6cedbl0ae7258adb5abl7al0ae80d51
• Размер загружаемого пакета: 224 КВ
• Оценочный размер требуемого дискового пространства: 3,5 MB
• Оценочное время сборки: 0,1 SBU
Зависимости пакета Dash
Необяза тельные
libedit (библиотека редактора командных строк)
Глава 7. Командные оболочки

Замечания для пользователей:


http://wiki.linuxfrom scratch.org/blfs/w iki/dash

Установка пакета Dash


Установите пакет Dash с помощью следующих команд:
. /c o n f i g u r e - - b i n d i r = / b i n - - m a n d i r = / u s r / s h a r e / m a n &&
make

В этом пакете набор тестов отсутствует.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l

Если вы хотите сделать dash командной оболочкой, запускаемой


по умолчанию как sh, то в роли пользователя r o o t пересоздайте сим­
волическую ссылку / b i n / s h :
ж « ' ,ж ; mammm Ш ьгмт шжтт ж я»» тжттш
Замечание
Если вы измените символическую ссылку с dash на sh, вам нужно
будет перенастроить ссылку на bash с тем, чтобы можно было со­
бирать LFS.

In - s v f d a s h / b i n / s h

Пояснение команд
— b i n d i r = / b i n : Этот параметр помещает двоичный модуль dash
в корневую файловую систему.
— w i t h - l i b e d i t : Этот параметр используется для компиляции
Dash с поддержкой libedit.

Конфигурирование пакета Dash


Конфигурационные файлы
В файлах с исходным кодом / e t c / p r o f i l e и ~/ . p r o f i l e
Подробнее о конфигурировании
Обновите файл / e t c / s h e l l s чтобы добавить в него командную
оболочку Dash; для этого выполните следующую команду в роли
пользователя r o o t :
cat » /etc/shells « "EOF"
/b in /d ash
EOF
Пакет Tcsh-6.1 8.01 24 1

Описание пакета
Установленная программа: dash
Установленные библиотеки: Нет
Установленные каталоги: Нет

Краткое описание
dash Командная оболочка, совместимая с POSIX.
Перевод с оригинала от 2013-08-21 09:31:34 -0700

Пакет Tcsh-6.18.01
Знакомимся с пакетом Tcsh
В пакете Tcsh находится «расширенная и полностью совместимая
версия командной оболочки Berkeley Unix С shell (csh)». Она ис­
пользуется вместо командной оболочки bash в качестве альтернатив­
ной командной оболочки теми, кто предпочитает синтаксис языка С,
а также из-за того, что она необходима для некоторых программ на
языке С для выполнения инсталляционных задач.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (H TTP): http://www .sfr-fresh.com /unix/m isc/tcsh-
6.18.01.tar.gz
• Загрузка (FTP): ftp: / / ftp.astron.com/pub/tcsh/tcsh-6.18.01 .tar.gz
• Контрольная сумма MD5:6eed09dbd4223ab5b6955378450d228a
• Размер загружаемого пакета: 912 КВ
• Оценочный размер требуемого дискового пространства: 12,6 MB
• Оценочное время сборки: 0,2 SBU
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/wiki /tcsh

Установка пакета Tcsh


Установите пакет Tcsh с помощью следующих команд:
s e d - i - е ' s | \ $ \ * | # & r - е ' s I f R / g | &m| ' t c s h . m a n 2 h t m l &&
. /c o n f i g u r e — p r e f i x = / u s r — b i n d i r = / b i n &&
make &&
sh . / t c s h . m a n 2 h t m l
242 Глава 7. Командные оболочки

Чтобы проверить результаты, выполните: make check.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l i n s t a l l . m a n &&
In - v - s f t c s h / b i n / c s h &&
In - v - s f t c s h . l / u s r / s h a r e /m a n /m a n l/ c s h . 1 &&
i n s t a l l -v -m755 -d / u s r / s h a r e / d o c / t c s h - 6 . 1 8 . 0 1 / h t m l &&
i n s t a l l -v -m644 tcsh .h tm l/* / u s r / s h a r e / d o c / t c s h - 6 . 1 8 . 01/htm
i n s t a l l -v -m644 FAQ / u s r / s h a r e / d o c / t c s h - 6 . 1 8 . 0 1

Пояснение команд
sed -i -e ‘s|\$ \* |# & |’ -e ‘slfR/gl&ml’ tcsh.man2html: Этот параметр
обновляет некоторый устаревший код Perl.
— b i n d i r = / b i n : Этот параметр указывает устанавливать про­
грамму tcsh в каталог / b i n , а не в каталог / u s r / b i n .
sh ./tcsh.man2html: Этот параметр указывает создавать докумен­
тацию в формате HTM L из форматированных страниц man.
ln -v -sf tcsh /bin/csh: В стандарте FHS указывается, что если есть
командная оболочка С, то в каталоге / b i n / c s h должна быть
символическая ссылка, указывающая наэту командную обо­
лочку. Эта команда создает символическую ссылку

Конфигурирование пакета Tcsh


Конфигурационные файлы
Для командной оболочки С есть многочисленные конфигураци­
онные файлы. Примерами являются следующие файлы: / e t c / c s h .
eshre, / e t c / c s h . login, / e t c / c s h . logout, - / . t c s h r c , - / . c s h r c ,
- / . h i s t o r y , - / . c s h d i r s , - / . l o g i n и - / . l o g o u t . Более подробную
информацию об этих файлах можно найти на man странице t c s h ( 1 ).

Подробнее о конфигурировании
Обновите файл / e t c / s h e l l s для того, чтобы добавить в него име­
на программы командной оболочки С (в роли пользователя r o o t ) :
cat » /etc/shells « "EOF"
/b in /tesh
/b in /csh
EOF

Описание пакета
Установленная программа: tcsh
Установленные библиотеки: Нет
Установленный каталог: /u sr/sh are/d o c/tcsh -6 .18.01
Пакет zsh-5.0.2 243

Краткое описание
tcsh Является расширенной версией командной оболочки
Berkeley Unix С - csh. Она может использоваться и как ин­
терактивная оболочка и как программа обработки скриптов.
Перевод с оригинала от 2013-08-21 09:31:34 -0700

Пакет zsh -5.0.2


Знакомимся с пакетом zsh
В пакете zsh находится интерпретатор команд (командная оболочка),
используемая как интерактивная оболочка регистрации в системе и
как командный процессор скриптов командной оболочки. Являясь
одной из стандартных командных оболочек, zsh наиболее близка к
командной оболочке ksh, но содержит множество расширений.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (H TTP): http://downfoads.sourceforge.net/zsh/zsh-
5.0.2.tar.bz2
• Контрольная сумма MD5: b8f2ad69 Iacf58b3252225746480dcad
• Размер загружаемого пакета: 2,9 MB
• Оценочный размер требуемого дискового пространства: 65 MB
(включая установку документации)
• Оценочное время сборки: 1,1 SBU
Дополнительные загрузки
• Требуемый патч: http://www .hnuxfrom scratch.org/patchcs/
blfs/svn/zsh-5.0.2-makeinfo-1.patch
• Дополнительная документация: http://downloads.sourceforge.
net/zsh/zsh-5.0.2-doc.tar.bz2
• Контрольная сумма MD5 для документации:
Ь6818cbbea635b2f70883bb913d0a04a

Зависимости пакета zsh


Необяза тельные
PCRE-8.33 и libcap2-2.22
Замечания для пользователей:
h ttp ://wiki.linuxfrom scratch.org/blfs/wiki /zsh
244 Глава 7. Командные оболочки

Установка пакета zsh


Если вы скачали дополнительную документацию, то распакуйте ее с
помощью следующей команды:
ta r — strip -com p on en ts= l -x v f . . / z s h - 5 . О. 2 - d o c . t a r . b z 2

Установите пакет zsh с помощью следующих команд:


p a tc h -N pl - i . . / z s h - 5 . 0 . 2 - m a k e i n f o - l . p a t c h &&

. /c o n f ig u r e - - p r e f i x = / u s r \
--b in d ir= /b in \
--sy sc o n fd ir = /e tc /z sh \
- -e n a b le -e tc d ir = /e tc /z sh &&
make &&
m akeinfo D o c /z s h .te x i --htm l - o D o c /h t m l &&
m akeinfo D o c /z s h .t e x i --h tm l - - n o - s p l i t — no-headers \
-o D o c /zsh .h tm l &&
m akeinfo D o c /z s h .te x i - - p la in t e x t -o D o c /z s h .tx t

Если у вас есть установленный пакет texlive-20130530. вы можете


собрать документацию в формате PD F с помощью следующей коман­
ды:
te x i2 p d f D o c /z s h .t e x i -о D o c/zsh .p d f

Чтобы проверить результаты, выполните команду make check.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l &&
make i n f o d i r = / u s r / s h a r e / i n f o i n s t a l l . i n f o

i n s t a l l - v -m755 - d / u s r / s h a r e / d o c / z s h - 5 . 0 . 2 / h t m l &&
i n s t a l l - v -m644 D o c /h tm l/* \
/ u s r / s h a r e / d o c / z s h - 5 . 0 . 2 / h t m l &&
i n s t a l l - v -m644 D o c /zsh . { htm l, t x t } \
/u s r /s h a r e /d o c /z s h - 5 .0 .2

Если вы скачали дополнительную документацию, то установите ее


в роли пользователя r o o t с помощью следующих команд:
make h t m l d i r = / u s r / s h a r e / d o c / z s h - 5 . 0 . 2 / h t m l i n s t a l l . h t m l &&
i n s t a l l - v -m644 D o c / z s h . d v i / u s r / s h a r e / d o c / z s h - 5 . 0 . 2

Если вы собрали документацию в формате PDF, то установите ее с по­


мощью следующей команды, выполненной в роли пользователя root:
i n s t a l l - v -m644 D o c / z s h . p d f \
/ u s r /s h a r e /d o c /z s h - 5 .0 .2
Пояснение команд
— s y s c o n f d i r = / e t c / z s h и — e n a b l e - e t c d i r = / e t c / z s h : Эти
параметры используются для того, чтобы все конфигураци­
онные файлы zsh были объединены в каталоге / e t c / z s h . Не
указывайте эти параметры, если вы хотите сохранить истори­
ческую совместимость, согласно которой все файлы должны
располагаться в каталоге / e t c .
— b i n d i r = / b i n : Этот параметр указывает, что двоичные модули
zsh будут размещены в корневой файловой системе.
— e n a b l e - c a p : Этот параметр обеспечивает совместимость с
POSIX.
— d i s a b l e - g d b m : Этот параметр отключает использование биб­
лиотеки GDBM.
— e n a b l e - p c r e : Этот параметр позволяет использовать во встро­
енных командных оболочках библиотеку регулярных выраже­
ний рсге.

Несколько дисковых разделов


Динамическая компоновка пакета zsh с рсге и/или gdbm созда­
ет зависимость времени выполнения соответственно от библиотек
l i b p c r e . s o и/или l i b g d b m . s o , которые обе находятся в иерархии
каталога / u s r . Если / u s r является отдельной точки монтирования,
a zsh должен быть доступен во время загрузки, то библиотеки, подде­
рживающие работу с пакетом, также должны находиться в каталоге
/ l i b . Вы можете переместить библиотеки следующим образом:
mv - v / u s r / l i b / l i b p c r e . s o . * / l i b &&
In -v -sf ../ ../ l i b / l i b p c r e .s o . 0 / u s r / l i b / l i b p c r e . s o

m v -v / u s r / l i b / l i b g d b m . s o .* /lib &&
In -v -sf ../ ../lib/libgdbm.so.3 /usr/lib/libgdbm.so

Либо вы можете статически скомпоновать zsh с Р рсге и с gdbm,


если вы измените файл c o n f i g . m o d u l e s (вам сначала потребуется вы­
полнить конфигурирование с тем, чтобы сгенерировать этот файл).

Конфигурирование пакета zsh


Конфигурационные файлы
Для zsh есть целый ряд конфигурационных файлов, в том числе
/e tc /z sh /z sh e n v , /e tc /z sh /z p r o file , /e tc /z s h /z s h r c , /e t c /z s h /
z lo g in и / e t c / z s h / z l o g o u t . Более подробную информацию о них
246 И i l l |! Глава 7. Командные оболочки

вы можете найти с помощью команды zsh ( 1 ) и на соответствующих


страницах руководств.

Подробнее о конфигурировании
Обновите файл / e t c / s h e l l s с тем, чтобы добавить в него имена
программы командной оболочки zsh (в роли пользователя r o o t ) :
cat » /e tc /s h e lls « "EOF"
/b in /zsh
/ b i n / z s h - 5 .0 .2
EOF

Описание пакета
Установленные программы: zsh и zsh-5.0.2
Установленные библиотеки: Многочисленные модули вспомога­
тельных плагинов
Установленные каталоги: /etc/zsh, /usr/lib/zsh, /u sr/sh a re /d o c /
zsh-5.0.2 и /usr/share/zsh

Краткое описание
zsh Является командной оболочкой, в которой есть построчное
редактирование команд, встроенная проверка орфографии,
программируемое завершение ввода команд, возможность
использовать в командной оболочке функций (с автозагруз­
кой), механизм истории команд и множество других функ­
ций.
Перевод с оригинала от 2013-08-2 1 09:31:34 -0700
ГЛАВА 8.
Виртуализация

Виртуализация позволяет в другой операционной среде запускать


как задачу полноценную операционную систему или виртуальную
машину (VM). Есть несколько коммерческих и открытых сред, кото­
рые либо эмулируют другой процессор, либо используют аппаратные
возможности виртуализации, имеющиеся в хостовом процессоре.

Пакет qem u-1.6 .0


Знакомимся с пакетом qemu
Пакет qemu является полным виртуализационным решением для
системы Linux, работающим на аппаратном обеспечении х 86 , в кото­
ром есть аппаратная поддержка расширенных виртуализационных
возможностей (Intel VT или AMD-V).
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (HTTP): http://wiki.qemu.org/download/qemu-1.6.0.tar.
bz2
• Контрольная сумма MD5: f3f39308472d629aca57a255a0c91ba9
• Размер загружаемого пакета: 11,5 MB
• Оценочный размер требуемого дискового пространства: 192 MB
• Оценочное время сборки: 1,7 SBU

Зависимости пакета qemu


Обязательные
GLib-2.36.4, Python-2.7.5, SD L-1.2.15 и система X Window
Необязательные
ALSA-1.0.27, attr-2.4.47, Check-0.9.10, cURL-7.32.0, EsounD-0.2.41,
248 Глава 8. Виртуализация

MesaLib-9.2.0 и Cyrus SASL-2.1.26. Обратите внимание на то, что


этот список необязательных зависимостей неполон. Более полный
список можно получить при помощи команды ./configure —help.
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/w iki/qem u

Предварительные требования KVM


Пред тем, как собирать пакет qemu, проверьте, если в вашем процессо­
ре поддержка технологии Virtualization Technology (VT):
egrep ' Aflags . * (vmx | svm) ' / p r o c / c p u i n f о

Если полученный результат не будет пустым, то у вас поддержива­


ется технология VT (vmx - для процессоров Intel и svm - для процес­
соров AMD). Затем вам нужно будет перейти в BIOS вашей системы
и включить эту поддержку. После того, как это будет сделано, снова
перезагрузитесь в ваш экземпляр системы LES.

Конфигурирование ядра
Включите следующие параметры в конфигурации ядра и перекомпи­
лируйте ядро, если это необходимо:
V ir tu a liz a tio n : Y
K e r n e l - b a s e d V i r t u a l Machine (KVM) s u p p o r t : Mor Y
KVM f o r I n t e l p r o c e s s o r s s u p p o r t : Mor Y
KVM f o r AMD p r o c e s s o r s s u p p o r t : Mor Y

Обе настройки для Intel и AMD не нужны, но одна из них нужна,


которая должна соответствовать процессору вашей системы.
Для сетевых настроек проверьте, чтобы были включены настройки
C 0N F1G JBR ID G E, CONFIG_STP, CONFIG_TUN и был установлен
пакет bridge-utils-1.5.

Установка пакета qemu


Если пакет xorg установлен не в каталоге / u s r , то компоновщику
нужно сообщить, где он установлен. Например:
e x p o r t LIBR ARY _PA TH=/opt/xorg/lib

Установите пакет qemu с помощью следующих команд:


. ./ c o n f ig u r e - - p r e f i x = / u s r \
— sy sco n fd ir= /etc \
— target-list=x86_64-softmmu &&
make

Чтобы проверить сборку, выполните команду make V=1 check.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l

З ам ечан ие
Для удобства вы можете создать символическую ссылку, позволяю­
щую запускать ч е ти -5 у з 1 е т -х 8 6 _ 6 4 :
1п - s v q e m u - s y s te m -x 8 6_64 / и э г / Ы п / д е т и
шшттшшжь
Пояснение команд
Э то т необязательный пара­
— t a r g e t - l i s t = x 8 6_64-softm m u:
метр ограничивает сборку пакета только для архитектуры
х86_64. При эмуляции другого аппаратного обеспечения со­
трите список —target-list, который выдается командой help в
команде configure. Если не указывать этот параметр, то пакет
будет собран для всех вариантов архитектур.

Конфигурирование пакета qemu


Чтобы сгенерировать образ, запустите:
qemu-img c r e a t e - f qcow2 v d i s k . i m g 10G

Выберите размер виртуального диска и имя файла по своему вкусу.


Действительный размер файла будет меньше, чем указывается, но он
будет расширяться по мере его использования.

Зам ечание
В следующих инструкциях предполагается, что вы создали необяза­
тельную символическую ссылку qemu. Кроме того, вы должны запус­
кать команду qemu из основного терминала X-Windows.

Чтобы установить операционную систему, загрузите образ iso, ко­


торый вам нужен, или используйте предварительно установленное
устройство cdrom. В нашем примере используется система Fedora 16,
которая загруженав текущий каталог в виде образа F e d o r a - 1 6 - х 8 6 _
6 4 - L i v e - L X D E . i s o . Запустите следующую команду:

qemu - e n a b l e - k v m -h d a v d i s k . i m g \
- cdrom F e d o r a - 1 6 - x 8 6 6 4 -L ive-L X D E . i s o \
250 Глава 8. Виртуализация

-b o o t d \
-ш 384
Следуйте обычной процедуре установке для выбранного дистрибу­
тива. В необязательном параметре -boot указывается порядок загрузки
устройств, который представляет собой строку с буквами устройств.
Допустимыми буквами будут следующие: а, b (гибкие диски 1 и 2), с
(первый жесткий диск), d (первый CD-ROM). В необязательном пара­
метре -ш указывается общее количество памяти, которое будет выделе­
но для виртуальной машины. Если у вас есть достаточно памяти memory
(2 GB или больше ), то 1 GB будет вполне достаточно. Для компьюте­
ров с 512 MB оперативной памяти безопаснее использовать - т 192 или
даже - т 128 (значение, используемое по умолчанию). Необязательный
параметр -enable-kvm позволяет включать аппаратное ускорение. Без
этого переключателя эмуляция будет сравнительно медленной.
Чтобы запустить вновь установленную операционную систему, вы­
полните следующую команду:
qemu - e n a b l e - k v m v d i s k . i m g -m 384

Чтобы добавить сеть к этому экземпляру системы, в команду, ука­


занную выше, добавьте параметры “-net nie -net user”. Пакет qemu
предоставит сервер D H C P для VM и, в зависимости от клиентской
системы, настроит сетевое соединение с хостом.
Единственная проблема, связанная с сетевым соединением, со­
зданным выше, состоит в том, что будет отсутствовать подключение
к локальной сети. Чтобы создать такое подключение, нужно будет
выполнить несколько дополнительных шагов настройки, которые
осуществляются в роли пользователя r o o t :
• Настройте мостовое соединение с помощью bridge-utils-1.5.
• Разрешите хостовой системе перенаправлять пакеты IP.
s y s c t l -w n e t . i p v 4 . i p _ f o r w a r d = l

Чтобы эти изменения стали постоянными, добавьте в файл


/ e t c / s y s s y s c t l . c o n f следующую команду:

c a t » / e t c / s y s c t l . c o n f << EOF
n e t . i p v 4 . ip_forw ard = l
EOF

• Создайте скрипт для qemu, который будет подключать клиен­


тское сетевое устройство, которое обычно видно tapO, к мосту
хостовой системы.
c a t > / e t c / q e m u - i f u p << EOF
Пакет qemu-1.6.0

# ! /b in /b a sh

sw itch= brO

if [ -n "\$1" ]; th en
# Добавьте к м осту новый интерфейс tapO
/ s b i n / i p l i n k s e t \ $ 1 up
sle ep 0.5 s
/ u s r / s b i n / b r c t l a d d if \$ sw itc h \$1
e lse
e c h o "Error: no i n t e r f a c e s p e c i f ie d "
e x it 1
fi

ex it 0
EOF

chmod +x / e t c / q e m u - i f u p

c a t > / e t c / q e m u - i f d o w n << EOF


# ! /b in /b a sh

sw itch= brO

if [ -n "\$1" ]; th e n
# у д алите из моста интерфейс tapO
/ u s r / s b i n / b r c t l d e l i f \$ sw itc h \$1
e lse
e c h o "E rror: no i n t e r f a c e s p e c i f ie d "
e x it 1
fi

e x it 0
EOF

chmod +x / e t c / q e m u - i f d o w n

Зам ечан ие
Символы обратного слеша используются в приведенном выше скрип­
те для удобства выполнения операций копирования. В окончатель­
ной версии скрипта символов обратного слеша быть не должно.

• Запустите qemu с параметрами "-net nic -net tap".


• Если из локальной сети к клиентской VM желательны такие
подключения, как, например, ssh, то клиентскую систему нуж­
но, вероятно, сконфигурировать с использованием статичес­
кого адреса IP.
Глава 8. Виртуализация

Описание пакета
Установленные программы: qemu-ga, qemu-img, qemu-io,
qemu-nbd, qemu-system-x86_64
Установленные библиотеки: Нет
Установленные каталоги: /etc/qem u, /usr/share/qem u, /u s r/sh a re /
doc/qemu

Краткое описание
qemu-ga Реализует поддержку команд и событий
QMP (QEMU Monitor Protocol - протокол
мониторинга QEMU), которые соответст­
венно выполняются и происходят в гостевой
системе с помощью агента, собранного как
часть QEMU.
qemu-img Предоставляет команды для управления
образами дисков QEMU.
qemu-io Диагностическая и настроечная программа
для работы с (виртуальными) устройства­
ми памяти. Все еще на ранней стадии раз­
работки.
qemu-nbd Экспортирует образы дисков Qemu при
помощи протокола сетевых блочных уст­
ройств Network Block Device (NBD) для
дисков QEMU.
qemu-system-x86_64 Эмулятор QEMU PC System.
Перевод с оригинала от 2013-09-05 10:04:34 -0700
ЧАСТЬ III.
Библиотеки
и утилиты
общего
назначения
ГЛАВА 9.
Библиотеки
общего назначения

В библиотеках находятся модули, которые обычно необходимы бо­


лее чем для одной программы. Преимущество в использовании биб­
лиотек в том, что в каждой программе не нужно дублировать код
(и увеличивать риск появления ошибок); программа должна просто
вызывать функции из библиотек, установленных в системе. Наиболее
очевидным примером набора библиотек является библиотека Glibc,
которая была установлена во время изучения книги LFS. В этой биб­
лиотеке находятся все библиотечные функции языка С, которые ис­
пользуются в программах.
Есть два типа библиотек: статические и динамически подключа­
емые (или разделяемые). Динамически подключаемые библиотеки
(обычно lib x x x . so) загружаются в память во время выполнения про­
граммы из общедоступной (разделяемой) копии (отсюда и название).
Статические библиотеки ( l i b x x x .а) в действительности прикомпо-
новываются к самому исполняемому файлу программы, в результате
чего файл программы становится больше. Довольно часто, вы можете
обнаружить в вашей системе как статическую, так и динамическую
копию одной и той же библиотеки.
Обычно, когда вы устанавливаете программы, для которых нужны
функции, реализованные в виде библиотек, вам нужно будет устано­
вить эти библиотеки. В книге BLFS для каждого пакета приводится
список (известных) зависимостей. Таким образом, вы можете перед
установкой конкретной программы узнать, какие нужны библиоте­
ки. Если вы устанавливаете какой-нибудь пакет, для которого в BLFS
инструкций нет, то подробную информацию о требованиях к про­
грамме обычно можно посмотреть в файле README или in s t a l l .
Есть ряд библиотек, которые в определенный момент потребуются
почти каждому. В этой главе мы перечислим эти и некоторые другие
библиотеки и объясним, почему вам нужно их установить.
Пакет A pr-1.4.8
Знакомимся с пакетом Apr
Пакет Apache Portable Runtime (APR) является библиотекой подде­
ржки веб-сервера Apache. В нем предоставляется набор интерфейсов
программирования приложений (API), которые отображаются в на­
ходящуюся ниже операционную (ОС). Когда в ОС не поддерживает­
ся конкретная функция, то в APR предоставляется ее эмуляция. Поэ­
тому программисты могут пользоваться пакетом APR для того, чтобы
делать программы, переносимые на различные платформы.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (HTTP): http://archive.apache.org/dist/apr/apr-1.4.8.
tar.bz 2
• Загрузка (FTP): ftp://ftp.mirrorservice.org/sites/ftp.apache.org/
арг/арг-1.4.8.tar.bz2
• Контрольная сумма MD5: ce2ab()la0c3cdb71cf0a6326b8654f41
• Размер загружаемого пакета: 760 КВ
• Оценочный размер требуемого дискового пространства: 14 MB
• Оценочное время сборки: 0,2 SBU (с тестами - 1,4 SBU)
Замечания для пользователей:
http://wiki.liniixfrom scratch.org/blfs/w iki/apr

Установка пакета Apr


Установите пакет Apr с помощью следующих команд:
./configure --prefix=/usr --disable-static \
— with-installbuilddir=/usг/share/арг-1/build &&
make

Чтобы проверить результаты, наберите команду: make test.


Теперь в роли пользователя ro o t выполните:
make install

Пояснение команд
— d i s a b l e - s t a t i c : Эта команда предотвращает компиляцию
статической версии библиотеки l i b a p r - l .
Глава 9. Библиотеки общего назначения

Описание пакета
Установленная программа: apr-1-config
Установленная библиотека: libapr-l.so
Установленные каталоги: /usr/include/apr-1 и /usr/share/apr-1

Краткое описание
apr-1-config Скрипт командной оболочки, используемый для
поиска информации о арг в системе. Он обычно ис­
пользуется для компиляции и компоновки с этой
библиотекой.
lib a p r-l.s o Переносимая библиотека времени выполнения
Apache Portable Runtime.
Перевод с оригинала от 2013-08-17 21:37:04 -0700

Пакет A pr-U til-1.5.2


Знакомимся с пакетом Apr Util
В пакете библиотеки Apache Portable Runtime U tility Library предот-
савляется понятный и согласованный интерфейс для лежащих глубже
интерфейсов клиентской библиотеки. С помощью этого интерфейса
прикладного программирования реализовано если не идентичное, то
предсказуемое поведение интерфейса, который не зависит от того, ка­
кие библиотеки доступны на данной платформе.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (H TTP): http://archive.apache.org/dist/apr/apr-util-
1.5.2.tar.bz2
• Контрольная сумма MD5:89cl348aa79e898d7c34a6206311с9с2
• Размер загружаемого пакета: 680 КВ
• Оценочный размер требуемого дискового пространства: 11
MB
• Оценочное время сборки: 0,2 SBU

Зависимости пакета Apr Util


Обязательны е
Apr-1.4.8
Реком ендуем ы е
OpenSSL-l.O.le
Необязательны е
Berkeley DB-6.0.20, expat-2.1.0, FreeTDS, MySQL-5.6.13,
OpenLDAP-2.4.36, PostgreSQL-9.3.0, SQLite-3.8.0.2
и unixODBC-2.3.1
Замечания для пользователей:
http://wiki.liniixfrom scratch.org/blfs/w iki/apr-util

Установка пакета Apr Util


Установите пакет Apr Util с помощью следующих команд:
./configure --p r e fix = /u sr \
— w ith -a p r= /u sr \
--w ith -gd b m =/u sr \
--w ith -o p en ssl= /u sr \
- - w i t h - c r y p t o &&
make

Чтобы проверить результаты, выполните: make test.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l

Пояснение команд
— w ith -g d b m = /u s r: Этот переключатель указывает использовать
плагин apr_ db m _g db m -l. so.
— w i t h - o p e n s s l = / u s r — w i t h - c r y p t o : Этот переключатель ука-
зываетиспользовать плагин a p r _ c r y p t o _ o p e n s s l - l . so. Удали­
те его в случае, если у вас не установлен пакет OpenSSL-l.O.le.
— w i t h - b e r k e l e y - d b = / u s r : Если у вас установлен пакет Berkeley
DB-6.0.20, то используйте этот переключатель для того, чтобы
откомпилировать плагин a p r _ d b m _ d b - l. so.

Описание пакета
Установленная программ: apu-1-config
Установленная библиотека: libaprutil-l.so
Установленный каталог: /usr/lib/apr-util-1
Краткое описание
lib a p ru til-l.soСодержит функции, в которых предстпавлен
предсказуемый и согласованный интерфейс
для интерфейсов клиентких библиотек, лежа­
щих ниже.
Перевод с оригинала от 2013-08-17 21:37:04 -0700
Глава 9. Библиотеки общего назначения

Пакет Aspell-0.60.6.1
Знакомимся с пакетом Aspell
В пакете Aspell находится интерактивная программа проверки ор­
фографии и библиотека Aspel. Пакетом Aspell можно пользоваться
как библиотекой или как независимым средством проверки орфог­
рафии.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (HTTP): http://ftp.gnu. 0 rg/gnu/aspell/aspell-O.6 O.6 . l .
tar.gz
• Загрузка (FTP): ftp://ftp.gnu.0rg/gnu/aspell/aspell-O.6 O.6 .1.tar.gz
• Контрольная сумма MD5: e66a9c9af6a60dc46134fdacf6ce97d7
• Размер загружаемого пакета: 1,8 MB
• Оценочный размер требуемого дискового пространства: 58 MB
(Дополнительно 8 MB для словаря EN - словаря правописа­
ния на английском языке)
• Оценочное время сборки: 0,5 SBU

Дополнительные загрузки
Вам нужно будет загрузить, по крайней мере, один словарь. Ссыл­
ка, указанная ниже, приведет вас на страницу с ссылками на словари
для многих языков.
• Словари Aspell: ftp://ftp.gnu.org/gnu/aspell/dict

Зависимости пакета Aspell


Обязательные
Which-2.20 (для словарей)
Замечания для пользователей:
http://w iki.linuxfrom scratch.org/blfs/w iki/aspell

Установка пакета Aspell


Установите пакет Aspell с помощью следующих команд:
. /c o n f i g u r e — p r e f i x = / u s r &&
make

В этом пакете набор тестов отсутствует.


Пакет Aspell-0.60.6.1 I I I I I H H 259

Теперь в роли пользователя root выполните:


make i n s t a l l &&
i n s t a l l - v -m755 -d / u s r / s h a r e / d o c / a s p e l l - О . 6 0 . 6 . 1 / a s p e l l { , -d e v }.h tm l &&
i n s t a l l - v -m644 m a n u a l / a s p e l l . h t m l / * \
/ u s r / s h a r e / d o c / a s p e l l - 0 . 6 0 . 6 . 1 / a s p e l l . htm l &&
i n s t a l l - v -m644 m a n u a l / a s p e l l - d e v . h t m l / * \
/ u s r / s h a r e /d o c / a s p e l l - 0 . 6 0 . 6 . 1 / a sp e ll-d e v .h tm l

Если вы не планируете устанавливать Ispell, то скопируйте скрипт-


обертку ispell:
i n s t a l l - v -m 755 s c r i p t s / i s p e l l / u s r / b i n /

Если вы не планируете устанавливать Spell, то скопируйте скрипт-


обвертку spell:
i n s t a l l - v -m 755 s c r i p t s / s p e l l /u sr /b in /

Конфигурирование пакета Aspell


Подробнее о конфигурировании
После того, как пакет Aspell будет установлен, вы должны настро­
ить по крайней мере один словарь. Установите один или несколько
словарей с помощью следующих команд:
. / c o n f i g u r e &&
make

Теперь в роли пользователя root выполните:


make i n s t a l l

Описание пакета
Установленные программы: aspell, aspell-import, precat, preunzip,
prezip, prezip-bin, pspell-config, run-with-aspell, word-list-com-
press и, возможно, ispell и spell.
Установленные библиотеки: libaspell.so и libpspell.so
Установленные каталоги: /usr/include/pspell и /iisr/lib/aspell-0.60

Краткое описание
aspell Утилита, которая может функционировать
как замена команды ispell -а, как независимое
средство проверки орфографии, как тестовая
утилита для проверки возможностей Aspell и
как утилита управления словарями.
260 Глава 9. Библиотеки общего назначения

ispell Является оберткой вокруг aspell, которая будет


вызываться в режиме, совместимом с ispell.
spell Является оберткой вокруг aspell, которая будет
вызываться в режиме, совместимом с spell.
aspell-import Импортирует старые личные словари в Aspell.
precat Распаковывает в стандартный выходной по­
ток файл, запакованный с помощью prezip.
preunzip Распаковывает файл, запакованный с помо­
щью prezip.
prezip Является утилитой сжатия, используемой для
сжатия отсортированных списков слов или
других аналогичных текстовых файлов.
prezip-bin Вызывается различными скриптами-обертка­
ми, которые выполняют фактическое сжатие
и распаковку
pspell-config Отображает информацию об установленной
библиотеке l i b p s p e l l , которая используется
главным образом в скриптах сборки.
run-with-aspell Является скриптом, который позволяет ис­
пользовать Aspell вместо ispell.
word-list-compress Выполняет сжатие или распаковку отсортиро­
ванных списков слов, используемых в Aspell
для проверки орфографии.
l i b a s p e l l . so Содержит функции API, предназначенные
для проверки орфографии.
l i b p s p e l l . so Является интерфейсом к библиотеке
l i b a s p e l l . В настоящее время все функции,
осуществляющие проверку орфографии, на­
ходятся в библиотеке l i b a s p e l l , но эта биб­
лиотека предназначена для реализации обрат­
ной совместимости.
Перевод с оригинала от 2013-07-14 19:23:42 +0000

Пакет Boost-1 .5 4 .0
Знакомимся с пакетом Boost
В пакете Boost предлагается набор исходных кодов для бесплатных
рецензируемых мобильных библиотек для языка C++. Сюда включе­
Пакет Boost-1.54.0 261

ны библиотеки для линейной алгебры, генерации псевдослучайных


чисел, многопоточности, обработки изображений, регулярным выра­
жениям и юнит-тестированию
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.
Информация о пакете
• Загрузка (H T TP): http://dow nloads.sourceforge.net/boost/
boost_l_54_0.tar.bz2
• Контрольная сумма MD5:15cb8c0803064faef0c4ddf5bc5ca279
• Размер загружаемого пакета: 55 MB
• Оценочный размер требуемого дискового пространства: 713 MB
• Оценочное время сборки: 5,4 SBU
Дополнительные загрузки
• Требуемый патч: http://www .linuxfrom scratch.org/patches/
blfs/svn/boost-1.54.0-glibc-l. patch

Зависимости пакета Boost


Необязательные
ICU-51.2 и Python-2.7.5
Замечания для пользователей:
http://wiki.hnuxfrom scratch.org/blfs Aviki /boost

Установка пакета Boost


Установите пакет Boost с помощью следующих команд:
p a t c h - N p l - i . . / b o o s t - 1 . 5 4 . O - g l i b c - 1 . p a t c h &&
. / b o o t s t r a p . sh — p r e f i x = / u s r &&
. /Ь2 s t a g e t h r e a d i n g = m u l t i l i n k = s h a r e d

В этом пакете набор тестов отсутствует.


Теперь в роли пользователя r o o t выполните:
. /Ь2 i n s t a l l t h r e a d i n g = m u l t i l i n k = s h a r e d

Пояснение команд
t h r e a d i n g = m u l t i : Этот параметр обеспечивает, что пакет Boost
будет собираться с поддержкой многопоточности.
l i n k = s h a r e d : Этот параметр обеспечивает, что будут собирать­
ся только совместно используемые библиотеки за исклю­
чением лишь библиотек libboost_exception и libboost_test_
exec_monitor, которые будут создаваться как статические.
262 Глава 9. Библиотеки общего назначения

В большинстве случаев статические библиотеки не нужны,


поскольку на самом деле в большинстве программ, в которых
используется пакет Boost, указываются только заголовки. Не
указывайте этот параметр в случае, если вам нужны статичес­
кие библиотеки.

Описание пакета
Установленные программы: Нет
Установленные библиотеки: libboost_atomic.so, libboost_chrono.
so, libboost_context.so, libboost_date_time.so, libboost_exception.
a, libboost_filcsystem.so, libboost_graph.so, libboost_iostreams.so,
libboost_locale.so, libboost_math_c99f.so, libboost_math_c991.so,
libboost_math_c99.so, libboost_m ath_trlf.so, libboost_m ath_trll.
so, libboost_m ath_trl.so, libboost_prg_exec_monitor.so, libboost_
program_options.so, libboost__python.so, libboost_random.so, lib-
boost_regex.so, libboost_serialization.so, libboost_signals.so, lib-
boost_system.so, libboost_test_exec_monitor.a, libboost_thread.so,
libboost_timer.so, libboost_unit_test_framework.so, libboost_wave.
so и libboost_wserialization.so
Установленный каталог: /usr/include/boost
Перевод с оригинала от 2013-08-26 10:26:25 -0700

Пакет dbus-glib-0.100.2
Знакомимся с пакетом D-Bus GLib
В пакете D-Bus GLib содержатся интерфейсы GLib для D-Bus API.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.
Информация о пакете
• Загрузка (H T TP): http://dbus.freedcsktop.org/releases/dbus-
glib/dbus-glib- 0 . 100 .2 .tar.gz
• Контрольная сумма MD5: ad0920c7e3aad669163bb59171cfl38e
• Размер загружаемого пакета: 732 КВ
• Оценочный размер требуемого дискового пространства: 12 MB
• Оценочное время сборки: 0,1 SBU

Зависимости пакета D-Bus GLib


Обязательные
D-Bus-1.6.14, expat-2.1.0 и GLib-2.36.4
Пакет dbus-glib-0.1 00.2 263

Необязательные
Doxygen-1.8.5
Замечания для пользователей:
http://wiki.linuxfrom scratch,org/blfs/w iki/dbus-glib

Установка пакета D-Bus GLib


Установите пакет D-Bus GLib с помощью следующих команд:
. /c o n f ig u r e - - p r e f i x = / u s r \
--sy sco n fd ir= /e tc \
- - l i b e x e c d i r = / u s r / l i b / d b u s - l .0 \
- - d i s a b l e - s t a t i c &&
make

Чтобы проверить результаты, наберите команду: make check. Обра­


тите внимание, что более тщательное тестирование можно выполнить
таким же самым способом с помощью инструкций D-Bus, причем для
этого может потребоваться устанавливать пакет дважды.
Терперь в роли пользователя r o o t выполните:
make i n s t a l l

Пояснение команд
— d i s a b l e - s t a t i c : Этот переключатель предотвращает установ­
ку статических версий библиотек.
— e n a b l e - g t k - d o c : Используйте этот параметр в случае, если ус­
тановлен пакет GTK-Doc и вы хотите пересобрать и устано­
вить документацию по API.

Описание пакета
Установленная программа: dbus-binding-tool
Установленная библиотека: libdbus-glib-l.so
Установленные каталоги: /usr/share/gtk-doc/htm l/dbus-glib
и /usr/share/doc/dbus-glib- 0 . 100.2

Краткое описание
dbus-binding-tool Инструментальное средство, используемое
в качестве интерфейса с D-Bus API.
l i b d b u s - g l i b - l . s o Содержит функции интерфейса GLib для
D-Bus API.
Перевод с оригинала от 2013-08-20 13:51:02 -0700
Глава 9. Библиотеки общего назначения

Пакет enchant-1.6.0
Знакомимся с пакетом enchant
Пакет enchant предоставляет общий интерфейс для доступа к различ­
ным существующим библиотекам проверки орфографии.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (H TTP): http://www.abisource.com /downloads/
en c h an t/ 1.6 .0 /enchant- l.O.O.tar.gz
• Загрузка (FTP): ftp://ftp.netbsd.org/pub/pkgsrc/distfiles/en-
chant-l.e.O.tar.gz
• Контрольная сумма MD5: del 101 Iaff801dc61042828041fb59c7
• Размер загружаемого пакета: 593 КВ
• Оценочный размер требуемого дискового пространства: 17 MB
• Оценочное время сборки: 0,3 SBU

Зависимости пакета enchant


Обязательные
GLib-2.36.4
Р еком ендуем ы е
Aspell-0.60.6.1
Необязательные
dbus-glib-0.100.2, Hspell, Hunspell и Voikko
Замечания для пользователей:
http://w iki.linuxfrom scratch.org/blfs/w iki/enchant

Установка пакета enchant


Установите пакет enchant с помощью следующих команд:
. / c o n f i g u r e — p r e f i x = / u s r &&
make

В этом пакете набор тестов отсутствует.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l
Конфигурирование пакета enchant
Конфигурационные файлы
~ / . enchant и /u s r /s h a r e /e n c h a n t/e n c h a n t. o rd erin g

Подробнее о конфигурировании
Подробности смотрите на странице руководства enchant(l).

Описание пакета
Установленные программы: enchant и enchant-lsmod
Установленные библиотеки: libenchant.{so,a}
и различные фоновые библиотеки
Установленные каталоги: /usr/{include/enchant,lib/enchant,share/
enchant}

Краткое описание
enchant Проверяет орфографию,
enchant-lsmod Выдает список имеющихся движков, языков
и словарей.
l i b e n c h a n t . { s o , а} Содержит функции API для проверки ор­
фографии.
Перевод с оригинала от 2013-08-21 18:50:45 -0700

Пакет Exempi-2.2.1
Знакомимся с пакетом Exempi
Пакет Exempi является реализацией ХМР (платформы расширяемых
метаданных фирмы Adobe).
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.
Информация о пакете
• 3 агрузка ( HTTP ) : http://libopenraw .freedesktop.org/download/
exempi- 2 .2 . 1.tar.bz 2
• Контрольная сумма MD5: 0f8e5832299224684a65847eedf8dle4
• Размер загружаемого пакета: 3,2 MB
• Оценочный размер требуемого дискового пространства: 216 MB
• Оценочное время сборки: 1,0 SBU
266 Глава 9. Библиотеки общего назначения

Зависимости пакета Exempi


Обязательные
Boost-1.54.0
Замечания для пользователей:
http: /Aviki.linuxfromscratch.org/blfs/wiki/exempi

Установка пакета Exempi


Установите пакет Exempi с помощью следующих команд:
./co n fig u re — p refix = /u sr - - d i s a b l e - s t a t i c &&
make

Чтобы проверить результаты, наберите команду: make check.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l

Пояснение команд
— d i s a b l e - s t a t i c : Этот переключатель предотвращает установ­
ку статических версий библиотек.

Описание пакета
Установленная программа: exempi
Установленная библиотека: libexempi.so
Установленный каталог: /usr/include/exem pi-2.0

Краткое описание
Библиотека, используемая для анализа
l i b e x e m p i . so
метаданных ХМР.
Перевод с оригинала от 2013-09-04 14:37:09 -0700

Пакет E xp at-2.1.0
Знакомимся с пакетом Expat
В пакете Expat находится библиотека С, ориентированная на потоко­
вую обработку XML.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.
Информация о пакете
• Загрузка (H TTP): http://dow nloads.sourceforge.net/expat/
expat- 2 .l.O.tar.gz
• Контрольная сумма MD5: dd7dab7a5fea97d2a6a43f511449b7cd
• Размер загружаемого пакета: 552 КВ
• Оценочный размер требуемого дискового пространства: 6,0 MB
• Оценочное время сборки: 0,1 SBU
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/w iki/expat

Установка пакета Expat


Установите пакет Expat с помощью следующих команд:
./c o n fig u re — p refix = /u sr - - d i s a b l e - s t a t i c &&
make

Теперь в роли пользователя r o o t выполните:


make i n s t a l l &&
i n s t a l l - v -m755 - d / u s r / s h a r e / d o c / e x p a t - 2 . 1 . 0 &&
i n s t a l l - v -m644 d o c / * . { h t m l , p n g , c s s } / u s r / s h a r e / d o c / e x p a t - 2 . 1 . 0

Чтобы проверить результаты, в роли непривилегированного поль­


зователя наберите команду: make check. Заметьте, что это нужно де­
лать после того, как пакет будет установлен.
Пояснение команд
— d i s a b l e - s t a t i c : Этот переключатель предотвращает установ­
ку статических версий библиотек.

Описание пакета
Установленная программа: xmlwf
Установленная библиотека: libexpat.so
Установленный каталог: /u sr/share/doc/expat-2.1.0

Краткое описание
xmlwf Является утилитой, проверяющей правильность
формирования документов XML, но не их валида­
цию.
l i b e x p a t . so Содержит функции API, предназначенные для раз­
бора XML.
Перевод с оригинала от 2013-08-1721:37:04 -0700
Е В Э И И Й Ш !И ! Глава 9. Библиотеки общего назначения

Пакет G am in-0.1.10
Знакомимся с пакетом Gamin
В пакете Gamin находится монитор изменения файлов File Alteration
Monitor, который применяетя для уведомления приложений об изме­
нениях в файловой системе. Пакет Gamin совместим с FAM.
Известно, что пакет собирается на платформе LFS 7.4, но он не тес­
тировался.

Информация о пакете
• Загрузка (H TTP): http://www .gnom e.org/~veillard/gam in/
sources/gamin-O.l.lO.tar.gz
• Загрузка (FTP): ftp://m irror.ovh.net/gentoo-distfiles/distfiles/
gamin-O. l.lO.tar.gz
• Контрольная сумма MD5: b4ec549e57da470c04edd5ec2876a028
• Размер загружаемого пакета: 639 КВ
• Оценочный размер требуемого дискового пространства: 6,7 MB
• Оценочное время сборки: 0,1 SBU

Зависимости пакета Gamin


Обязательные
GLib-2.36.4
Необязательные
Python-2.7.5
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/w iki/gam in

Установка пакета Gamin


Установите пакет Gamin с помощью следующих команд:
sed - i 's/G_CONST_RETURN/const/' se r ver /g a m _ {n o d e ,s u b sc rip tio n }. { с , h} &&
. /c o n f i g u r e — p r e f ix = /u s r — l i b e x e c d i r = / u s r / s b i n — d i s a b l e - s t a t i c &&
make

Чтобы проверить результаты, наберите команду: make check. Об­


ратите внимание, что некоторые тесты могут давать ошибки.
Теперь в роли пользователя r o o t выполните:
make i n s t a l l &&
i n s t a l l - v -m755 - d / u s r / s h a r e / d o c / g a m i n - 0 . 1 . 1 0 &&
i n s t a l l - v -m644 d o c / * . { h t m l , f i g , g i f , t x t } / u s r / s h a r e / d o c / g a m i n - 0 . 1 . 1 0
Пояснение команд
sed -i ‘s/G _C O N ST _R E T U R N /const/’ server/gam_{node,subscr
iption}.{c,h}: Эта команда sed исправляет ошибки компиляции
в случае, если установлен пакет Glib 2.32 или более новый.
— d i s a b l e - s t a t i c : Этот переключатель предотвращает установ­
ку статических версий библиотек.

Конфигурирование пакета Gamin


Подробнее о конфигурировании
В общем случае никакого конфигурирования не требуется и боль­
шая часть параметров, задаваемых по умолчанию, должны подходить
для большинства пользователей. Подробности смотрите на странице
http://www .gnom e.org/-veillard/gam in/config.htm l.

Описание пакета
Установленная программа: gam_server
Установленные библиотеки: libfam.so, libgamin-l.so, libgamin_shared.a
и (если у вас установлен Python 2)
_gamin.so.
Установленный каталог: /usr/share/doc/gam in-0.1.10

Краткое описание
gam_server Является демоном мониторинга изменений фай­
лов, который запускается по запросу для каждого
пользователя.
l i b g a m i n . so Содержит функции поддержки монитора размеще­
ния файлов.
l i b f a m . so Содержит функции, с помощью которых обеспечи­
вается совместимость с FAM.
Перевод с оригинала от 2013-08-26 10:26:25 -0700

Пакет G Lib-2.36.4
Знакомимся с пакетом GLib
В пакете GLib находится библиотека основных низкоуровневых фун­
кций. Она используется при реализации структур данных языка С,
мобильных программ-оберток и интерфейсов, позволяющих пользо­
270 11Ш
1IB ill Глава 9. Библиотеки общего назначения

ваться такими сущностями периода выполнения, как циклы событий,


потоки, динамическая загрузка и системы объектов.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (H T TP): http://ftp.gnom e.org/piib/gnom e/sources/
glib/2.36/glib-2,36.4.tar.xz
• Загрузка (FTP): ftp://ftp.gnom e.org/pub/gnom e/sources/
glib/2.36/glib-2,36.4,tar.xz
• Контрольная сумма MD5: 2f4bl5f7ef43d8702d067ab987bf7aba
• Размер загружаемого пакета: 6,3 MB
• Оценочный размер требуемого дискового пространства: 167 MB
• Оценочное время сборки: 1,9 SBU (дополнительно 4,8 SBU
для выполнения тестового набора)

Зависимости пакета GLib


Обязательные
libffi-3.0.13, pkg-config-0.28 и Python-2.7.5
Р еком ендуем ы е
PCRE-8.33 (сборка, позволяющая использовать Unicode)
Необязательные
attr-2.4.47, D-Bus-1.6.14 (требуется для выполнения набора тестов)
и GTK-Doc-1.19
Дополнительные зависимости в рем ени исполнения
Цитата непосредственно из файла i n s t a l l :« Д л я некоторых функ­
ций, использующих mimetype в GIO, необходимы утилиты update-
mime-database и update-desktop-database», которые являются
частью пакетов shared-mime-info-1.1 и desktop-file-utils- 0 .2 1. соот­
ветственно.
Замечания для пользователей:
http://w iki.linuxfrom scratch.org/blfs/w iki/glib 2

Установка пакета GLib


Установите пакет GLib с помощью следующих команд:
tou ch - t 201306082300 gtk-d oc.m ake &&
. / c o n f i g u r e - - p r e f i x = / u s r - - w i t h - p c r e = s y s t e m &&
make
Для запуска тестового набора GLib требуется пакет desktop-file-
utils. Однако для компиляции desktop-file-utils требуется GLib; по­
этому вы должны сначала установить пакет GLib, а затем запустить
тестовый набор.
Теперь в роли пользователя r o o t выполните:
make i n s t a l l
Теперь вы должны установить пакет desktop-file-utils-0.22 и перей­
ти к выполнению тестового набора.
Чтобы проверить результаты, наберите команду: make -k check.
Тесты необходимо запускать в графической среде.

Пояснение команд
touch -t 201306082300 gtk-doc.make: Настройте временные метки
с тем, чтобы избежать ненужной пересборки документации.
— w i t h - p c r e = s y s t e m : Этот параметр указывает, что нужно ис­
пользовать версию библиотеки PCRE, имеющуюся в системе,
а версию, входящую в состав пакета.
— e n a b l e - g t k - d o c : Используйте этот параметр в случае, если у
вас установлен пакет GTK-Doc, и вы хотите пересобрать и ус­
тановить документацию по API.

Описание пакета
ycTaHOBneHHbienporpaMMbi:gdbus,gdbus-codegen,gio-querymodules,
glib-compile-resources, glib-compile-schemas, glib-genmarshal,
glib-gettextize, glib-mkenums, gobject-query, gresource, gsettings,
gtester и gtester-report
Установленные библиотеки: libgio-2.0.so, libglib-2.0.so, libgmodule-
2.0.so, libgobject-2.0.so и libgthread-2.0.so
Установленные каталоги: /iisr/include/gio-unix-2.0, /u sr/in clu d e/
glib-2.0, /usr/Iib/gdbus-2.0, /u sr/lib /g io , /usr/lib/glib-2.0, / u s r /
share/glib-2.0, /u sr/share/gtk-doc/htm l/gio, /u sr/sh are /g tk -d o c/
htm l/glib и /u sr/share/gtk-doc/htm l/gobject

Краткое описание
gdbus Простое инструментальное средство, ис­
пользуемое для работы с объектами D-Bus.
gdbus-codegen Используется для генерации кода и/и ли
документации для одного или нескольких
интерфейсов D-Bus.
272 Глава 9. Библиотеки общего назначения

gio-querymodules Используется для создания файла


giomodule.cache file в перечисленных ка­
талогах. В этом файле указывается список
реализованных точек расширения для най­
денных модулей,
glib-compile-resources Используется для чтения описания ресур­
сов из файла и файлов, на которые дела­
лись ссылки с тем, чтобы создать двоичную
сборку ресурсов, которую можно использо­
вать с интерфейсом GResource API.
glib-compile-schemas Используется для компиляции всех файлов
схем GSettings XML, имеющихся в катало­
ге, в двоичный файл с именем gschemas.
compiled, который может использоваться
пакетом GSettings.
glib-genmarshal Является утилитой генерации маршаллин­
га для кода на С для замыканий Glib (GLib
closure).
glib-gettextize Является вариантом утилиты gettext, до­
пускающим интернационализацию,
glib-mkenums Является утилитой генерации описания
типов enum для языка С
gobject-query Небольшая утилита, которая отображает
дерево типов
gresource Предлагает простой интерфейс командной
строки для GResource.
gsettings Предлагает простой интерфейс командной
строки для GSettings.
gtester Утилита, запускающая тесты,
gtester-report Утилита форматирования отчетов о про­
хождении тестов.
Библиотеки GLib Содержит низкоуровневые библиотеки
для GIM P Toolkit.
Перевод с оригинала от 2013-08-18 14:52:29 -0700

Пакет GLibm m -2.36.2


Знакомимся с пакетом GLibmm
Пакет glibmm является интерфейсом языка C++ для Glib.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.
Информация о пакете
• Загрузка (H TTP): http://ftp.gnom e.org/pub/gnom e/sources/
glibmm/2.36/glibmm-2.36.2.tar.xz
• Загрузка (FTP): ftp://ftp.gnome.org/pub/gnome/sources/glibmm/
2.36/glibmm-2.36.2.tar.xz
• Контрольная сумма MD5: 5c96d566c22c209d7b9cbf2344c469e9
• Размер загружаемого пакета: 2,2 MB
• Оценочный размер требуемого дискового пространства: 173 MB
• Оценочное время сборки: 1,9 SBU
Зависимости пакета GLibmm
Необходимы е
GLib-2.36.4 и libsigc++-2.2.11
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/w iki/glibm m

Установка пакета GLibmm


Установите пакет GLibmm с помощью следующих команд:
./configure —prefix=/usr &&
make
Чтобы проверить результаты, наберите команду: make check.
Теперь в роли пользователя ro o t выполните:
make i n s t a l l

Описание пакета
Установленные программы: Нет
Установленные библиотеки: libgiomm-2.4.so, libglibmm-2.4.so и lib-
glibmm_generate_extra_defs-2.4.so
Установленные каталоги: /usr/include/giom m -2.4, /u sr/in clu d e/
glibmm-2.4, /usr/lib/giom m -2.4, /usr/lib/glibm m -2.4, /u sr/sh a re /
devhelp/books/glibmm-2.4 и /usr/share/doc/glibm m -2.4

Краткое описание
lib g io m m - 2 .4 . so Содержит классы Gio API.
l i b g l i b m m - 2 .4 . so Содержит классы Glib API.
Перевод с оригинала от 2013-08-26 04:17:00 -0700
В Д й Д д ^ ^ И д И ^ И Я f^ ? Глава 9. Библиотеки общего назначения

Пакет G M im e-2.6.17
Знакомимся с пакетом GMime
В пакете GMime находится набор утилит, предназначенный для ана­
лиза и создания сообщений с использованием стандарта Multipurpose
Internet Mail Extension (M IM E) так, как он определен в RFC. Текст
RFC смотрите на сайте GMime. Пакет удобен тем, что в нем предло­
жен API, настолько точно соответствующий спецификациям MIME,
насколько это возможно, и одновременно настолько простой, что об­
легчает программистам использование этих функций API.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.
Информация о пакете
• Загрузка (H TTP): http://ftp.gnom e.org/pub/gnom e/sources/
gmime/2.6/gmime-2.6.17.tar.xz
• Загрузка (FTP): ftp://ftp.gnome.org/pub/gnome/sources/gmime/
2.6 /gmimc- 2.6.17. t ar. xz
• Контрольная сумма MD5: 20844d957c88d23217ee79b8f6caf99a
• Размер загружаемого пакета: 728 КВ
• Оценочный размер требуемого дискового пространства: 21 MB
• Оценочное время сборки: 0,3 SBU

Зависимости пакета GMime


Обязательные
GLib-2.36.4 и libgpg-error-1.12
Рекомедуемые
gobject-introspection-1.36.0 и Vala-0.20.1
Необязательные
DocBook-utils-0.6.14, GPGME-1.4.3, GTK-Doc-1.19 и Gtk#
(требуется для Mono)
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/w iki/gm im e

Установка пакета GMime


Установите пакет GMime с помощью следующих команд:
./configure --prefix=/usr - - d i s a b l e - s t a t i c &&
make
Пакет gobject-introspection-1.36.0 IH E L 1^ 5 3

Чтобы проверить результаты, наберите команду: make check.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l

Пояснение команд
— d i s a b l e - s t a t i c : Этот переключатель предотвращает установ­
ку статических версий библиотек.
— en able-sm im e: Используйте этот переключатель в случае, если
у вас установлен пакет GPGME-1.4.3 и вы хотите включить
поддержку S/M IM E в GMime.
— e n a b l e - g t k - d o c : Используйте этот параметр, если установлен
пакет GTK-Doc и вы хотите пересобрать и установить доку­
ментации по API.

Описание пакета
Установленные программы: Нет
Установленные библиотеки: libgmime-2.6.so
Установленные каталоги: /usr/include/gm im e-2.6 и /u s r/s h a re /
gtk-doc/htm l/gm im e

Краткое описание
lib g m im e - 2 . 6 . so Содержит функции API, используемые про­
граммами, в которых необходимо поддержи­
вать соответствие стандарту MIME.
Перевод с оригинала от 2013-09-02 13:01:46 -0700

Пакет gobject-introspection-1.36.0
Знакомимся с пакетом
GObject Introspection
Пакет GObject Introspection используется для описания интерфейсов
API и сохранения их в единообразном машинио читаемом формате.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (H TTP): http://ftp.gnom e.org/pub/gnom e/sources/
gobject-introspection/1.36/gobjcct-introspection-l,36.0.tar.xz
Глава 9. Библиотеки общего назначения

• Загрузка (FTP): ftp://ftp.gnom e.org/pub/gnom e/sources/gob-


iect-introspection/1.36/gobjeet-introspection-1.36.0.tar.xz
• Контрольная сумма MD5: 747523a60d02effe39417e2157b3alc4
• Размер загружаемого пакета: 1,2 MB
• Оценочный размер требуемого дискового пространства: 52 MB
• Оценочное время сборки: 0,5 SBU

Зависимости пакета GObject Introspection


Обязательные
GLib-2.36.4
Необязательные
Cairo-1.12.16 (требуется для выполнения тестов), GTK-Doc-1.19
и Мако
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/w iki/gobiect-introspection

Установка пакета GObject Introspection


Установите пакет GObject Introspection с помощью следующих ко­
манд:
./configure —prefix=/usr - - d i s a b l e - s t a t i c &&
make
Чтобы проверить результаты, наберите команду: make check.
Теперь в роли пользователя r o o t выполните:
make i n s t a l l

Пояснение команд
— d i s a b l e - s t a t i c : Этот переключатель предотвращает установ­
ку статических версий библиотек.
— e n a b l e - g t k - d o c : Используйте этот параметр, если установлен
пакет GTK-Doc и вы хотите пересобрать и установить доку­
ментации по API.

Описание пакета
Установленные программы: g-ir-annotation-tool, g-ir-compiler,
g-ir-doc-tool, g-ir-generate и g-ir-scanner
Установленные библиотеки: libgirepository-l.O.so
Установленные каталоги: /usr/include/gobject-introspection-І.О,
/u sr/lib/girepository-І.О, /usr/lib/gobject-introspection,
/u sr/sh a re /g ir-І.О и /usr/share/gobject-introspection-І.О
Пакет G sl-1.1 6

Краткое описание
g-ir-compiler Преобразует один или несколько фай­
лов GIR в один или несколько наборов
метаданных typelib.
g-ir-scanner Это инструмент, который генерирует
файлы GIR XML с помощью разбора
заголовков и обращения к библиоте­
кам, использующим Gobject.
g-ir-generate Является генератором GIR, использу­
ющим API репозитария.
l i b g i r e p o s i t o r y - 1 . О. so Предоставляет API для доступа к
метаданным typelib.
Перевод с оригинала от 2013-08-18 14:52:29 -0700

Пакет G sl-1.16
Знакомимся с пакетом Gsl
Библиотека GNU Scientific Library (GSL) является численной библи­
отекой для программистов, использующих языки С и C++. В пакете
предоставляется широкий диапазон математических процедур, на­
пример, генераторы случайных чисел, специальные функции и функ­
ции, использующие методы наименьших квадратов.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (HTTP): http://ftp.gnu.org/pub/gnu/gsl/gsl-1.16.tar.gz
• Загрузка (FTP): ftp://ftp.gnu.org/pub/gnu/gsl/gsl-l.16.tar.gz
• Контрольная сумма MD5: e49a664dbl3d81c968415cd53f62bc8b
• Размер загружаемого пакета: 3,4 MB
• Оценочный размер требуемого дискового пространства: 208 MB
• Оценочное время сборки: 2,2 SBU

Установка пакета Gsl


Установите пакет Gsl с помощью следующих команд:
./configure —prefix=/usr - - d i s a b l e - s t a t i c &&
make &&
make html
278 Глава 9. Библиотеки общего назначения

Чтобы проверить результаты, наберите команду: make check.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l &&
mkdir / u s r / s h a r e / d o c / g s l - І .16 &&
ср d o c / g s l - r e f . html/* / u s r / s h a r e / d o c / g s l - І .16

Пояснение команд
— d i s a b l e - s t a t i c : Этот переключатель предотвращает установ­
ку статических версий библиотек.

Описание пакета
Установленные программы: gsl-config, gsl-histogram и gsl-randist
Установленные библиотеки: libgslcblas.so и libgsl.so
Установленный каталог: /usr/include/gsl

Краткое описание
gsl-config Скрипт командной оболочки, с помощью кото-
го можно получить номер версии и флаги ком­
пиляции установленной библиотеки Gsl.
gsl-histogram Демонстрационная программа для библиотеки
GNU Scientific Library, которая вычисляет гис­
тограмму по данным, взятым из стандартного
входного потока.
gsl-randist Демонстрационная программа для библиотеки
GNU Scientific Library, которая генерирует слу­
чайные примеры различных распределений.
l i b g s l c b l a s . so Содержит функции, с помощью которых реа­
лизуется интерфейс языка С для подпрограмм
линейной алгебры начального уровня.
l i b g s l . s o . so Содержит функции, с помощью которых пре­
доставляется коллекция численных процедур,
используемых для научных вычислений.
Перевод с оригинала от 2013-09-05 09:23:52 -0700

Пакет IC U -51.2
Знакомимся с пакетом
Пакет International Components for Unicode (IC U ) является хорошо
продуманным и широко используемым набором библиотек C /C++,
Пакет IC U -51.2 279

предназначенных для поддержки в прикладных программах возмож­


ностей Unicode и Globalization. Пакет ICU портирован на многие
платформы и на всех платформах работает одинаковым образом.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (H TTP): http://dQwnload.icu-project.org/files/icu4c /
51.2 /icu4c-5 l_2-src.tgz
• Контрольная сумма MD5: 072e501b87065f3a0ca888flb5165709
• Размер загружаемого пакета: 21 MB
• Оценочный размер требуемого дискового пространства: 288 MB
• Оценочное время сборки: 1,0 SBU

Зависимости пакета ICU


Необязательные
LLVM-3.3 (с Clang)
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/w iki/icu

Установка пакета ICU


Установите пакет ICU с помощью следующих команд:
cd source &&
./configure —prefix=/usr &&
make
Чтобы проверить результаты, наберите команду: make check.
Теперь в роли пользователя ro o t выполните:
make i n s t a l l

Описание пакета
Установленные программы: derb, genbrk, gcnccode, gencfu, gencmn,
gencnval, gendict, gennorm 2 , genrb, gensprep, icu-config, icuinfo,
icupkg, makeconv, pkgdata и uconv
Установленные библиотеки: libicudata.so, libicuil 8 n.so, libicuio.so,
libicule.so, libiculx.so, libicutest.so, libicutu.so и libicuuc.so
Установленные каталоги: /usr/include/layout, /u sr/include/uni-
code, /u sr/lib /ic u и /u sr/sh are/icu
Глава 9. Библиотеки общего назначения

Краткое описание
бегЬ Дизасемблирует ресурсы приложений.
genbrk Компилирует файлы с исходными кодами пра­
вил итераций 1С и в файлы двоичных данных.
genccode Генерирует из файла данных 1Си код на С или
на ассемблере для конкретной платформы.
gencfu Читает в ишсобе определения начертания сим­
волов и записывает их в виде двоичных данных.
gencmn Генерирует файл данных С и, отображаемый в
память.
gencnval Компилирует файл алиасов конвертера.
gendict Компилирует список слов в правильный сло-
вать строк 1Си.
genrb Компилирует архив с ресурсами.
gensprep Компилирует данные из отфильтрованных фай­
лов ШЮ 3454.
кш-соп!^ Выдает параметры сборки 1С11
ю итй) Выдает информацию о конфигурации текущего
ю и.
icupkg Раскрывает или обновляет архив 1С11 .баГ
такесопу Компилирует таблицу конвертера.
pkgdata Упаковывает данные для использования с Ю Н
исопу Конвертирует данные из одной кодировки в
другую.
l i b i c u d a t a .эо Библиотека с данными.
1 1 Ы с и 1 1 8 п . БО Библиотека интернационализации (П 8 п).
1д.Ыси:1о.во Библиотека ввода/вывода Ю и (стандартный
ввод/вывод юникода).
1 л . Ы с и 1 е .эо Движок, осуществляющий прорисовку.
Н Ы с и 1 х . эо Движок расширений, используемых при прори­
совке.
И Ы с и Ь е э Ь . эо Библиотека тестов.
1 1 Ь л . с и Ь и . эо Библиотека с утилитами.
Н Ы с и и с . эо Библиотека общего назначения.
Перевод с оригинта от 2013-08-18 14:52:29 -0700
Пакет ISO Codes-3.46
Знакомимся с пакетом ISO Codes
В пакете ISO Codes находится список названий стран, языков и ва­
лют. Этот пакет используется в качестве централизованной базы для
доступа к подобным данным.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (H TTP): http://pkg-isocodes.alioth.debian.org/
downloads/iso-codes-3.46.tar.xz
• Контрольная сумма MD5:9f5cbl990e00b549bdabd9bbbd4db809
• Размер загружаемого пакета: 3,5 MB
• Оценочный размер требуемого дискового пространства: 106 М В
• Оценочное время сборки: 0,2 SBU
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/wiki/iso-codes

Установка пакета ISO Codes


Установите пакет ISO Codes с помощью следующих команд:
./configure --prefix=/usr &&
make
В этом пакете набор тестов отсутствует.
Теперь в роли пользователя r o o t выполните:
make i n s t a l l

Описание пакета
Установленные программы: Нет
Установленные библиотеки: Нет
Установленный каталог: /usr/share/xm l/iso-codes
Перевод с оригинала от 2013-09-03 01:39:22 -0700
111ü Глава 9. Библиотеки общего назначения

Пакет J S -1 7 .0 .0
Знакомимся с пакетом JS
JS являетя движком JavaScript для Mozilla, который написан на С /
C++.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (IIT T P): http://ftp.m ozilla.org/pub/m ozilla.org/is/
mozjsl7.0.0.tar.gz
• Загрузка (FTP): ftp://ftp.m ozilla.org/pub/m ozilla.org/is/
mozjsl7.0.0.tar.gz
• Контрольная сумма MD5: 20b6f8fll40ef6e47daa3bl6965c9202
• Размер загружаемого пакета: 6,5 MB
• Оценочный размер требуемого дискового пространства: 1 GB
• Оценочное время сборки: 2,0 SBU

Зависимости пакета JS
Обязательны е
libffi-3.0.13, NSPR-4.10, Python-2.7.5 и Zip-3.0
Необязательны е
Doxygen-1.8.5 и makedepend-1.0.5
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/wiki/TS

Установка пакета JS
Установите пакет JS Ьу с помощью следующих команд:
cd j s / s r c &&
./configure --prefix=/usr \
•—e n a b le -re a d lin e \
- - e n a b le - th re a d s a f e \
—with-system-ffi \
--w ith-sy stem -nspr &&
make
Для проверки результата выполните команду make check.
Теперь в роли пользователя r o o t выполните:
make i n s t a l l &&
find / u s r / i n c l u d e / j s-17 . О/ \
naKerJSON-C-0.il 283

/ u s r / l i b / l i b m o z j s - 1 7 . О. а \
/usr/lib/pkgconfig/m ozjs-17 . 0 .pc \
-type f -exec chmod -v 644 {} \ ;

Пояснение команд
— e n a b l e - t h r e a d s a f e: Этот переключатель разрешает использо­
вать несколько потоков одновременно.
— e n a b l e - r e a d l i n e : Этот переключатель включает поддержку в
командной оболочке JS.
— w ith - s y s te m - f f i: Этот переключатель заставляет компоновать
пакет с системной версией библиотеки libffi, а не той версией,
которая есть в самом пакете, и которая тепеь уже устарела.
— w i t h - s y s t e m - n s p r : Этот переключатель заставляет компоно­
вать пакет с системной версией пакета NSPR а не той версией,
которая есть в самом пакете, и которая тепеь уже устарела.

Описание пакета
Установленные программы: jsl7 и jsl7-config
Установленные библиотеки: libmozjs-17.0.a и libmozjs-17.0.so
Установленные каталоги: /usr/include/js-17.0

Краткое описание
js l7 Предоставляет интерфейс командной строки к
движку JavaScript.
jsl7-config Используется для определения флагов ком­
пилятора и компоновщика, необходимых для
пакета JS.
libm o z j s - 1 7 . 0 . so Содержит функции интерфейса API для паке­
та Mozilla JavaScript.
Перевод с оригинала от 2013-08-20 13:51:02 -0700

Пакет JS O N -C -0.11
Знакомимся с пакетом JSON-C
В пакете JSON-C реализована объектная модель, которая позволит
вам легко конструировать объекты JSON на языке С, выдавая их как
отформатированные строки JSON, а также преобразовывать отфор­
матированные строки JSO N обратно в представление объектов JSON
на языке С.
ИММ Ы Й ^ Глава 9. Библиотеки общего назначения

Известно, что пакет правильно собирается и работает на платфор­


ме ЬР8-7.4.
Информация о пакете
• Загрузка (Н ТТР): https://s3.amazonaws.com/ison-c_releases/
ге1еа5е5/15оп-с-0.11Ааг.й7.
• Контрольная сумма МБ5: аа02367с12Г7а830ЬИе3376177881е98
• Размер загружаемого пакета: 548 КВ
• Оценочный размер требуемого дискового пространства: 5,0 МВ
• Оценочное время сборки: менее 0,1 8 В и
Замечания для пользователей:
http://w iki.linuxfrom scratch.org/blfs/w iki/json-c

Установка пакета З Б О Л / - С
Зам ечан ие
В этом пакете не поддерживается параллельная сборка пакетов.

Установите пакет JS ON-С с помощью следующих команд:


./configure —prefix=/usr - - d i s a b l e - s t a t i c &&
make
Чтобы проверить результаты, наберите команду: make check.
Теперь в роли пользователя r o o t выполните:
make i n s t a l l

Пояснение команд
— d i s a b l e - s t a t i c : Этот переключатель предотвращает установ­
ку статических версий библиотек.

Описание пакета
Установленные программы: Нет
Установленные библиотеки: libjson-c.so и libjson.so
Установленные каталоги: /u sr/include/json и /usr/include/json-c

Краткое описание
Содержит функции интерфейса API для JSON-C.
l i b j s o n . so
Содержит функции интерфейса API для JSON-C.
l i b j s o n - с . so
Перевод с оригинала от 2013-08-20 18:40:33 -0700
Пакет JSO N-G Lib-0.16.0 285

Пакет JSON-GLib-0.16.0
Знакомимся с пакетом JSON G
Пакет JSON GLib является библиотекой, поддерживающей сери­
ализацию и десериализацию объектов в формате JavaScript Object
Notation (JSON), определенном в RFC 4627.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (HTTP): http://ftp.gnom e.org/piib/gnom e/sources/
ison-glib/0.16/json-glib-0.16.0.tar.xz
• Загрузка (FTP): ftp://ftp.gnom e.org/pub/gnom e/sources/ison-
glib/0.16/json-glib-0.16.0.tar.xz
• Контрольная сумма MD5: bbcal If32509d6eb3f54d24156e7312d
• Размер загружаемого пакета: 496 КВ
• Оценочный размер требуемого дискового пространства: 13 MB
• Оценочное время сборки: 0,2 SBU

Зависимости пакета JSON-GLib


Обяза тельные
GLib-2.36.4
Необязательные
(необходимы е, если собирается пакет GNOM E)
gobject-introspection-1.36.0
Необязательные
GTK-Doc-1.19
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/w iki/json-glib

Установка пакета JSON GLib


Установите пакет JS ON GLib с помощью следующих команд:
. / c o n f i g u r e — p r e f i x = / u s r &&
make

Чтобы проверить результаты, наберите команду: make check.


Теперь в роли пользователя ro o t выполните:
make install
286 К Глава 9. Библиотеки общего назначения

Пояснение команд
—e n a b le -g tk -d o c : Используйте этот параметр, если установлен
пакет GTK-Doc, и вы хотите пересобрать и установить доку­
ментации по API.

Описание пакета
Установленные программы: Нет
Установленная библиотека: libjson-glib-l.O.so
Установленные каталоги: /usr/include/json-glib-1.0 и /u s r/sh a re /
gtk-doc/htm l/json-glib

Краткое описание
l i b j s o n - g l i b - 1 . 0 . so
Содержит функции интерфейса API для
GLib.
Перевод с оригинала от 2013-09-03 12:08:19 -0700

Пакет keyutils-1.5 .6
Знакомимся с пакетом key utils
Keyutils представляет собой набор утилит для управления функци­
ями работы с ключами, имеющимися в ядре, которое могут исполь­
зоваться файловыми системами, блочными устройствами и т. д. для
работы с ключами авторизации и шифрования, необходимыми при
выполнении операций, обеспечивающих безопасность.
Известно, что пакет правильно собирается и работает на платфор­
ме JLFS-7.4.

Информация о пакете
• Загрузка (HTTP): http://people.redhat.com /~dhowells/keyutils/
keyutils-1.5.6.tar.bz2
• Контрольная сумма MD5: 2a459462c7ebdff0ce2eb398b92ced9c
• Размер загружаемого пакета: 63 КВ
• Оценочный размер требуемого дискового пространства: 1,7 MB
• Оценочное время сборки: менее 0,1 SBU
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/w iki/keyutils
Пакет libarchive-3.1.2 287

Установка пакета keyutils


Установите пакет keyutils с помощью следующих команд:
make NO_ARLIB=l i n s t a l l

Пояснение команд
no_ a r l i b = 1 : Этот ф лаг программы т а к е отменяет установку ста-
тичекой библиотеки.

Конфигурирование пакета keyutils


Конфигурационные файлы
/ e t c / r e q u e s t - k e y . c o n f И / e t c / r e q u e s t - k e y . d /*

Описание пакета
Установленные программы: keyctl, key.dns_resolver и request-key
Установленная библиотека: libkeyutils.so
Установленные каталоги: /usr/share/keyutils

Краткое описание
keyctl Инструментальной средство для управления
ключами в различных ситуациях с применени­
ем различных вспомогательных команд,
l i b k e y u t i i s . so Библиотека интерфейса API пакета keyuils.
Перевод с оригинала от 2013-08-31 15:39:51 -0700

Пакет libarchive-3.1.2
Знакомимся с пакетом libarchive
В библиотеке libarchive предоставляется единый интерфейс для чте­
ния/записи различных форматов сжатия данных.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4

Информация о пакете
• Загрузка (H TTP): http://www.libarchive.org/downloads/libar-
chive-3.1.2.tar.gz
• Контрольная сумма MD5: efad5a503f66329bb9d2f4308b5de98a
• Размер загружаемого пакета: 4,4 MB
Глава 9. Библиотеки общего назначения

• Оценочный размер требуемого дискового пространства: 60 MB


• Оценочное время сборки: 0.5 SBU
Зависимости пакета libarchive
Необязательны е
acl-2.2.52, libxml2-2.9.1 или expat-2.1.0, LZO-2.06, Nettle-2.7.1
и OpenSSL-l.O.le
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/w iki/libarchive

Установка пакета libarchive


Установите пакет libarchive с помощью следующих команд:
./c o n fig u re — p refix = /u sr - - d i s a b l e - s t a t i c &&
make

Чтобы проверить результаты, выполните команду make check.


Теперь в роли пользователя r o o t выполните:
make i n s t a l l

Пояснения команд
— d i s a b l e - s t a t i c : Этот переключатель предотвращает установ­
ку статических версий библиотек.

Описание пакета
Установленные программы: bsdcpio и bsdtar
Установленные библиотеки: libarchive.so
Установленные каталоги: Нет
Краткое описание
bsdcpio Инструментальное средство, аналогичное cpio.
bsdtar Инструментальное средство, аналогичное GNU tar.
l i b a r c h i v e . so Библиотека, которая может создавать и читать не­
сколько форматов архивирования в виде потоков.
Перевод с оригинала от 2013-08-23 13:56:44 -0700

Пакет libassuan-2.1.1
Знакомимся с пакетом libassuan
В пакете libassuan находится библиотека IPC, которая необходима
некоторым другим пакетам, использующим GnuPG. Основное при-
Пакет libassuan-2.1.1 289

менение пакета libassuan - дать возможность клиенту осуществлять


транзакции с сервером, в котором отсутствует возможность долговре­
менного сохранения состояний сессий (non-persistent server). Однако
применение пакета libassuan не ограничивается только его использо­
ванием с серверами и клиентами GnuPG. Пакет достаточно гибкий
и удовлетворяет многим требованиям, что дает возможность выпол­
нять транзакции в случаях, когда сервер не имеет средств долговре­
менного сохранения состояние сессий.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (FTP): ftp://ftp.gnupg.org/gcrypt/libassuan/libassuan-
2 . 1. 1.tar.bz 2
• Контрольная сумма M D 5:757243сс4а7Ib30ed8d8dbe784035d36
• Размер загружаемого пакета: 532 КВ
• Оценочный размер требуемого дискового пространства: 7,3 MB
• Оценочное время сборки: менее 0,1 SBU

Зависимости пакета libassuan


Обязательные
libgpg-error- 1.12
Необязательные
texlive-20130530
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/w iki/libassuan

Установка пакета libassuan


Установите пакет libassuan с помощью следующих команд:
. / c o n f i g u r e — p r e f i x = / u s r &&
make

Если вы хотите собрать документацию, вы должны установить па­


кет texlive-20130530. а затем выполнить следующую команду:
make -С doc p d f p s

Чтобы проверить результаты, наберите команду: make check.


Теперь в роли пользователя r o o t выполните:
make install
ШШЁЖ1 И Д 1111111; jj Глава 9. Библиотеки общего назначения

Если вы хотите собрать документацию, установите ее, выполнив


для этого в роли пользователя r o o t следующие команды:
i n s t a l l - v -dm755 / u s r / s h a r e / d o c / l i b a s s u a n - 2 . 1 . 1 &&
i n s t a l l - v -m644 d o c / a s s u a n . { p d f , p s , d v i } \
/u s r /s h a r e /d o c /lib a s s u a n -2 .1 .1

Описание пакета
Установленная программа: libassuan-config
Установленная библиотека: libassuan.so
Установленный каталог: /usr/share/doc/libassuan-2.1.1

Краткое описание
l i b a s s u a n . so Библиотека,
поддерживающая взаимодействие
между процессами, в которой реализован протокол
Assuan.
Перевод с оригинала от 2013-08-22 15:40:33 -0700

Пакет libatasm art-0.19


Знакомимся с пакетом libatasm art
Пакет libatasmart является библиотекой, предназначенной для рабо­
ты с сообщениями о состоянии дисков. В нем поддерживается толь­
ко некоторое подмножество из всех функциональных возможностей
АТА S.M.A.R.T.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.
Информация о пакете
• Загрузка (ITTTP): http://0pointer.de/public/libatasm art-Q .19.
tar.xz
• Контрольная сумма MD5: 53afe2bl55c36f658el21fe6def33e77
• Размер загружаемого пакета: 248 КВ
• Оценочный размер требуемого дискового пространства: 3 MB
• Оценочное время сборки: менее 0,1 SBU
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/w iki/libatasm art

Установка пакета ІіЬаіаБтагі


Установите пакет libatasmart с помощью следующих команд:
./co n fig u re — p r efix = /u sr — d i s a b l e - s t a t i c &&
make

В этом пакете набор тестов отсутствует.


Теперь в роли пользователя r o o t выполните:
make d o c d i r = / u s r / s h a r e / d o c / l i b a t a s m a r t - 0 .1 9 i n s t a l l

Пояснение команд
— disable-static: Этот переключатель предотвращает установ­
ку статических версий библиотек.

Описание пакета
Установленные программы: skdump и sktest
Установленная библиотека: libatasmart.so
Установленный каталог: /usr/share/doc/libatasm art
Краткое описание
skdump Утилита, которая выдает сообщение о состоя­
нии диска.
sktest Утилита, с помощью которой осуществляется
тестирование диска,
libatasmart.so Содержит функции интерфейса API для АТА
S.M.A.R.T.
Перевод с оригинала от 2013-08-25 04:52:57 -0700

Пакет libatomic_ops-7.2d
Знакомимся с пакетом libatomic_ops
В пакете libatomic_ops предоставлена реализация атомарных опера­
ций для работы с памятью в ряде архитектур. Эти операции позволяют
создавать код, который просто переносится на другую архитектуру. В
отличие от предыдущих подобных пакетов, в этом пакете явно учиты­
вается наличие в памяти границ и есть возможность создавать код для
различных архитектур с минимальными накладными расходами.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (H TTP): http://w w w .hpl.hp.com /research/linux/
atomic_ops/download/libatomic_ops-7.2d,tar.gz
292 Глава 9. Библиотеки общего назначения

• Контрольная сумма MD5: e6997db4875909el Ib514cd5c3caa3cf


• Размер загружаемого пакета: 228 КВ
• Оценочный размер требуемого дискового пространства: 5,0 MB
• Оценочное время сборки: 0,1 SBU
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/w iki/libatom ic_ops

Установка пакета libatomic_ops


Установите пакет libatomic_ops с помощью следующих команд:
s e d - i 's#AM_CONFIG_HEADER#AC_CONFIG_HEADERS#' c o n f i g u r e . ас &&
s e d - i 's#AC_PROG_RANLIB#AC_LIBTOOL_DLOPEN\nAC_PROG_LIBTOOL#'
c o n f ig u r e , a c &&
s e d - i 's#b_L#b_LTL#; s # \ . a # . l a # g ; s # _ a _ # _ l a _ # ' s r c / M a k e f i l e . am &&
se d - i ' s # \ . a # . so #g; s # \ . \ . / s r c / # . . / s r c / . l i b s / # g ' t e s t s /M akefile. am &&
s e d - i ' s # p k g d a t a # d o c # ' d o c / M a k e f i l e . am &&
a u t o r e c o n f -fi &&
./c o n fig u r e - - p r e f ix = /u s r \
— d o c d i r = / u s r / s h a r e / d o c / l i b a t o m i c _ o p s - 7 .2 d \
— d i s a b l e - s t a t i c &&
make

Чтобы проверить результаты, выполните команду LD_LIBRARY_


PATH =../src/.libs make check.
Теперь в роли пользователя r o o t выполните:
make i n s t a l l

Пояснение команд
sed -i ‘s#AM_CONFIG_HEADER ...: Эта команда sed исправля­
ет ошибки сборки вместе с пакетом Automake 1.13.
sed -i ‘s#AC_PROG_RANLIB ...: Эти команды sed обрабатыва­
ют файлы autotool с тем, чтобы можно было собрать совместно
используемую библиотеку, выполнить тесты и установить до­
кументацию в необходимом каталоге,
autoreconf-fi: Эта команда пересоздает скрипт configure и файлы
M a k e f i l e . i n , а также устанавливает недостающий файл.
— d i s a b l e - s t a t i c : Этот переключатель предотвращает установ­
ку статических версий библиотек.

Описание пакета
Установленные программы: Нет
Установленные библиотеки: libatomic_ops.so и libatomic_ops_gpl.so
Установленный каталог: /usr/include/libatomic_ops
Краткое описание
Содержит функции для атомарных операций
lib a to m ic _ o p s . so
работы с памятью.
Перевод с оригинала от 2013-08-23 03:32:24 -0700

Пакет libcroco-0.6.8
Знакомимся с пакетом libcroco
В пакете libcroco находится автономно работающая библиотека,
предназначенная для анализа и манипуляции со стилевыми страни­
цами CSS2.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (H TTP): http://ftp.gnonie.org/pub/gnom e/sources/
libcroco/ 0 .6 /libcroco- 0 .6 .8 .tar.xz
• Загрузка (FTP): ftp://ftp.gnom e.org/pub/gnom e/sources/lib-
croco/ 0 .6 /libcroco- 0 .6 .8 .tar.xz
• Контрольная сумма MD5: 767e73c4174f75b99695d4530fd9bb80
• Размер загружаемого пакета: 456 КВ
• Оценочный размер требуемого дискового пространства: 11 MB
• Оценочное время сборки: 0,1 SBU

Зависимости пакета libcroco


Обязательные
GLib-2.36.4 и libxml2-2.9.1
Необязательные
GTK-Doc-1.19
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/w iki/libcroco

Установка пакета libcroco


Установите пакет libcroco с помощью следующих команд:
. /c o n f i g u r e — p r e f i x = / u s r — d i s a b l e - s t a t i c &&
make
294 Глава 9. Библиотеки общего назначения

Чтобы проверить результаты, выполните команду LD_LIBRARY_


PATH =$(pwd)/src/.libs make te s t
Теперь в роли пользователя r o o t выполните:
make i n s t a l l

Пояснение команд
— d i s a b l e - s t a t i c : Этот переключатель предотвращает установ­
ку статических версий библиотек.
— e n a b l e - g t k - d o c : Используйте этот параметр, если установлен
пакет GTK-Doc и вы хотите пересобрать и установить доку­
ментации по API.

Описание пакета
Установленные программы: croco-0.6-config и csslint-0.6
Установленная библиотека: libcroco-0.6.so
Установленные каталоги: /usr/incIude/libcroco-О.б и /u sr/s h a re /
gtk- doc/htm l/libcroco

Краткое описание
csslint-0.6 Используется для анализа одного или несколь­
ких файлов CSS, указанных в командной стро­
ке.
l i b c r o c o -О. 6. so Содержит функции интерфейса API, использу­
емые для анализа и манипуляции со стилевы­
ми страницами CSS2.
Перевод с оригинала от 2013-08-25 13:13:24 -0700

Пакет libdaem on-0.14


Знакомимся с пакетом libdaemon
Пакет libdaemon является облегченной версией библиотеки С, кото­
рая упрощает написание демонов UNIX
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о пакете
• Загрузка (HTTP): http://Opointer.de/lennart/projects/libdaemon/
libdaemon-0.14.tar.gz
Пакет libdaem on-0.14 295

• Контрольная сумма MD5: 509dc27107c21bcd9fbf2f95f5669563


• Размер загружаемого пакета: 332 КВ
• Оценочный размер требуемого дискового пространства: 3 MB
• Оценочное время сборки: 0,1 SBU

Зависимости пакета libdaemon


Необязательные
Doxygen-1.8.5 и Lynx-2.8.8dev.l6
Замечания для пользователей:
http://wiki.linuxfrom scratch.org/blfs/w iki/libdaem on

Установка пакета libdaemon


Установите пакет libdaemon с помощью следующих команд:
./co n fig u re — p r efix = /u sr — d i s a b l e - s t a t i c &&
make

Если у вас установлен пакет Doxygen и вы желаете собрать доку­


ментацию по API, введите следующую команду:
make -С doc d oxy gen

В этом пакете набор тестов отсутствует.


Теперь в роли пользователя r o o t выполните:
make d o c d i r = / u s r / s h a r e / d o c / l i b d a e m o n - 0 .14 i n s t a l l

Если вы собрали документацию по API, то в роли пользователя


r o o t установите ее с помощью следующих команд:
i n s t a l l - v -m755 -d /usr /share/d oc/lib daem on-О, 1 4 /a p i &&
i n s t a l l - v -m644 doc/re fer e n c e/h tm l/* /usr/sh are/d oc/lib daem on-О, 1 4 /ap i &&
i n s t a l l -v -m644 doc/reference/man/man3/* /usr/share/man/man3

Пояснение команд
— d i s a b l e - s t a t i c : Э тот переклю чатель предотвращ ает установ­
ку статических версий библиотек.

Описание пакета
Установленные программы: Нет
Установленная библиотека: libdaemon.so
Установленные каталоги: /usr/include/libdaem on и /u s r/s h a re /
doc/libdaemon-0.14
296 mm Глава 9. Библиотеки общего назначения

Краткое описание
Содержит функции интерфейса API библиотеки
lib d a e m o n . so
libdaemon.
Перевод с оригинала от 2013-08-25 13:35:12 -0700

Пакет libdbusm enu-qt-0.9.2


Знакомимся с пакетом libdbusmenu-qt
Эта библиотека предоставляет реализацию для Q t спецификации
DbusMenu, определяющей работу меню в DBus.
Известно, что пакет правильно собирается и работает на платфор­
ме LFS-7.4.

Информация о