control

package: control

title: control(8)

summary: управление компонентами системы

text:
# control(8)

## НАЗВАНИЕ
control - управление компонентами системы

## ФОРМАТ ВЫЗОВА
control [ FACILITY [help|list|status|summary|STATUS] ]

## ОПИСАНИЕ
control предоставляет унифицированный интерфейс для управления компонентами системы.

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

При запуске без параметров control выдает список известных компонентов с их существующими и доступными настройками.

При указании названия компонента FACILITY control может вывести информацию о компоненте, а при дополнительном указании команд: list - доступные настройки; help - краткую справку; status - текущее состояние компонента (выполняется по умолчанию), или же изменить это состояние в соответствии с параметром STATUS.

## ФАЙЛЫ

/etc/control.d/facilities/ - каталог со скриптами управления компонентами для control

/etc/control.d/functions - библиотека общих функций для этих скриптов

## ИСТОРИЯ СОЗДАНИЯ
Программа control была разработана для и впервые появилась в Openwall GNU/*/Linux 0.1.

## АВТОР
Solar Designer <solar@owl.openwall.com>

## СМ. ТАКЖЕ
chkconfig(8), control-dump(8)


control-dump

title: control-dump(8)

summary: сохранение и восстановление

text:
# control-dump(8)

## НАЗВАНИЕ
control-dump, control-restore - сохранение и восстановление состояния системных компонентов

## ФОРМАТ ВЫЗОВА
control-dump [FACILITY...]

control-restore [FACILITY...]

## ОПИСАНИЕ
control-dump и control-restore предназначены для использования в предустановочных и постустановочных скриптах дистрибутивных пакетов и позволяют, соответственно, сохранить параметры перед обновлением и восстановить их после обновления.

## ФАЙЛЫ

/var/run/control/* - файлы, создаваемые control-dump для последующего использования control-restore

/etc/control.d/facilities/ - каталог со скриптами управления компонентами для control(8)

/etc/control.d/functions - библиотека общих функций для этих скриптов

## ИСТОРИЯ СОЗДАНИЯ
control-dump и control-restore были разработаны для и впервые появились в ALT Linux Sisyphus и Openwall GNU/*/Linux 1.0

## АВТОРЫ
Dmitry V. Levin <ldv@altlinux.org>

Solar Designer <solar@owl.openwall.com>

## СМ. ТАКЖЕ
chkconfig(8), control(8)


dhcdrop

package: dhcdrop

title: dhcdrop(8)

summary: ��������� ��� ��������� � ������������� ������������������� DHCP

text:
# dhcdrop(8)

## НАЗВАНИЕ
dhcdrop - программа для выявления и нейтрализации несанкционированных DHCP серверов в Ethernet сетях.

## СИНТАКСИС
dhcdrop [ -h ] [ -D ] [ -t ] [ -y ] [ -r ] [ -b ] [ -a ] [ -A ] [ -f ] [ -R ] [ -q ]

[ -m count ] [ -c count ] [ -n hostname ] [ -N clientname ] [ -p port ] [ -P port ] [ -w seconds ]

[ -T timeout ] [ -M max-hosts-scan ] [ -l MAC-address ] [ -L network ] [ -S network/mask ] [ -F from-IP ]

[ -s server-IP ] [ -C children count (2 - 32) ] [ initial-MAC-address ] < -i interface-name|interface-index >

## ОПИСАНИЕ
Подавление DHCP сервера dhcdrop осуществляется при помощи атаки DHCP starvation, либо при помощи флуда DHCPDISCOVER сообщениями. Подробности смотрите ниже. Кроме того, dhcdrop может применяться как средство диагностики и стресс-тестирования при настройке и разработке DHCP серверов.

## ОПЦИИ
-h

показывает help-сообщение, а так же - коды возврата программы.

-D

просмотр списка имён и индексов сетевых интерфейсов. Актуально в ОС Windows - см. пример ниже.

-t

Режим теста. В этом режиме dhcdrop не выполняет подавление сервера. Производится лишь посылка DHCPDISCOVER, если на него приходит ответ от не игнорируемого сервера, то программа заверается возвращаяя код 200 и выводя на экран строку вида

DHCP SRV: 10.7.7.1 (IP-hdr: 10.7.7.1) SRV ether: 00:02:44:75:77:E4, YIP: 10.7.7.205

содержащую содержащую минимум информации о создающем проблему DHCP сервере.

-y

подразумевается ответ "yes" на любой вопрос программы.

-r

отключает рандомизацию MAC адреса источника. Каждый последующий MAC адрес источника отличается от предыдущего на 1.

-b

указывает на необходимость использования флага BROADCAST в отправляемых DHCP пакетах.

-a

всегда ожидать ответа сервера на порт DHCP клиента по умолчанию (68), даже если задано значение номера порта клиента отличное от значения по умолчанию.

-A

всегда ожидать ответа с порта DHCP сервера по умолчанию (67), даже если задано значение номера порта сервера отличное от значения по умолчанию.

-f

режим флуда запросами DHCPDISCOVER. ПРИМЕНЯТЬ С ОСТОРОЖНОСТЬЮ. Удобен для стресс-тестирования сервера. В случае указания опции -r все отправляемые пакеты имеют одинаковый MAC адрес.

-R

отправляет сообщение DHCPRELEASE с MAC адресом источника указанном при запуске программы и IP адресом указанным при помощи опции -F к серверу указанному опцией -s

-q

"тихий" режим работы. Выводится минимум информации.

-m count

максимальное число попыток получения ответа от сервера.

-c count

максимальное число адресов арендуемых у сервера.

-n hostname

значение DHCP опции HostName (по умолчанию - "DHCP-dropper")

-N clientname

значение DHCP опции Vendor-Class (по умолчанию - "DHCP-dropper")

-p port

порт используемый клиентом для отправки DHCP сообщений. По умолчанию - 68

-P port

порт сервера, на который отправляются DHCP сообщения.

-w seconds

задаёт таймаут рестарта процесса получения IP адресов в случае использования агрессивного режима. По умолчанию - 60 секунд.

-T timeout

устанавливает таймаут ожидания ответа сервера (в секундах). По умолчанию - 3 секунды.

-M maximum-hosts

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

-l MAC-address

Ethernet адрес сервера который необходимо игнориновать при выполненении поиска ложных DHCP серверов в сети. В этой опции следует указать адрес DHCP сервера ответственного за раздачу адресов в данном участке сети. Может быть указано несколько адресов - каждый должен предворяться ключом -l

-L legal-network

указывает легальную IP подсеть для выбранного интерфейса. Использование этой опции автоматически включает агрессивный режим получения IP адресов. Может быть указано несколько сетей - каждая должна предворяться ключом -L Подробное описание смотрите ниже.

-S network/mask

ARP сканирование сети 'сеть' с использованием сетевой маски 'маска' в CIDR нотации. IP адрес источника задаётся опцией -F Если IP адрес источника не задан - используется случайный адрес из диапазона указанной подсети. Пример использования смотрите ниже.

-F source-ip

указывает IP адрес источника для сканирования сети (опция -S ), либо IP адрес DHCP клиента для отправки сообщения DHCPRELEASE (опция -R ).

-s server-ip-adress

задаёт IP адрес DHCP сервера. Используется с опцией -R

-C count

число порождаемых процессов-потомков. Совместим только с флагом -f Используется для увеличения числа отправляемых пакетов за еденицу времени.

initial-MAC-address

задаёт MAC адрес источника используемый при отправке первого DHCP сообщения, либо используемый постоянно, в случае использования опции -f (flood) вместе с опцией -r Если не указан, то используется случайный MAC адрес источника.

-i interface

имя либо индекс сетевого интерфейса (см. ключ -D ). Не может быть "any"! Единственный обязательный параметр программы.

## ТЕОРЕТИЧЕСКАЯ ОСНОВА
В протоколе DHCP определена опция, которая задает длительность аренды IP адреса (Lease time) - это время на которое DHCP сервер выдаёт IP адрес в пользование клиенту. По истечении этого временного интервала клиент должен выполнить попытку обновить IP адрес с целью продления аренды. Для сервера выдача IP адреса в аренду означает то, что за время аренды данный IP адрес может быть выдан только владельцу аренды и никому кроме него. Идентификация клиентов сервером производится на основании MAC адреса. Обычно, каждый сервер имеет пул динамических IP адресов, т.е. IP адресов которые не закреплены за конкретными MAC адресами и выдаются динамически по запросу любому клиенту. Пул на SOHO маршрутизаторах в конфигурации по умолчанию имеет небольшой размер - от нескольких десятков до двух сотен адресов. В случае использования ПО, выполняющего роль DHCP сервера, величину пула определяет тот, кто настраивает. Если пул адресов исчерпан, то DHCP сервер игнорирует запросы от новых клиентов (возможно документируя это в логах) - т.е., фактически, бездействует.

Таким образом, в случае появления в сети ложных DHCP их можно нейтрализовать достаточно просто - необходимо получить аренду на все доступные на данном сервере IP адреса, каждый раз посылая запросы от уникальных клиентов. Чем больше время аренды в настройках сервера, тем на больший срок DHCP сервер оказывается нейтрализован в случае исчерпания динамического пула. Для большинства SOHO маршрутизаторов Lease Time исчисляется днями, или даже неделями. В случае использования в качестве DHCP сервера WinGate, dhcpd и прочего подобного софта, время зависит от фантазии человека который его настроил.

## ПРИНЦИП РАБОТЫ dhcdrop
Программа открывает указанный в параметрах командной строки интерфейс в promiscuous режиме, формирует DHCP запрос (DHCPDISCOVER), используя случайный исходящий MAC адрес (если в параметрах не задано иное поведение) и отправляет его в интерфейс:

```
01:58:04.681600 00:70:de:3b:b9:05 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800),
length 342: (tos 0x10, ttl 64, id 33964, offset 0, flags [none],
proto UDP (17), length 328)
0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:70:de:3b:b9:05,
length 300, xid 0xcc1cfc5c, Flags [none]

        Client-Ethernet-Address 00:70:de:3b:b9:05

        Vendor-rfc1048 Extensions

        Magic Cookie 0x63825363

        DHCP-Message Option 53, length 1: Discover

        Parameter-Request Option 55, length 3:

        Domain-Name-Server, Default-Gateway, Subnet-Mask

        Hostname Option 12, length 12: "DHCP-dropper"

        Vendor-Class Option 60, length 12: "DHCP-dropper"

        Client-ID Option 61, length 7: ether 00:70:de:3b:b9:05
```

После чего переходит к ожиданию ответа (DHCPOFFER) сервера. Если получен ответ с предложением аренды IP адреса, то в интерфейс отправляется следующий DHCP запрос (DHCPREQUEST) на который сервер отвечает DHCPACK-пакетом подтверждающим возможность использования данного IP адреса клиентом. На этом операция получения аренды, на предложенный сервером IP адрес, завершена. Программа изменяет MAC адрес источника и вновь посылает DHCPDISCOVER, после чего, все вышеуказанные операции по получению аренды нового IP адреса повторяются. Стоит обрать внимание, что программа изменяет не только MAC адрес клиента в DHCP сообщении, но и MAC адрес в заголовке Ethernet-фрейма. Данная возможность максимально приближает работу программы к работе реального DHCP клиента (а так же, позволяет обойти DHCP snooping). Цикл получения IP адресов с сервера завершается, когда получено заданное параметром максимальное число IP адресов, либо в случае исчерпания динамического пула сервера.

## ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ
Просмотр списка интерфейсов

Актуально в ОС семейства Windows. Используется ключ -D :

```
C:>dhcdrop -D
Available interfaces:
1:\Device\NPF_GenericDialupAdapter

  descr: Adapter for generic dialup and VPN capture
2:\Device\NPF_{0C796DB5-22D9-46AB-9301-9C7ADC2304AF}

  descr: ZyXEL GN650 1000Base-T Adapter          (Microsoft's Packet Scheduler)

  iaddr: 192.168.1.2/24  bcast: 255.255.255.255

  iaddr: 10.7.7.7/24  bcast: 255.255.255.255
```

В качестве аргумента для ключа программы можно задать либо индекс интерфейса 2, либо его имя: \Device\NPF_{0C796DB5-22D9-46AB-9301-9C7ADC2304AF}

Интерактивный режим

Самый простой вариант использования программы для поиска и выбора подавляемого сервера вручную:

```
$ sudo dhcdrop -i eth1
Using interface: 'eth1'
Got response from server 10.7.7.1 (IP-header 10.7.7.1), server ethernet address: 00:02:44:75:77:E4, lease time: 1.1h (3960s)
Got BOOTREPLY (DHCPOFFER) for client ether: 00:16:09:D8:CF:60 You IP: 10.7.7.201/24
Drop him? [y/n] n
Searching next server...
Got response from server 192.168.1.1 (IP-header 192.168.1.1), server ethernet address: 00:1E:2A:52:C8:CA, lease time: 24h (86400s)
Got BOOTREPLY (DHCPOFFER) for client ether: 00:16:09:D8:CF:60 You IP: 192.168.1.2/24
Drop him? [y/n] y
1. Got BOOTREPLY (DHCPACK) for client ether: 00:16:09:D8:CF:60 You IP: 192.168.1.2/24
2. Got BOOTREPLY (DHCPACK) for client ether: 00:A2:FA:12:41:F7 You IP: 192.168.1.3/24
3. Got BOOTREPLY (DHCPACK) for client ether: 00:56:EA:F8:1C:B0 You IP: 192.168.1.4/24
<пропущено>
Wait DHCPOFFER timeout. Resending DHCPDISCOVER.
Wait DHCPOFFER timeout. Resending DHCPDISCOVER.
Finished.
```

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

Режим автоматического подавления всех серверов кроме легитимного

В случае, если мы знаем (а обычно мы знаем) MAC адрес легального DHCP сервера в нашей сети, операцию подавления ложных серверов можно упростить:

```
$ sudo dhcdrop -i eth1 -y -l 00:02:44:75:77:E4
Using interface: 'eth1'
Got response from server 192.168.1.1 (IP-header 192.168.1.1), server ethernet address: 00:1E:2A:52:C8:CA, lease time: 24h (86400s)
Got BOOTREPLY (DHCPOFFER) for client ether: 00:37:C5:10:BE:16 You IP: 192.168.1.2/24
1. Got BOOTREPLY (DHCPACK) for client ether: 00:37:C5:10:BE:16 You IP: 192.168.1.2/24
2. Got BOOTREPLY (DHCPACK) for client ether: 00:94:26:88:33:BD You IP: 192.168.1.3/24
3. Got BOOTREPLY (DHCPACK) for client ether: 00:E5:AC:7B:79:BB You IP: 192.168.1.4/24
<пропущено>
Wait DHCPOFFER timeout. Resending DHCPDISCOVER.
Finished.
```

В подобном варианте использования dhcdrop подавляет любой сервер, кроме указанного опцией -l сервера, не задавая дополнительных вопросов (благодаря использованию опции -y ).

Тестовый режим

Тестовый режим -t удобно использовать для выполнения программы из скриптов, в автоматизированном режиме. Ниже приведён пример простейшего скрипта:

```
00 #!/bin/bash
01 LEGAL_SERVER="00:11:22:33:44:55"
02 DROPPER="/usr/sbin/dhcdrop"
03 IFNAME="eth1"
04 $DROPPER -i $IFNAME -t -l $LEGAL_SERVER -m 3
05 if [ $? = 200 ]
06 then
07    echo Illegal server found Dropping him
08    $DROPPER -i eth1 -l $LEGAL_SERVER -y
09 else
10    echo Illegal server not found.
11 fi
```

В строке 4 выполняется запуск dhcdrop в тестовом режиме, с указанием опции легального для сети DHCP сервера -l , опцией режима тестирования -t и опцией задающей максимальное число попыток отправки DHCPDISCOVER в режиме поиска сервера -m Если ни на один из отправленных запросов не придёт ответа - программа завершается с кодом 0. Если приходит ответ от сервера не заданного опцией -l , программа завершается с кодом 200, что вызывает последующий запуск программы с параметрами определяющими подавление любого DHCP сервера в сети, кроме легального.

Использование агрессивного режима получения адресов

Как можно догадаться из описания протокола DHCP - если клиент уже получил конфигурационный набор данных от нелегального DHCP сервера, то сервер не выдаст повторно этот набор другому клиенту пока не истечёт срок аренды. Следовательно, простое исчерпание пула IP адресов не спасёт клиентов уже получивших неверные конфигурационные данные - сервер будет выдавать эти адреса только изначально запросившим их клиентам и будет игнорировать запросы от dhcdrop. При следующей попытке обновления адреса клиенты вновь получат информацию от нелегального DHCP сервера, и так будет продолжаться пока не отключат нелегальный DHCP сервер. Для решения подобных проблем, в dhcdrop, начиная с версии 0.5, добавлен агрессивный режим получения IP адресов. Включается опцией -L указывающей легитимную IP подсеть для данного Ethernet сегмента сети. Алгоритм его работы следующий: dhcdrop запускает обычный режим подавления и исчерпывает весь пул свободных IP адресов нелегального DHCP сервера. Анализирует первый DHCPOFFER полученный от нелегального DHCP. При помощи сетевой маски и IP адреса клиента выданных сервером получает адрес IP сети обслуживаемой этим сервером. Запускает ARP-сканирование полученной подсети, с целью выявить хосты получившие неправильную конфигурационную информацию. По умолчанию, число сканируемых хостов ограничено числом 512 (можно изменить опцией ) - некоторые сервера выдают конфигурационные наобры с маской /8, что соответствует примерно 16 млн. хостов - сканирование такого адресного диапазона займёт очень большое время. Отправляет DHCP серверу сообщения DHCPRELEASE от каждого из найденных хостов (исключая сам сервер). Ожидает 60 секунд (значение по умолчанию, может быть изменено опцией -w ) после чего перезапускает процесс получения IP адресов.

В качестве примера запустим dhcdrop с теми же параметрами, что и в предыдущем примере, но дополнительно укажем легальную IP сеть 10.7.7.0.

```
$ sudo dhcdrop -i eth1 -y -l 00:02:44:75:77:E4 -L 10.7.7.0
Using interface: 'eth1'
Got response from server 192.168.1.1 (IP-header 192.168.1.1), server ethernet address: 00:1E:2A:52:C8:CA, lease time: 24h (86400s)
Got BOOTREPLY (DHCPOFFER) for client ether: 00:BC:BF:D6:39:2E You IP: 192.168.1.5/24
1. Got BOOTREPLY (DHCPACK) for client ether: 00:BC:BF:D6:39:2E You IP: 192.168.1.5/24
2. Got BOOTREPLY (DHCPACK) for client ether: 00:FB:E7:A4:19:EC You IP: 192.168.1.6/24
3. Got BOOTREPLY (DHCPACK) for client ether: 00:CB:44:F9:A8:6F You IP: 192.168.1.7/24
Wait DHCPOFFER timeout. Resending DHCPDISCOVER.
Wait DHCPOFFER timeout. Resending DHCPDISCOVER.
Wait DHCPOFFER timeout. Resending DHCPDISCOVER.
Wait DHCPOFFER timeout. Resending DHCPDISCOVER.
Wait DHCPOFFER timeout. Resending DHCPDISCOVER.
Trying to use agressive mode.
Starting ARP scanning network in range: 192.168.1.0 - 192.168.1.255...
Illegal DHCP server perhaps assigned IP adresses to the following hosts:
1. Received ARP-reply from: 00:1e:2a:52:c8:ca (192.168.1.1) - itself DHCP server.
2. Received ARP-reply from: 00:03:ff:15:52:90 (192.168.1.3)
3. Received ARP-reply from: 00:03:ff:14:52:90 (192.168.1.4)
4. Received ARP-reply from: 00:a0:c5:30:52:90 (192.168.1.200)
Sending DHCPRELEASE for invalid clients:
Send DHCPRELEASE for host 00:03:ff:15:52:90 (192.168.1.3).
Send DHCPRELEASE for host 00:03:ff:14:52:90 (192.168.1.4).
Send DHCPRELEASE for host 00:a0:c5:30:52:90 (192.168.1.200).
Restart dropping DHCP server after 60 seconds timeout...
1. Got BOOTREPLY (DHCPACK) for client ether: 00:BC:BF:D6:39:2E You IP: 192.168.1.5/24
2. Got BOOTREPLY (DHCPACK) for client ether: 00:F1:32:14:60:A3 You IP: 192.168.1.3/24
3. Got BOOTREPLY (DHCPACK) for client ether: 00:2D:1C:80:ED:12 You IP: 192.168.1.4/24
Wait DHCPOFFER timeout. Resending DHCPDISCOVER.
Wait DHCPOFFER timeout. Resending DHCPDISCOVER.
Wait DHCPOFFER timeout. Resending DHCPDISCOVER.
Wait DHCPOFFER timeout. Resending DHCPDISCOVER.
Wait DHCPOFFER timeout. Resending DHCPDISCOVER.
WARNING: Failed to take away all the IP addresses assigned by DHCP server.
Perhaps DHCP server checks availability of IP addresses by sending ARP-request
before assigning them. Try to restart dhcpdrop later. If it doesn't help
try to disconnect problem hosts temporarily, then send manually DHCPRELEASE
from address of this hosts (use option -R) and restart dhcdrop.
Finished.
```

Пояснения к результатам работы программы. После вывода надписи "Trying to use agressive mode." начинается ARP сканирование подсети обслуживаемой нелегальным DHCP сервером в указанном диапазоне. В результате найдено 4 хоста, включая сам DHCP сервер (1й хост). Затем, dhcdrop посылает серверу 192.168.1.1 сообщения DHCPRELEASE от адресов (Ethernet & IP) всех хостов найденных в подсети кроме самого DHCP сервера и останавливает выполнение на 60 секунд. Таймаут необходим потому, что некоторые DHCP сервера удерживают выдачу IP адреса новому клиенту в течение небольшого времени после получения сообщения DHCPRELEASE от предыдущего клиента. В случае необходмости значение таймаута можно изменить опцией -w. По истечении таймаута, dhcdrop запускает процесс получения освободившихся IP адресов. Успешно удалось получить IP адреса 192.168.1.5 (был получен изначально, при старте программы), 192.168.1.3 и 192.168.1.4. Последние два адреса были успешно особождены сервером после получения сообщений DHCPRELEASE сгенерированных dhcdrop. Не удалось получить адрес 192.168.1.200 несмотря на присутствие этого хоста в сети, и то, что от его адреса было отправлено сообщение DHCPRELEASE. Одна из причин неудачи описана в предупреждении, в конце вывода программы - DHCP сервер перед выдачей адресов может проверять присутствует ли в сети хост с запрашиваемым IP адресом и только после этого - выдавать адрес, если таковой хост в сети отсутствует. В противном случае - новая аренда на этот адрес выдана не будет. В этой ситуации может помочь отключение проблемных хостов от сети вручную и отправка сообщений DHCPRELEASE от адреса этих хостов серверу (см. пример ниже), после чего необходимо снова запустить процесс получения IP адресов. Но в нашем случае проблема кроется не в этом - хост 192.168.1.200 имеет статически установленный адрес и потому никогда не запрашивал конфигурации у DHCP сервера. Сама необходимость указания легальной сети для запуска агрессивного режима необходима что бы проверить - не пересекается ли адресный диапазон выдаваемый нелегальным DHCP сервером с адресным пространством подсети в которой он обнаружен. Если адресные пространства пересекаются - ARP сканирование будет проведено по хостам имеющим правильную конфигурацию и выведет ошибочную информацию. Потому в случае обнаружения пересечения диапазонов адресов агрессивный режим не запускается.

Отправка сообщения DHCPRELEASE

Возможно у вас возникнет необходимость отправки сообщений DHCPRELEASE в ручном режиме. Например по причине указанной в предыдущем примере. Сделать это можно при помощи опции -R :

```
$ sudo dhcdrop -i eth1 -R -s 192.168.1.1 -F 192.168.1.4 00:2D:1C:80:ED:12
Using interface: 'eth1'
Send DHCPRELEASE from 00:2D:1C:80:ED:12 client IP 192.168.1.4 to DHCP server 192.168.1.1
Finished.
```

Опция -s задаёт IP адрес сервера, -F - IP адрес DHCP клиента, 00:2D:1C:80:ED:12 - Ethernet адрес клиента. В результате в сеть отправлен пакет вида:

```
16:13:43.887735 00:2d:1c:80:ed:12 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342:
(tos 0x10, ttl 64, id 29807, offset 0, flags [none], proto UDP (17), length 328)
0.0.0.0.68 > 192.168.1.1.67: BOOTP/DHCP, Request from 00:2d:1c:80:ed:12,
length 300, xid 0xb2f04a28, Flags [none]

    Client-IP 192.168.1.4

    Client-Ethernet-Address 00:2d:1c:80:ed:12

    Vendor-rfc1048 Extensions

    Magic Cookie 0x63825363

    DHCP-Message Option 53, length 1: Release

    Server-ID Option 54, length 4: 192.168.1.1

    Client-ID Option 61, length 7: ether 00:2d:1c:80:ed:12
```

Сканирование сегмента сети

Вы можете использовать ARP сканирование сети для поиска клиентов получивших неверную конфигурационную информацию. Осуществляется подобное при помощи опции -S :

```
$ dhcdrop -i eth1 -S 192.168.1.0/24
Using interface: 'eth1'
Starting ARP-scanning for subnet 192.168.1.0/24.
IP address range 192.168.1.0 - 192.168.1.255.
WARNING: Source IP is not set (use option -F).
Using random value for source IP address: 192.168.1.195
1. Received ARP-reply from: 00:1e:2a:52:c8:ca (192.168.1.1).
2. Received ARP-reply from: 00:a0:c5:30:52:90 (192.168.1.200).
Finished.
```

Как следует из предупреждения напечатанного программой - при запуске не был задан IP адрес источника, потому dhcdrop выбирает случайный IP адрес из диапазона адресов указанной подсети. Если вам нужно указать адрес источника - используйте опцию -F Для данного типа сканирования не важны фактические настройки маршрутизации в вашей сети. Всегда будет использоваться интерфейс заданный опцией -i из расчёта что хосты указанной подсети находятся в одном Ethernet сегменте с хостом на котором запущен dhcdrop. Так же, данная опция позволяет обнаружить дублирование IP адресов в одном сегменте сети, даже если сканирование производится с хоста чей IP адрес дублируется другим хостом.

## АВТОР
Эта программа была написана Roman Chebotarev <roma@ultranet.ru>, Какие-либо замечания/предложения/пожелания по поводу данной программы, сообщайте по адресу <roma@ultranet.ru>.

## MAN ФАЙЛ
Страница руководства создана Andrew Clark <andyc@altlinux.org>, на основе статьи автора програмы по адресу - http://www.netpatch.ru/dhcdrop.html


accessdb

package: man-db

title: accessdb(8)

summary: сбрасывает содержимое базы данных man\-db в понятный человеку

text:
# accessdb(8)

## НАЗВАНИЕ
accessdb - сбрасывает содержимое базы данных man-db в понятный человеку формат

## СИНТАКСИС
/usr/sbin/accessdb [-d?V] [<index-файл>]

## ОПИСАНИЕ
accessdb выводит данные, содержащиеся внутри базы данных man-db в понятном человеку формате. По умолчанию, данные выводятся из файла /var/cache/man/index.<db-type>, где <db-type> зависит от используемой библиотеки базы данных.

Передача accessdb параметра заменяет это значение по умолчанию.

## ПАРАМЕТРЫ
-d, --debug

Показывать отладочную информацию.

-?, --help

Показать справочное сообщение и закончить работу.

--usage

Показать короткое сообщение об использовании и завершить работу.

-V, --version

Показать информацию о версии.

## АВТОР

```
Wilf. (G.Wilford@ee.surrey.ac.uk).
Fabrizio Polacco (fpolacco@debian.org).
Colin Watson (cjwatson@debian.org).
```

## ОШИБКИ
https://gitlab.com/man-db/man-db/-/issues

https://savannah.nongnu.org/bugs/?group=man-db


catman

title: catman(8)

text:
# catman(8)

## НАЗВАНИЕ
catman - создаёт или обновляет уже отформатированные справочные страницы

## СИНТАКСИС
catman [-d?V] [-M путь] [-C файл] [раздел] ...

## ОПИСАНИЕ
catman используется для создания новейших отформатированных справочных страниц, называемых cat страницами. Cat страницы, обычно, намного быстрее отображаются, чем исходные справочные страницы, но для их хранения требуется дополнительное место. Решение о существовании определённых cat страниц принимает локальный администратор, который должен предоставить подходящие каталоги для их хранения.

В параметрах catman задаются иерархии справочных страниц и разделы, которые должны быть отформатированы заранее. Иерархиями по умолчанию считаются системные иерархии, указанные в файле настроек man-db, а разделы по умолчанию берутся из значения переменной окружения $MANSECT (список значений через двоеточие) или из значения, заданного при компиляции man, если переменная окружения $MANSECT не установлена. При указании catman списка имён разделов через пробельный символ, он заменит оба эти значения по умолчанию.

При определении файлов для форматирования по каждой иерархии catman использует кэш базы данных index.

## ПАРАМЕТРЫ
-d, --debug

Показывать отладочную информацию.

-M путь, --manpath=путь

Задаёт альтернативный путь поиска иерархии справочных страниц (указываются через двоеточие). По умолчанию, используются все пути, отмеченные как системные иерархии в файле настроек man-db.

-C файл, --config-file=файл

Использовать указанный пользовательский файл настройки вместо значения по умолчанию ~/.manpath.

-?, --help

Показать справочное сообщение и закончить работу.

--usage

Показать короткое сообщение об использовании и завершить работу.

-V, --version

Показать информацию о версии.

## ОКРУЖЕНИЕ
MANSECT

Если установлена переменная окружения $MANSECT, то её значением является список разделов, указанных через двоеточие, и она используется для задания разделов справочных страниц, в которых будет производится поиск и в каком порядке. Значением по умолчанию является «1 1p 8 2 3 3p 4 5 6 7 9 0p n l p o 1x 2x 3x 4x 5x 6x 7x 8x», если оно не заменено директивой SECTION в /etc/man_db.conf.

MANPATH

Если установлена переменная окружения $MANPATH, то она рассматривается как набор каталогов (через двоеточие) иерархии справочных страниц для использования при поиске. О том, как используется эта переменная окружения и поведение по умолчанию, смотрите раздел ПУТЬ ПОИСКА в manpath(5).

## ФАЙЛЫ
/etc/man_db.conf

Файл настройки man-db.

/usr/man/index.(bt|db|dir|pag)

Традиционный кэш глобальной базы данных index.

/var/catman/index.(bt|db|dir|pag)

Альтернативный или соответствующий FSSTND, глобальный кэш базы данных index.

## СМОТРИТЕ ТАКЖЕ
man(1), manpath(5), mandb(8)

## АВТОР

```
Wilf. (G.Wilford@ee.surrey.ac.uk).
Fabrizio Polacco (fpolacco@debian.org).
Colin Watson (cjwatson@debian.org).
```

## ОШИБКИ
https://gitlab.com/man-db/man-db/-/issues

https://savannah.nongnu.org/bugs/?group=man-db


mandb

title: mandb(8)

text:
# mandb(8)

## НАЗВАНИЕ
mandb - создаёт или обновляет кэши index справочных страниц

## СИНТАКСИС
mandb [-dqsucpt?V] [-C файл] [manpath]

mandb [-dqsut] [-C файл] -f имя_файла ...

## ОПИСАНИЕ
mandb используется для инициализации или ручного обновления кэшей базы данных index. В кэшах содержится информация о текущем состоянии системы справочных страниц, а хранящаяся в них информация используется утилитами man-db для повышения скорости работы и функциональности.

При создании или обновлении index, mandb предупреждает о неверных запросах ROFF .so, фиктивных именах файлов справочных страниц и справочных страницах, которые не удалось проанализировать с помощью whatis.

Указываемые при запуске mandb необязательные пути (через двоеточие) заменят внутренний путь поиска иерархии системных справочных страниц, определённый из файла настроек man-db.

## КЭШИ БАЗЫ ДАННЫХ
mandb может быть собрана с поддержкой одного из следующих типов баз данных:

Название

Асинхронность

Имя файла

Berkeley db

Да

index.bt

GNU gdbm

Да

index.db

UNIX ndbm

Нет

index.(dir|pag)

Типы баз данных, которые поддерживают асинхронные обновления, предоставляют лучшее отношение скорости к возможности повреждения в случае неожиданного прерывания работы. Если это происходит, может потребоваться перезапустить mandb с параметром -c, чтобы пересоздать базы данных с нуля.

## ПАРАМЕТРЫ
-d, --debug

Показывать отладочную информацию.

-q, --quiet

Не выдавать предупреждения.

-s, --no-straycats

Не тратить время на поиск или добавление информации в базы данных по stray cats.

-p, --no-purge

Не тратить время на проверку удалённых справочных страниц или их вычистку из баз данных.

-c, --create

По умолчанию, mandb пытается обновить любые ранее созданные базы данных. Если база данных не существует, то она будет создана. Этот параметр заставляет mandb удалить имеющиеся базы данных и пересоздать их с нуля, и заключает в себе --no-purge. Это может быть необходимо при повреждении базы данных, или если в будущем будет использоваться новая схема хранения базы данных.

-u, --user-db

Создать только пользовательские базы данных, даже имея права на запись, необходимые для создания системных баз данных.

-t, --test

Выполнить проверку на правильность справочных страниц в иерархическом пути поиска. При указании этого параметра mandb не изменяет существующие базы данных.

-f, --filename

Обновить записи только для заданного файла. Этот параметр не для повседневного использования; он используется для служебных целей man, когда она собрана с параметром MAN_DB_UPDATES и обнаруживает, что страница устарела. Это подразумевает -p и выключает -c и -s.

-C файл, --config-file=файл

Использовать указанный пользовательский файл настройки вместо значения по умолчанию ~/.manpath.

-?, --help

Показать это справочное сообщение и закончить работу.

--usage

Показать короткое сообщение об использовании и завершить работу.

-V, --version

Показать версию и закончить работу.

## КОД ВЫХОДА
0

Успешное выполнение программы.

1

Ошибка при использовании, в синтаксисе или файле настроек.

2

Ошибка при работе.

3

Работа процесса-потомка завершилась неудачно.

## ДИАГНОСТИКА
Во время создания базы данных могут появляться следующие предупреждения.

<имя файла>: ошибка анализа страниц(ы) программой whatis

Программа whatis пыталась извлечь строки из указанного <файла>, но это не удалось. Обычно, эта ошибка возникает, если справочная страница плохо написана, а если таких сообщений возникает много, то, скорее всего, в системе содержатся нестандартные справочные страницы, несовместимые с анализатором man-db whatis. Более подробное описание смотрите в разделе ЧТО АНАЛИЗИРУЕТСЯ на странице lexgrog(1).

<имя файла>: повисшая символическая ссылка

<Файл> не существует, но на него ссылаются по символической ссылке. При дальнейшей диагностике, обычно, появятся сообщения, указывающие на <файл> с неправильной ссылкой.

<имя файла>: неверная символическая ссылка или ROFF `.so' запрос

<Файл>, или указывает на символическую ссылку, или содержит ROFF include запрос на несуществующий файл.

<имя файла>: игнорируется фиктивное имя файла

<Файл> может (или не может) быть допустимой справочной страницей, но это имя неправильно. Обычно, это происходит со справочными страницами, имеющими раздельческое расширение <x>, но лежащими в разделе <y>.

<маска имени файла>: конкурирующие расширения

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

## ФАЙЛЫ
/etc/man_db.conf

Файл настройки man-db.

/var/cache/man/index.(bt|db|dir|pag)

Соответствующий FHS глобальный кэш базы данных index.

Места, где кэш базы данных находился ранее:

/usr/man/index.(bt|db|dir|pag)

Традиционный кэш глобальной базы данных index.

/var/catman/index.(bt|db|dir|pag)

Альтернативный или соответствующий FSSTND, глобальный кэш базы данных index.

## СМОТРИТЕ ТАКЖЕ
lexgrog(1), man(1), manpath(5), catman(8)

Прежде в этой странице был раздел ЧТО АНАЛИЗИРУЕТСЯ, но теперь он перенесён в lexgrog(1).

## АВТОР

```
Wilf. (G.Wilford@ee.surrey.ac.uk).
Fabrizio Polacco (fpolacco@debian.org).
Colin Watson (cjwatson@debian.org).
```

## ОШИБКИ
https://gitlab.com/man-db/man-db/-/issues

https://savannah.nongnu.org/bugs/?group=man-db


iconvconfig

package: man-pages-ru

title: iconvconfig(8)

summary: создаёт кэш настроек модуля iconv

text:
# iconvconfig(8)

## ИМЯ
iconvconfig - создаёт кэш настроек модуля iconv

## ОБЗОР
iconvconfig [параметры] [каталог]…

## ОПИСАНИЕ
Функция iconv(3) использует модули gconv для преобразования между наборами символов. Файл настройки используется для определения необходимости модулей для преобразования. Загрузка и обработка такого файла настройки замедляла бы программу, использующую iconv(3), поэтому задействуется кэширующий механизм.

Программа iconvconfig читает файлы настройки модуля iconv и записывает быстро загружаемый файл кэша настроек модуля gconv.

Кроме модулей gconv, предоставляемых системой, пользователь может задавать свои каталоги модулей gconv в переменной окружения GCONV_PATH. Однако кэширование настроек модуля iconv используется только, если переменная окружения GCONV_PATH отсутствует.

## ПАРАМЕТРЫ
--nostdlib

Не искать в системном каталоге gconv по умолчанию, использовать только каталоги, заданные в командной строке.

-o файл_результата, --output=файл_результата

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

--prefix=путь

Задать префикс, который ставится в начало системных путей. Смотрите ФАЙЛЫ далее. По умолчанию префикс отсутствует. Если в качестве префикса указать foo, настройка модуля gconv будет читаться из foo/usr/lib/gconv/gconv-modules, а кэш будет записываться в foo/usr/lib/gconv/gconv-modules.cache.

-?, --help

Показать справку по использованию и завершить работу.

--usage

Показать краткую справку по использованию и завершить работу.

-V, --version

Показать номер версии, лицензию и уведомление о гарантиях для iconv.

## КОД ВЫХОДА
При успешном выполнении возвращается 0, при ошибках возвращается ненулевое значение.

## ФАЙЛЫ
/usr/lib/gconv

Обычный путь по умолчанию модуля gconv.

/usr/lib/gconv/gconv-modules

Обычный файл настройки по умолчанию модуля gconv.

/usr/lib/gconv/gconv-modules.cache

Обычный путь кэша настроек модуля gconv.

## СМОТРИТЕ ТАКЖЕ
iconv(1), iconv(3)


intro

title: intro(8)

text:
# intro(8)

## ИМЯ
intro - введение в административные и привилегированные команды

## ОПИСАНИЕ
В разделе 8 описываются команды, которые могут быть использованы, либо используются исключительно суперпользователем: например, команды управления системой, службы и команды для управления аппаратурой.

Как и команды, описываемые в разделе 1, команды, описываемые в этом разделе, по завершению возвращают код результата, который указывает, выполнилась ли команда успешно или нет. Подробней смотрите intro(1).

## ЗАМЕЧАНИЯ

### Авторы и условия распространения
Авторы и условия распространения указаны в заголовке исходной справочной страницы. Заметим, что у разных страниц они могут быть разными! Список русских переводчиков для каждой страницы можно найти в .po файле в исходном коде пакета.


ld.so

title: ld.so(8)

summary: динамический компоновщик/загрузчик

text:
# ld.so(8)

## ИМЯ
ld.so, ld-linux.so - динамический компоновщик/загрузчик

## ОБЗОР
Динамический компоновщик может запускаться неявно из динамически скомпонованной программы или общего объекта (в этом случае динамическому компоновщику невозможно передать параметры командной строки, как и в случае с ELF, когда динамический компоновщик хранится в разделе .interp исполняемой программы) или явно с помощью вызова:

/lib/ld-linux.so.* [ПАРАМЕТРЫ] [ПРОГРАММА [АРГУМЕНТЫ]]

## ОПИСАНИЕ
Программы ld.so и ld-linux.so* ищут и загружают общие объекты (общие библиотеки), необходимые программе, а также подготавливают программу к запуску и запускают её.

Для двоичных файлов Linux требуется динамическая компоновка (компоновка во время выполнения), если при сборке программе ld(1) не был передан параметр -static.

Программа ld.so предназначена для обработки двоичных файлов в формате a.out, который используется с давних пор. Программа ld-linux.so* (/lib/ld-linux.so.1, если используется libc5 и /lib/ld-linux.so.2, если glibc2) предназначена для обработки файлов в более современном формате ELF. Обе программы ведут себя одинаково и используют одни и те же файлы поддержки и программы (ldd(1), ldconfig(8) и /etc/ld.so.conf).

При определении зависимостей общего объекта, динамический компоновщик сначала просматривает каждую строку зависимости в поисках символа косой черты (такое случается, если путь общего объекта с косой чертой был задан во время компоновки). Если косая черта найдена, то строка зависимости воспринимается как путь (относительный или абсолютный), и общий объект загружается исходя из этого пути.

Если в зависимости общего объекта отсутствует косая черта, то поиск выполняется в следующем порядке:

o

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

o

В переменной окружения LD_LIBRARY_PATH, если исполняемый файл не выполняется в режиме безопасного выполнения (смотрите далее), в котором данная переменная игнорируется.

o

В каталогах, указанных в атрибуте DT_RUNPATH динамического раздела двоичного файла, если он есть. Эти каталоги просматриваются только при поиске объектов, требуемых элементами DT_NEEDED (прямые зависимости) и не применяются к дочерним объектам, которые сами должны иметь свои собственные элементы DT_RUNPATH. В этом отличие от DT_RPATH, которые применяются при поиске для всех потомков в дереве зависимостей.

o

В кэш-файле /etc/ld.so.cache, содержащем скомпилированный список кандидатов общих объектов, которые ранее были найдены по указанным путям расположения библиотек. Однако, если при сборке двоичного файла компоновщику был указан параметр -z nodeflib, то общие объекты в путях по умолчанию будут пропущены. Общие объекты, установленные в каталоги для аппаратных возможностей (см. далее) имеют больший приоритет, чем остальные общие объекты.

o

В каталоге по умолчанию /lib и затем в /usr/lib (на некоторых 64-битных архитектурах путь по умолчанию для 64-битных объектов — /lib64 и затем /usr/lib64). Если при сборке двоичного файла компоновщику был указан параметр -z nodeflib, то этот шаг пропускается.

### Раскрытие токена rpath
Динамический компоновщик распознаёт определённые строковые токены в значении rpath (DT_RPATH или DT_RUNPATH). Эти строки заменяются на:

$ORIGIN (или ${ORIGIN})

Она раскрывается в каталог, содержащий программу или общий объект. Таким образом, приложение, расположенное в somedir/app может компилироваться с

gcc -Wl,-rpath,'$ORIGIN/../lib'

для того, чтобы оно могло найти связанный общий объект в somedir/lib и не важно где в иерархии каталогов будет находиться somedir. Это облегчает создание приложений «под ключ», которые вместо установки в специальные каталоги, можно просто распаковать в любой каталог, и они всё равно найдут свои общие объекты.

$LIB (или ${LIB})

Она раскрывается в lib или lib64, в зависимости от архитектуры (например, на x86-64 она заменяется на lib64, а на x86-32 она заменяется на lib).

$PLATFORM (или ${PLATFORM})

Преобразуется в строку, соответствующую типу процессора узла (например, «x86_64»). На некоторых архитектурах ядро Linux не предоставляет строку платформы динамическому компоновщику. Значение этой строки берётся из значения AT_PLATFORM вспомогательного вектора (смотрите getauxval(3)).

## ПАРАМЕТРЫ
--audit список

Использовать объекты из списка в качестве аудиторов. Объекты в list разделяются двоеточиями.

--inhibit-cache

Не использовать /etc/ld.so.cache.

--library-path путь

Использовать путь вместо значения переменной окружения LD_LIBRARY_PATH (смотрите далее). Имена ORIGIN, LIB и PLATFORM рассматриваются также как переменная окружения LD_LIBRARY_PATH.

--inhibit-rpath список

Игнорировать информацию в RPATH и RUNPATH об именах объектов из списка. Этот параметр игнорируется в режиме безопасного выполнения (смотрите далее). Объекты в list разделяются двоеточиями или пробелами.

--list

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

--preload list (начиная с glibc 2.30)

Предварительно загружать объекты, указанные в list. Объекты в list разделяются двоеточиями или пробелами. Предварительная загрузка объектов описана далее, в разделе о переменной окружения LD_PRELOAD.

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

--verify

Проверить, что программа является динамически скомпонованной и что компоновщик понимает её формат.

## ОКРУЖЕНИЕ
На поведение динамического компоновщика влияют различные переменные окружения.

### Безопасный режим выполнения
В целях безопасности, если динамический компоновщик определяет, что двоичный файл должен быть запущен в безопасном режиме выполнения, действие некоторых переменных окружения отменяется или изменяется; кроме этого, эти переменные окружения удаляются из окружения, и программа даже не увидит, что они определены. Некоторые из этих переменных окружения влияют на работу самого динамического компоновщика, и они описаны ниже. Другие переменные окружения, учитываемые подобным образом: GCONV_PATH, GETCONF_DIR, HOSTALIASES, LOCALDOMAIN, LOCPATH, MALLOC_TRACE, NIS_PATH, NLSPATH, RESOLV_HOST_CONF, RES_OPTIONS, TMPDIR и TZDIR.

Двоичный файл выполняется в безопасном режиме выполнения, если запись AT_SECURE в вспомогательном векторе (смотрите getauxval(3)) содержит ненулевое значение. Эта запись может иметь ненулевое значение по разным причинам:

- У процесса различаются реальный и эффективный идентификатор пользователя/группы. Обычно, это происходит в результате выполнения программ с установленным битом set-user-ID или set-group-ID.

- Процесс с пользовательским ID не равным root, выполняет файл, который присваивает мандаты процессу.

- Ненулевое значение может установить Linux Security Module.

### Переменные окружения
Среди наиболее важных переменных окружения следует выделить следующие:

LD_ASSUME_KERNEL (начиная с glibc 2.2.3)

Каждый общий объект может сообщать динамическому компоновщику о требуемой минимальной версии ядерного ABI (это требование кодируется в разделе ELF note, который можно просмотреть с помощью readelf -n, под меткой NT_GNU_ABI_TAG). Во время выполнения динамический компоновщик определяет версию ABI запущенного ядра и не будет загружать общие объекты, у которых минимальная версия ABI превышает версию ядра.

LD_ASSUME_KERNEL можно использовать, чтобы заставить динамический компоновщик предполагать, что он работает в системе с другой версией ядра ABI. Например, следующая команда заставляет динамический компоновщик при загрузке общих объектов, требуемых myprog, предполагать, что он запущен на Linux с версией 2.2.5:

```
$ LD_ASSUME_KERNEL=2.2.5 ./myprog

```

В системах, предоставляющих несколько версий общего объекта (в различных каталогах пути поиска) с разными требованиями к минимальной версии ядра ABI, LD_ASSUME_KERNEL может использоваться для выбора версии объекта, которую нужно задействовать (в зависимости от порядка поиска в каталогах).

Исторически, свойство LD_ASSUME_KERNEL наиболее часто использовалось при ручном выборе старых реализаций нитей POSIX LinuxThreads в системах, которые предоставляли и LinuxThreads, и NPTL (в последствии стала базовой в таких системах); смотрите pthreads(7).

LD_BIND_NOW (начиная с glibc 2.1.1)

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

LD_LIBRARY_PATH

Список каталогов, в которых будет производиться поиск библиотек ELF в момент выполнения. Элементы списка разделяются двоеточиями или точками с запятой (экранирование этих разделителей не поддерживается).

Данная переменная игнорируется в режиме безопасного выполнения.

Внутри путей, указанных в LD_LIBRARY_PATH, динамический компоновщик раскрывает токены $ORIGIN, $LIB и $PLATFORM (или версии, использующие фигурные скобки вокруг имён) как описано выше в разделе Раскрытие токена rpath. Таким образом, например, следующее значение заставит искать библиотеку в подкаталогах lib или lib64, находящихся ниже каталога, содержащего исполняемую программу:

```
$ LD_LIBRARY_PATH='$ORIGIN/$LIB' prog

```

(Обратите внимание на одиночные кавычки, которые не позволяют раскрывать $ORIGIN и $LIB как переменные оболочки!)

LD_PRELOAD

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

Элементы списка разделяются пробелами или двоеточиями, экранирование этих разделителей не поддерживается. Объекты ищутся согласно правилам из ОПИСАНИЯ. Найденные объекты добавляются в карту связей согласно списку, в порядке слева направо.

В режиме безопасного выполнения предварительная загрузка файлов с символами косой черты не выполняется. Кроме того, загружаются общие объекты только из стандартных каталогов поиска и с включённым битом режима set-user-ID (что не типично).

Внутри имён, указанных в списке LD_PRELOAD, динамический компоновщик раскрывает токены $ORIGIN, $LIB и $PLATFORM (или версии, использующие фигурные скобки вокруг имён) как описано выше в разделе Раскрытие токена rpath (также смотрите описание цитирования в LD_LIBRARY_PATH).

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

(1)

Переменная окружения LD_PRELOAD.

(2)

Параметр командной строки --preload, при непосредственном вызове динамического компоновщика.

(3)

Файл /etc/ld.so.preload (смотрите ниже).

LD_TRACE_LOADED_OBJECTS

Если установлена (любое значение), то вместо нормального запуска программы будут выданы её динамические зависимости, как если бы она была запущена ldd(1).

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

LD_AUDIT (начиная с glibc 2.4)

Определяемый пользователем список общих объектов ELF, которые будут загружены раньше всех остальных в отдельное пространство имён компоновщика (т. е., они не внедряются вместо обычных привязываемых символов, которые могли бы быть в этом процессе). Эти объекты можно использовать для контрольной проверки операций динамического компоновщика. Элементы в списке разделяются двоеточиями и двоеточия нельзя экранировать.

Переменная LD_AUDIT игнорируется в режиме безопасного выполнения.

Динамический компоновщик будет уведомлять общие объекты контроля в так называемых точках контроля — например, при загрузке нового общего объекта, поиске символа или при вызове символа из другого динамического объекта — вызывая соответствующую функцию из общего объекта контроля. Подробности смотрите в rtld-audit(7). Интерфейс контроля в значительной степени совместим с представленным в Solaris, описан в его Руководстве по компоновщику и библиотекам (Linker and Libraries Guide) в главе Интерфейс контроля компоновщика во время выполнения (Runtime Linker Auditing Interface).

Внутри имён, указанных в списке LD_AUDIT, динамический компоновщик раскрывает токены $ORIGIN, $LIB и $PLATFORM (или версии, использующие фигурные скобки вокруг имён) как описано выше в разделе Раскрытие токена rpath (также смотрите описание цитирования в LD_LIBRARY_PATH).

Начиная с glibc 2.13 в режиме безопасного выполнения имена в списке контрольной проверки, содержащие символы косой черты, игнорируются, и загружаются только общие объекты с включённым битом режима set-user-ID из стандартных каталогов поиска.

LD_BIND_NOT (начиная с glibc 2.1.95)

Если эта переменная окружения не равна пустой строке, то не обновлять GOT (global offset table — таблицу глобальных перемещений) и PLT (procedure linkage table — таблицу компоновки процедур) после определения символа функции. Совместное использовав эту переменную с LD_DEBUG (с категориями bindings и symbols), можно увидеть все привязки функции во время выполнения.

LD_DEBUG (начиная с glibc 2.1)

Выводить подробную отладочную информацию об операции динамического компоновщика. Содержимое этой переменной равно одной или нескольким следующим категориям, разделённым двоеточием, запятой или (если значение в кавычках) пробелом:

help

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

all

Показать всю отладочную информацию (за исключением statistics и unused; смотрите ниже).

bindings

Показать информацию о том, какое определение привязано к каждому символу.

files

Показать ход обработки входного файла.

libs

Показать пути поиска библиотек.

reloc

Показать обработку перемещений.

scopes

Показать информацию об областях.

statistics

Показать статистику по перемещениям.

symbols

Показать пути поиска при нахождении каждого символа.

unused

Определить неиспользуемые DSO.

versions

Показать зависимости от версий.

Начиная с glibc 2.3.4, LD_DEBUG игнорируется в режиме безопасного выполнения, если существует файл /etc/suid-debug (содержимое файла не важно).

LD_DEBUG_OUTPUT (начиная с glibc 2.1)

По умолчанию вывод LD_DEBUG записывается в стандартный поток ошибок. Если LD_DEBUG_OUTPUT определена, то вывод записывается в указанной значением файл с добавлением суффикса «.» (точка) ID процесса.

Переменная LD_DEBUG_OUTPUT игнорируется в режиме безопасного выполнения.

LD_DYNAMIC_WEAK (начиная с glibc 2.1.91)

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

В старых версией glibc (до 2.2) было другое поведение: если компоновщик определяет, что символ слабый, то он запоминает этот символ и продолжает поиск в оставшихся общих библиотеках. Если в последствии находится строгое определение того же символа, то он используется вместо запомненного (если больше символов не нашлось, то динамический компоновщик использует слабый символ, который был найден раньше).

Поведение старой glibc является нестандартным (стандартной практикой является учёт различия слабых и строгих символов только в момент статической компоновки). Текущее поведение динамического компоновщика появилось в glibc 2.2 (такое поведение предоставлялось в то время большинством других реализаций).

Создание переменной окружения LD_DYNAMIC_WEAK (с любым значением) включает старое (нестандартное) поведение glibc, тем самым, слабые символы одной общей библиотеки могут заменяться строгими символами, обнаруженными в другой библиотеке (заметим, что даже когда эта переменная установлена, строгие символы общей библиотеки не заменят слабые определения того же символа в основной программе).

Начиная с glibc 2.3.4, LD_DYNAMIC_WEAK игнорируется в режиме безопасного выполнения.

LD_HWCAP_MASK (начиная с glibc 2.1)

Маска для совместимости с аппаратными возможностями.

LD_ORIGIN_PATH (начиная с glibc 2.1)

Путь, где находится двоичный файл.

Начиная с glibc 2.4, LD_ORIGIN_PATH игнорируется в режиме безопасного выполнения.

LD_POINTER_GUARD (в glibc с 2.4 по 2.22)

Значение 0 отключает защиту указателя. Любое другое значение включает защиту указателя, что является действием по умолчанию. Защита указателя — это механизм безопасности, в результате которого некоторые указатели на код, хранящийся в перезаписываемой памяти программы (адреса возврата, сохраняемые setjmp(3) или указатели на функцию, используемые различными внутренними функциями glibc), искажаются полупроизвольным образом, что затрудняет атакующему подбор указателей для проведения атак переполнения буфера или срыва стека. Начиная с glibc 2.23, LD_POINTER_GUARD можно больше не использовать для отключения защиты указателя, так как теперь она всегда включена.

LD_PROFILE (начиная с glibc 2.1)

В переменной задаётся имя динамического объекта (одного) для профилирования, в виде пути или имени so. Результат профилирования записывается в файл с именем: «$LD_PROFILE_OUTPUT/$LD_PROFILE».

Начиная с glibc 2.2.5, LD_PROFILE игнорируется в режиме безопасного выполнения.

LD_PROFILE_OUTPUT (начиная с glibc 2.1)

Каталог, куда будет сохраняться результат работы с LD_PROFILE. Если эта переменная не определена или её значение равно пустой строке, то по умолчанию результат будет сохранён в каталог /var/tmp.

Переменная LD_PROFILE_OUTPUT игнорируется в режиме безопасного выполнения; вместо неё всегда используется /var/profile (это относится только к glibc до версии 2.2.5, так как в более новых версиях LD_PROFILE также игнорируется в режиме безопасного выполнения).

LD_SHOW_AUXV (начиная с glibc 2.1)

Если эта переменная окружения определена (с любым значением), то показывается вспомогательный массив, переданный из ядра (смотрите также getauxval(3)).

Начиная с glibc 2.3.4, LD_SHOW_AUXV игнорируется в режиме безопасного выполнения.

LD_TRACE_PRELINKING (начиная с glibc 2.4)

Если эта переменная окружения определена, то выполнять трассировку объекта предварительной компоновки, чьё имя указано в этой переменной окружения (для получения списка трассируемых объектов используйте ldd(1)). Если имя объекта не распознано, то трассируется все действия предварительной компоновки (prelinking activity).

LD_USE_LOAD_BIAS (начиная с glibc 2.3.3)

По умолчанию (т. е., если переменная не определена) исполняемые и предварительно скомпонованные объекты учитывают базовые адреса общих объектов, от которых они зависят, а (предварительно не скомпонованные) перемещаемые исполняемые (PIE) и другие общие объекты не учитывают их. Если переменной LD_USE_LOAD_BIAS присвоено значение 1, то и исполняемые файлы, и PIE учитывают базовые адреса. Если значение переменной LD_USE_LOAD_BIAS равно 0, то ни исполняемые файлы ни PIE не учитывают базовые адреса.

Начиная с glibc 2.3.3, данная переменная игнорируется в режиме безопасного выполнения.

LD_VERBOSE (начиная с glibc 2.1)

Если значение равно непустой строке, то выводится информация о символах программы (если также установлена переменная окружения LD_TRACE_LOADED_OBJECTS).

LD_WARN (начиная с glibc 2.1.3)

Если значение равно непустой строке, то выдаются предупреждения о ненайденных символах.

LD_PREFER_MAP_32BIT_EXEC (только для x86-64; начиная с glibc 2.23)

Согласно руководству по оптимизации ПО Intel Silvermont для 64-битных приложений, выполнение предсказания ветвления может отразиться негативным образом, если цель ветви находится дальше чем 4 ГБ от ветви. Если эта переменная окружения установлена (любое значение), то динамический компоновщик сначала попытается отобразить исполняемые страницы с помощью mmap(2) с флагом MAP_32BIT и, если это не удастся, то выполнит отображение без флага. Примечание: с флагом MAP_32BIT отображение выполняется в нижние 2 ГБ (не 4 ГБ) адресного пространства.

Так как при MAP_32BIT сокращается адресный диапазон, доступный для случайного выравнивания адресного пространства (ASLR), то LD_PREFER_MAP_32BIT_EXEC всегда отключается в режиме безопасного выполнения.

## ФАЙЛЫ
/lib/ld.so

динамический компоновщик/загрузчик a.out

/lib/ld-linux.so.{1,2}

динамический компоновщик/загрузчик ELF

/etc/ld.so.cache

Файл с скомпилированным списком каталогов, в которых производится поиск общих объектов и сортированный список общих объектов-кандидатов. Смотрите ldconfig(8).

/etc/ld.so.preload

Файл со списком общих объектов ELF (через пробел), которые будут загружены перед программой. Смотрите описание LD_PRELOAD выше. Если одновременно существуют LD_PRELOAD и /etc/ld.so.preload, то библиотеки, указанные в LD_PRELOAD, загружаются первыми. Файл /etc/ld.so.preload влияет на всю систему, вызывая предварительную загрузку указанных библиотек для всех программ, выполняемых в системе (обычно, это нежелательно и используется как спасательное средство, например, для временного обхода проблемы неправильно настроенных библиотек).

lib*.so*

общие объекты

## ЗАМЕЧАНИЯ

### Аппаратные возможности
Некоторые общие объекты скомпилированы с использованием специальных аппаратных инструкций, которые существуют не в каждом ЦП. Такие объекты должны быть установлены в каталоги, чью имена (например, /usr/lib/sse2/) определяют требования к аппаратным возможностям. Динамический компоновщик проверяет эти каталоги учитывая аппаратуру машины и выбирает наиболее подходящую версию требуемого общего объекта. Каталоги аппаратных возможностей могут каскадироваться для объединения свойств ЦП. Список имён поддерживаемых аппаратных возможностей зависит от ЦП. В настоящее время распознаются следующие имена:

Alpha

ev4, ev5, ev56, ev6, ev67

MIPS

loongson2e, loongson2f, octeon, octeon2

PowerPC

4xxmac, altivec, arch_2_05, arch_2_06, booke, cellbe, dfp, efpdouble, efpsingle, fpu, ic_snoop, mmu, notb, pa6t, power4, power5, power5+, power6x, ppc32, ppc601, ppc64, smt, spe, ucache, vsx

SPARC

flush, muldiv, stbar, swap, ultra3, v9, v9v, v9v2

s390

dfp, eimm, esan3, etf3enh, g5, highgprs, hpage, ldisp, msa, stfle, z900, z990, z9-109, z10, zarch

x86 (только 32-битные)

acpi, apic, clflush, cmov, cx8, dts, fxsr, ht, i386, i486, i586, i686, mca, mmx, mtrr, pat, pbe, pge, pn, pse36, sep, ss, sse, sse2, tm

## СМОТРИТЕ ТАКЖЕ
ld(1), ldd(1), pldd(1), sprof(1), dlopen(3), getauxval(3), elf(5), capabilities(7), rtld-audit(7), ldconfig(8), sln(8)


ldconfig

title: ldconfig(8)

text:
# ldconfig(8)

## ИМЯ
ldconfig - настройка связывания времени выполнения в динамическом компоновщике

## ОБЗОР
/sbin/ldconfig [-nNvXV] [-f conf] [-C кэш] [-r корень] каталог…

/sbin/ldconfig -l [-v] библиотека…

/sbin/ldconfig -p

## ОПИСАНИЕ
Программа ldconfig создаёт необходимые ссылки и кэш для самых новых общих библиотек, найденных в каталогах, которые указаны в командной строке, в файле /etc/ld.so.conf и в доверенные каталогах /lib и /usr/lib (на некоторых 64-битных архитектурах, таких как x86-64, /lib и /usr/lib являются доверительными каталогами для 32-битных библиотек, а каталоги /lib64 и /usr/lib64 используются для 64-битных библиотек).

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

ldconfig будет пытаться вывести заключение о типе библиотек ELF (т.е. libc5 или libc6/glibc), основанных на библиотеках языка C и о том какая библиотека должна быть связана.

Некоторые существующие библиотеки не содержат необходимую информацию для определения их типа. В виду этого, задать ожидаемый тип можно через файл /etc/ld.so.conf. Эта возможность используется только для тех библиотек ELF, с которыми иначе невозможно работать. Формат выглядит как «каталог=ТИП», где ТИП может принимать значение libc4, libc5 или libc6 (данный синтаксис работает также и в командной строке). Пробелы не разрешаются. Также смотрите параметр -p. Программа ldconfig обычно должна запускаться суперпользователем, так как выполнение может требовать прав на запись в некоторые каталоги и файлы, владельцем которых является root.

## ПАРАМЕТРЫ
-c fmt, --format=fmt

(начиная с glibc 2.2) Используемые форматы кэша: old, new или compat (по умолчанию).

-C кэш

Использовать кэш вместо /etc/ld.so.cache.

-f conf

Использовать conf вместо /etc/ld.so.conf.

-i, --ignore-aux-cache

(начиная с glibc 2.7) Игнорировать вспомогательный файл кэша.

-l

(начиная с glibc 2.2) Библиотечный режим. Компоновать отдельные библиотеки вручную. Предназначен только для экспертов.

-n

Обрабатывать только каталоги, заданные в командной строке. Не обрабатывать доверенные каталоги и заданные в /etc/ld.so.conf. Неявно включает -N.

-N

Не перестраивать кэш. Если также не указан -X, то ссылки по-прежнему обновляются.

-p, --print-cache

Выдать список каталогов и библиотек-кандидатов, хранящихся в текущем кэше.

-r корень

Сменить каталог и использовать корень в качестве корневого каталога.

-v, --verbose

Режим детализации. Выдаётся номер текущей версии, имя каждого каталога, который сканируется, и все создаваемые символьные ссылки. Выключает режим молчания.

-V, --version

Показать версию программы.

-X

Не обновлять ссылки. Если также не указан -N, кэш по-прежнему перестраивается.

## ФАЙЛЫ
/lib/ld.so

Компоновщик/загрузчик времени выполнения.

/etc/ld.so.conf

Файл, содержащий список каталогов (по одному на строку), в которых производится поиск библиотек.

/etc/ld.so.cache

Файл, содержащий сортированный список библиотек, найденных в каталогах, заданных в /etc/ld.so.conf, а также в доверительных каталогах.

## СМОТРИТЕ ТАКЖЕ
ldd(1), ld.so(8)


nscd

title: nscd(8)

summary: программа кэширования службы имён

text:
# nscd(8)

## ИМЯ
nscd - программа кэширования службы имён

## ОПИСАНИЕ
nscd — это служба, которая кэширует наиболее частые запросы службы имён. По умолчанию, поведение службы кэша определяет файл с настройками /etc/nscd.conf. Смотрите nscd.conf(5).

nscd предоставляет кэшированный доступ к базам данных passwd(5), group(5), hosts(5), services(5) и netgroup через стандартные интерфейсы libc, такие как getpwnam(3), getpwuid(3), getgrnam(3), getgrgid(3), gethostbyname(3) и другие.

Для каждой базы есть два кэша: попаданий (для найденных элементов) и промахов (для ненайденных элементов). Каждый кэш имеет для своих данных отдельное TTL (time-to-live — время жизни). Заметим, что файл теневых паролей (shadow) специально не кэшируется. Вызовы getspnam(3) оставляют результат некэшированным.

## ПАРАМЕТРЫ
--help

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

## ЗАМЕЧАНИЯ
Служба пытается отслеживать изменения в файлах настройки для каждой базы данных (например /etc/passwd для базы данных passwd или /etc/hosts и /etc/resolv.conf базы данных hosts), и очищает кэш при наличии изменений. Однако это происходит только после короткой задержки (если недоступен механизм inotify(7) и glibc 2.9 или новее), и данное автоматическое слежение не распространяется на файлы настройки нестандартных модулей NSS, если они указаны в /etc/nsswitch.conf. В этом случае, вам нужно запустить следующую команду после изменения файла настройки базы данных для того, чтобы nscd засчитал свой кэш недействительным:

```
$ nscd -i <база данных>
```

## СМОТРИТЕ ТАКЖЕ
nscd.conf(5), nsswitch.conf(5)


sln

title: sln(8)

summary: создаёт символьные ссылки

text:
# sln(8)

## ИМЯ
sln - создаёт символьные ссылки

## ОБЗОР
sln source dest

sln filelist

## ОПИСАНИЕ
Программа sln создаёт символьные ссылки. В отличие от программы ln(1) она собрана статически. Это означает, что если по какой-то причине динамический компоновщик не работает, sln можно использовать для создания символьных ссылок на динамические библиотеки.

Из командной строки есть два способа вызова. С помощью первого создаётся dest как символьная ссылка на source.

Во втором filelist — список пар путей через пробел; работает так, как если бы sln вызывался несколько раз с двумя путями в качестве аргументов.

У программы sln нет параметров командной строки.

## СМОТРИТЕ ТАКЖЕ
ln(1), ld.so(8), ldconfig(8)


tzselect

title: tzselect(8)

summary: выбор часового пояса

text:
# tzselect(8)

## ИМЯ
tzselect - выбор часового пояса

## ОБЗОР
tzselect

## ОПИСАНИЕ
Программа tzselect запрашивает у пользователя его текущее местоположение и выводит описание часового пояса на устройство стандартного вывода. Это описание можно использовать в качестве значения переменной окружения TZ.

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

## КОД РЕЗУЛЬТАТА
Возвращаемое значение равно нулю, если пользователь правильно ввёл информацию о часовом поясе; в противном случае возвращаемое значение не равно нулю.

## ОКРУЖЕНИЕ
AWK

Имя POSIX-совместимой программы awk (по умолчанию awk).

TZDIR

Имя каталога, содержащего файлы с описаниями часовых поясов (по умолчанию /usr/share/zoneinfo).

## ФАЙЛЫ
TZDIR/iso3166.tab

Таблица двухсимвольных кодов стран и их названий, согласно стандарту ISO 3166.

TZDIR/zone.tab

Таблица кодов стран, широты и долготы, значений переменной TZ и описаний.

TZDIR/TZ

Файл, содержащий описание часового пояса TZ.

## СМОТРИТЕ ТАКЖЕ
tzfile(5), zdump(8), zic(8)


zdump

title: zdump(8)

summary: информация о часовом поясе

text:
# zdump(8)

## ИМЯ
zdump - информация о часовом поясе

## ОБЗОР
zdump [ параметр … ] [ часовой пояс … ]

## ОПИСАНИЕ
Программа zdump выводит текущее время для каждого часового пояса, указанного в командной строке.

## ПАРАМЕТРЫ
--version

Вывод информации о версии и выход из программы.

--help

Вывод короткого сообщения об использовании и выход из программы.

-i

Вывод описания интервалов времени. Для каждого часового пояса из командной строки выводится описание часового пояса в формате интервала. Смотрите “ФОРМАТ ИНТЕРВАЛА” ниже.

-v

Для каждого часового пояса указанного в командной строке, выводится наименьшее возможное время, время через день после наименьшего возможного времени, время за одну секунду до и точное время обнаруженных временных разрывов, время за день до максимально возможного времени и максимально возможное время. Каждая строка заканчивается isdst=D, где D положительное, ноль или отрицательное значение в зависимости от времени: летнее время, стандартное время или неизвестное, соответственно. Также, каждая строка заканчивается gmtoff=N, если выводимое локальное время на N секунд восточнее Гринвича.

-V

Как -v, но не выводятся времена, которые относительны крайних значений времени. Генерируемый вывод проще сравнивать с реализациями с другим представлением времени.

-c [lначальный_год,]конечный_год

Обрезает вывод интервала до заданного года(ов). Обрезаемые времена вычисляются по Григорианскому календарю с нулевым годом и универсальным временем (UT) без високосных секунд. Нижняя граница не включается, а верхняя включается; например, вывод с начальным годом равным 1970 не включает перевод, произошедший 1970-01-01 00:00:00 UTC, а с конечным годом 1970 этот перевод включается. По умолчанию года обрезки равны -500,2500.

-t [начальное_время,]конечное_время

Обрезает вывод интервала заданным временем, выраженным в десятичных секундах, начало отсчёта 1970-01-01 00:00:00 по всемирному координированному времени (UTC). Часовой пояс определяет будут ли учитываться високосные секунды. Параметр -c, задаёт, что нижняя граница не будет включена в результат, а верхняя будет.

## ФОРМАТ ИНТЕРВАЛА
Формат интервала это сжатое текстовое представление, понятное человеку и машине. Он состоит из пустой строки, далее следует строка “TZ=строка” где строка — строка в двойных кавычках, задающая часовой пояс, вторая строка “- - interval” описывающая временной интервал до первого перевода, если есть и ноль или более следующих строк “дата время интервал ,” по одной строке на каждый перевод времени и следующий интервал. Поля разделяются одиночным символом табуляции.

Даты описываются в формате гггг-мм-дд, а время — в 24-часовом формате чч:мм:сс, где чч<24. Времена указываются в локальном времени сразу после перевода. Описание временного интервала состоит из смещения UT в формате ±ччммсс со знаком, аббревиатуры часового пояса и флага isdst. Аббревиатура, равная смещению UT, пропускается; другие аббревиатуры представляют собой строки в двойных кавычках, если они состоят из одного или более алфавитных символов. Флаг isdst не указывается для стандартного времени, в противном случае это десятичное целое без знака и положительное (обычно, 1) для летнего времени и отрицательное, если это неизвестно.

Во временах и смещениях UT с абсолютным значением меньшим 100 часам, секунды не указываются, если их значение ноль, а минуты также не указываются, если их значение также нулевое. Положительные смещения UT указываются в востоке от Гринвича. Смещение UT -00 является заполнителем UT для областей, где действующее смещение не указано; по соглашению, это происходит, когда смещение UT равно нулю и аббревиатура часового пояса начинается с “-” или “zzz”

В строках в двойных кавычках, экранирующие последовательности представляют необычные символы. Экранирующие последовательности: \s — пробел, а \", \\, \f, \n, \r, \t и \v — как в языке программирования C. Например, строка в двойных кавычках “"CET\s\"\\"” представляет последовательность символов “CET "\”.

Вот пример результата, начальная пустая строка не показана (здесь используется несколько табуляций между столбцами для выравнивания).

```
TZ="Pacific/Honolulu"
-	-	-10:31:26	LMT
1896-01-13	12:01:26	-10:30	HST
1933-04-30	03	-09:30	HDT	1
1933-05-21	11	-10:30	HST
1942-02-09	03	-09:30	HDT	1
1945-09-30	01	-10:30	HST
1947-06-08	02:30	-10	HST
```

Здесь локальное время начинается в 10 часов, 31 минуту и 26 секунд западнее UT, и это стандартное время с аббревиатурой LMT. Сразу после первого перевода дата равна 1896-01-13 и время 12:01:26, и следующий временной интервал 10.5 часов западнее UT, стандартное время с аббревиатурой HST. Сразу после второго перевода дата равна 1933-04-30 и время 03:00:00, а затем следует временной интервал 9.5 часов западнее UT, имеет аббревиатуру HDT и это летнее время. Сразу после последнего перевода дата равна 1947-06-08 и время 02:30:00, и следующий временной интервал 0 часов западнее UT, стандартное время с аббревиатурой HST. Вот кусочек другого примера:

```
TZ="Europe/Astrakhan"
-	-	+03:12:12	LMT
1924-04-30	23:47:48	+03
1930-06-21	01	+04
1981-04-01	01	+05		1
1981-09-30	23	+04
...
2014-10-26	01	+03
2016-03-27	03	+04
```

Этот часовой пояс восточнее UT, поэтому смещения UT положительные. Также его многие аббревиатуры часовых поясов не указаны, так как они повторяют текст смещения UT.

## ОГРАНИЧЕНИЯ
Обнаружены разрывы во времени в выборке результата, полученном от localtime на 12 часовых интервалах. Это работает во всех мировых случаях; можно создать искусственные часовые пояса, в которых будет эта ошибка.

В выводе -v и -V “UT” означает, что значение получено от gmtime(3), которая использует UTC для современных временных меток и несколько другую разновидность UT для временных меток, которые использовались до появления UTC. В настоящее время не предпринимается попыток использовать “UTC” для новых и “UT” для старых временных меток, отчасти потому, что точная дата введения UTC неизвестна.

## СМОТРИТЕ ТАКЖЕ
tzfile(5), zic(8)


zic

title: zic(8)

summary: компилятор часовых поясов

text:
# zic(8)

## ИМЯ
zic - компилятор часовых поясов

## ОБЗОР
zic [ параметр … ] [ имя_файла … ]

## ОПИСАНИЕ
Программа zic читает текст из файла(ов), имя которого задано в командной строке, и создаёт файлы с информацией о переводе времени. Если имя_файла равно “-”, то для чтения используется стандартный ввод.

## ПАРАМЕТРЫ
--version

Вывод информации о версии и выход из программы.

--help

Вывод короткого сообщения об использовании и выход из программы.

-d каталог

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

-l часовой пояс

Использовать часовой пояс в качестве местного времени. В этом случае zic поступит так, как если бы входные данные содержали строку Link часовой_пояс localtime

-p часовой пояс

Использовать правила часового пояса при обработке соответствующих переменных окружения POSIX. В этом случае zic поступит так, как если бы входные данные содержали строку Link часовой_пояс posixrules

-L имя файла с високосной секундой

Прочитать информацию о високосной секунде из файла с заданным именем. Если этот параметр не используется, то в выходном файле информация о високосной секунде не появится.

-v

Выдавать более подробную информацию и сообщать о следующих ситуациях:

Во входных данных указана ссылка на ссылку.

Год из файла данных выходит за границы диапазона лет, представимого в значениях вызова time(2).

Во входных данных указано время 24:00 или более. До версий 1998 года в zic запрещено значение времени 24:00, а в версиях до 2007 года запрещены значения времени более 24:00.

Правило выходит за начало или конец месяца. До версий zic старше 2004 года это запрещено.

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

В выводе содержатся данные, которые могут неправильно обрабатываться клиентским кодом со старым форматом вывода zic. Эти проблемы совместимости относятся только к меткам времени до 1970 года или после начала 2038 года.

В аббревиатуре часового пояса содержится менее трёх символов. В POSIX требуется не менее 3-х.

Имя выходного файла содержит байт, не являющийся буквой ASCII, “-”, “/”, или “_”; оно содержит компонент имени файла, в котором более 14 байт или который начинается с “-”.

-s

Ограничить значения времени в выходных файлах рамками значений из входных файлов, то есть со знаком или без знака. Этот параметр можно использовать для создания SVVS-совместимых файлов.

Входные файлы должны быть текстовыми, то есть, состоять из последовательностей нуля и более строк, каждая из которых заканчивается байтом новой строки, содержит не более 511 байт и не содержит байтов NUL. Кодировка входного текста, обычно, UTF-8 или ASCII; в ней должно быть юнибайтовое представление переносимого набора символов POSIX (PPCS) (http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap06.html) и кодирование не юнибайтовых символов должно быть полностью из байт не PPCS. Не PPCS символы, обычно, встречаются только в комментариях: хотя имена выходных файлов и сокращения часовых поясов могут содержать практически любые символы, другое ПО будет работать лучше, если здесь ограничиться синтаксисом, описанным в параметре -v.

Входные строки состоят из полей. Поля отделяются друг от друга одним или более пробельным символом. Пробельными символами являются пробел, прогон страницы, возврат каретки, символ новой строки, табуляция и вертикальная табуляция. Начальные и конечные пробелы входных строк игнорируются. С символа диеза (#), если он не кавычках, начинается комментарий, заканчивающийся концом строки. Если в поле нужно использовать символы пробела и диеза, то их нужно заключить в двойные кавычки ("). Любая пустая строка (после удаления комментариев) игнорируется. Непустые строки могут быть трёх типов: строки правил, строки поясов и строки ссылок.

Названия должны быть на английском, не зависят от регистра. Они используются в разных контекстах и включают имена месяца, дня недели и ключевые слова, например, maximum, only, Rolling и Zone. Имена могут быть сокращены посредством пропуска всего кроме начального префикса; любое сокращение должно быть недвусмысленным в контексте.

Строка правила имеет вид

```
Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S

Например:

Rule	US	1967	1973	-	Apr	lastSun	2:00w	1:00	D
```

Описание полей, из которых состоит строка правила: NAME

Имя списка правил, в который входит эта строка. Оно должно начинаться не с цифры ASCII или “-” или “+”. Для возможных расширений в будущем незакавыченное имя не должно содержать символы “!$%&'()*,/:;<=>?@[\]^`{|}~”.

FROM

Первый год, в котором применяется данное правило. Можно задавать любое знаковое целое значение года; предполагается использование Григорианского календаря с нулевым годом перед первым. Слово minimum (или аббревиатура) означает бесконечное прошлое. Слово maximum (или аббревиатура) означает бесконечное будущее. Правила могут описывать времена, непредставимые как значения времени, такие времена игнорируются; это делает правила переносимыми между машинами с различными типами значений времени.

TO

Последний год, в котором применяется данное правило. Вдобавок к minimum и maximum (описанным выше), может использоваться слово only (или аббревиатура), которое означает повторение значения из поля FROM.

TYPE

Должно быть равно “-” и оставлено для совместимости со старыми версиями zic, которые не поддерживают тип года.

IN

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

ON

День, в котором начинает действовать правило. Возможные формы записи:

```
5	пятый день месяца
lastSun	последнее воскресенье месяца
lastMon	последний понедельник месяца
Sun>=8	первое воскресенье после 8-го числа включительно
Sun<=25	последнее воскресенье перед 25-м включительно
```

Название дня недели (например, Sunday) или название дня недели, перед которым указывается “last” (например, lastSunday), может быть аббревиатурой или писаться полностью. Заметим, что в поле ON не должно быть пробелов.

AT

Время дня, с которого начинает действовать правило. Возможные формы записи:

```
2	время в часах
2:00	время в часах и минутах
01:28:14	время в часах, минутах и секундах
15:00	время в 24-часовом формате

     	(для времени после полудня)
260:00	260 часов после 00:00
-2:30	2.5 часа до 00:00
-	эквивалентно 0
```

где час 0 означает полночь и начало нового дня, а час 24 означает полночь и конец дня. Любая из этих форм может заканчиваться символом w, если это местное «по настенным часам» “wall clock” время, s, если это локальное «стандартное» время, “standard” или u (или g, или z), если это универсальное время; при отсутствии временного индикатора предполагается, что это местное время. Смысл в том, чтобы строка правила описывала моменты времени, когда часы/календарь, установленный в тип времени, указанном в поле AT, будут показывать заданный день и время суток.

SAVE

Количество времени, которое будет добавлено к локальному стандартному времени при начале действия правила. Это поле имеет тот же формат, что и поле AT, (хотя, конечно, при этом суффиксы w и s не используются). Допускаются отрицательные смещения; например, в Ирландии переход на летнее время проводят зимой и он задаётся как отрицательное смещение относительно стандартного ирландского времени. Смещение просто добавляется к стандартному времени; например, zic не делает различия между 10:30 по стандартному времени плюс 0:30 SAVE и 10:00 стандартного времени плюс 1:00 SAVE.

LETTER/S

Переменная часть “variable part” (например, “S” или “D” в “EST” или “EDT”) аббревиатуры часового пояса, который используется при действии правила. В этом поле символ “-”, указывает, что переменная часть равна null.

Строка часового пояса имеет вид

```
Zone	NAME	UTOFF	RULES	FORMAT	[UNTIL]

Например:

Zone	Asia/Amman	2:00	Jordan	EE%sT	2017 Oct 27 01:00
```

Описание полей, из которых состоит строка часового пояса: NAME

Название часового пояса. Это название используется при создании файла с информацией о переводе времени в этом поясе. В нём не должно содержаться компонентов имени файла “."” или “..”; компонент имени файла — это максимальная подстрока, которая не содержит “/”.

UTOFF

Время, которое нужно добавить к UT, чтобы получить стандартное время. Это поле имеет тот же формат, что и поля AT и SAVE в строках правил. Если нужно отнять какое-то время от UT, введите знак минуса в начале поля.

RULES

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

FORMAT

Формат аббревиатур часовых поясов. Пара символов %s используется как положение переменной части “variable part” аббревиатуры часового пояса. Также в формате можно использовать пару символов %z для обозначения смещения UT в виде ±hh, ±hhmm или ±hhmmss; используется самая короткая форма, при которой не теряется информация, где hh, mm и ss это часы, минуты и секунды восточнее (+) или западнее (−) UT. Косая черта (/) разделяет стандартную аббревиатуру и аббревиатуру летнего времени. Для соответствия POSIX аббревиатура часового пояса должна содержать только буквенно-числовые символы ASCII “+” и “-”.

UNTIL

Время, с которого изменяются смещение UT или правила изменения расположения. Оно задаётся как ГОД [МЕСЯЦ [ДЕНЬ [ВРЕМЯ]]]. Если оно задано, то информация о часовом поясе формируется из заданного смещения UT и правила смены до заданного времени, которое учитывается согласно правилам, действовавшим до перехода. Месяц, день и время суток имеют тот же формат, что и поля IN, ON и AT в правиле; последние поля могут не задаваться, а по умолчанию для пропущенных полей действуют самые возможные ранние значения.

Следующей должна быть строка продления “continuation” ; она имеет тот же формат, что и строка часового пояса, за исключением того, что в строке пропускается “Zone” и название, так как строка продления будет задавать информацию, начиная со времени, указанном в информации “until” из предыдущей строки в файле, использованном предыдущей строкой. Строки продления могут содержать информацию “until” , как строки поясов, показывающую, что следующая строка имеет продолжение.

Если пояс изменяется в тот же момент, что и правило вступает в действие в более раннем поясе или строке продолжения, то правило игнорируется. В одиночном поясе является ошибкой, если два правила вступают в силу в один и тот же момент времени или, если смена двух поясов происходит в один и тот же момент времени.

Строка ссылки имеет вид

```
Link	TARGET	LINK-NAME

Например:

Link	Europe/Istanbul	Asia/Istanbul
```

Поле TARGET должно иметь значение как у поля NAME из какой-нибудь строки пояса. Поле LINK-NAME используется для задания альтернативного имени этого часового пояса; оно имеет тот же синтаксис что и поле NAME в строке пояса. За исключением строк продления, строки могут располагаться в любом порядке. Однако поведение не определено, если несколько поясов или строк ссылок определяют одно имя, или если источник одной строки ссылки является назначением другой.

Строки файла, описывающего високосные секунды, имеют вид:

```
Leap	YEAR	MONTH	DAY	HH:MM:SS	CORR	R/S

Например:

Leap	2016	Dec	31	23:59:60	+	S
```

Поля YEAR, MONTH, DAY и HH:MM:SS задают время, когда случается високосная секунда. Поле CORR должно содержать “+” , если секунда добавляется, или “-” если секунда пропускается. Поле R/S должно равняться “Stationary” (в виде аббревиатуры), если время високосной секунды, заданное другими полями, должно интерпретироваться как UTC, или “Rolling” (в виде аббревиатуры), если время високосной секунды, заданное другими полями, должно интерпретироваться как местное время.

## РАСШИРЕННЫЙ ПРИМЕР
Вот расширенный пример входных данных zic, в котором показано много разных свойств. В этом примере правила EU — для Евросоюза и его предшественника — Европейского сообщества (EC).

```
# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
Rule	Swiss	1941	1942	-	May	Mon>=1	1:00	1:00	S
Rule	Swiss	1941	1942	-	Oct	Mon>=1	2:00	0	-

Rule	EU	1977	1980	-	Apr	Sun>=1	1:00u	1:00	S
Rule	EU	1977	only	-	Sep	lastSun	1:00u	0	-
Rule	EU	1978	only	-	Oct	 1	1:00u	0	-
Rule	EU	1979	1995	-	Sep	lastSun	1:00u	0	-
Rule	EU	1981	max	-	Mar	lastSun	1:00u	1:00	S
Rule	EU	1996	max	-	Oct	lastSun	1:00u	0	-

# Zone	NAME	UTOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Zurich	0:34:08	-	LMT	1853 Jul 16
		0:29:46	-	BMT	1894 Jun
		1:00	Swiss	CE%sT	1981
		1:00	EU	CE%sT

Link	Europe/Zurich	Europe/Vaduz
```

В этом примере часовой пояс называется Europe/Zurich, но он является псевдонимом для Europe/Vaduz. Здесь показано, что Zurich был на 34 минуты и 8 секунд восточнее UT до 1853-07-16 00:00, пока смещение было не изменено законодательно на 7°26′22.50″; хотя это работает до 0:29:45.50, в входном формате нельзя отразить дробные секунды, поэтому здесь они округлены. После 1894-06-01 00:00 смещение UT стало равно одному часу и применяются швейцарские правила перехода на летнее время (определены в строках, начинающиеся с “Rule Swiss”) . С 1981 года по настоящее время применяются правила EU для перехода на летнее время, а смещение UTC осталось равным одному часу.

В 1941 и 1942 году летнее время начинается в первый понедельник мая в 01:00 и заканчивается в первый понедельник октября в 02:00. До 1981 года EU правила перехода на летнее время здесь не применяются, но показаны для полноты. Начиная с 1981 года летнее время начинается в последнее воскресенье марта в 01:00 UTC. До 1995 года оно заканчивается в последнее воскресенье сентября в 01:00 UTC, а с 1996 года изменено на последнее воскресенье октября.

Для отображения сначала использовались, соответственно, “LMT” и “BMT” . С момента начали применения швейцарских правил, а позже европейских, аббревиатурой часового пояса обозначение стандартного времени стало CET и CEST для летнего времени.

## ФАЙЛЫ
/etc/localtime

Файл локального часового пояса

/usr/share/zoneinfo

Каталог по умолчанию с информацией о часовых поясах

## ЗАМЕЧАНИЯ
Для территорий, где имеется более двух типов местного времени, может потребоваться использовать локальное стандартное время в поле AT самого раннего правила перевода времени, чтобы быть уверенным, что самый ранний перевод времени записан в выходной файл правильно.

Если для определённого часового пояса увеличение времени, вызванное началом летнего времени, совпадает и равно уменьшению времени, вызванное изменением в смещении UT, то zic делает один переход на летнее время по новому смещению UT (без изменения местного времени). Чтобы получить раздельные переходы, используйте несколько строк продления поясов, задающих моменты перехода с помощью универсального времени.

## СМОТРИТЕ ТАКЖЕ
tzfile(5), zdump(8)


apt

package: man-pages-ru-extra

title: apt(8)

text:
# apt(8)

## НАЗВАНИЕ
apt - Продвинутый инструмент управления пакетами

## СИНТАКСИС
apt

## ОПИСАНИЕ
APT - это система управления пакетами программного обеспечения. Она находится в стадии разработки; высокоуровневой оболочки пока нет. В данный момент, пожалуйста смотрите apt-get(8).

## ОПЦИИ
Нет.

## ФАЙЛЫ
Нет.

## СМОТРИ ТАКЖЕ
apt-cache(8), apt-get(8), sources.list(5)

## ДИАГНОСТИКА
apt возвращает ноль при обычной работе и десятичную 100 при ошибке.

## ОШИБКИ
Эта man-страница даже ещё не начата.

Смотрите <http://www.debian.org/Bugs/db/pa/lapt.html>. Если вы хотите отправить сообщение об ошибке в apt, пожалуйста, смотрите /usr/doc/debian/bug-reporting.txt или команду bug(1). Если вы используете систему базирующуюся на RPM, то в этом случае, пожалуйста, воспользуйтесь http://distro.conectiva.com.br /bugzilla/.

## АВТОР
apt была написана командой APT <apt@packages.debian.org> и портирован на системы базирующиеся на RPM Alfredo K. Kojima, <kojima@conectiva.com.br >, из Conectiva S.A.

## ПЕРЕВОД
Перевод с английского сделал Виктор Вислобоков <victor_v@permonline.ru>


apt-cache

title: apt-cache(8)

summary: утилита управления APT \-\- управление кэшем

text:
# apt-cache(8)

## НАЗВАНИЕ
apt-cache - утилита управления APT -- управление кэшем

## ОБЗОР
apt-cache команда [аргумент ...]

## ОПИСАНИЕ
apt-cache выполняет ряд операций над кэшем пакетов APT. apt-cache названа так просто для того, чтобы отделить те операции, которые она выполняет от тех, которые выполняют другие утилиты apt.

команда может принимать одно из следующих значений:

o

add файл1 [файл2] [...]

o

gencaches

o

showpkg пакет1 [пакет2] [...]

o

stats

o

dump

o

dumpavail

o

unmet

o

check

o

search

o

show

o

showpkg

o

depends

o

pkgnames

o

dotty

Если не используется одна из опций, -h или --help, то должна быть указана одна из вышеприведённых команд.

add

add добавляет индексные файлы имен пакетов к кэшу пакетов.

gencaches

gencaches выполняет такую же операцию как и apt-get check. Cтроит кэш источников и кэш пакетов из их источников в /etc/apt/sources.list и из /var/lib/dpkg/status (или из базы RPM).

showpkg

showpkg выводит информацию о пакетах, перечисленных в командой строке. Остальные аргументы являются именами пакетов. Перечисляются как доступные версии так и обратные зависимости каждого пакета, а также прямые зависимости для каждой версии. Прямые (обычные) зависимости - это те зависимости, от которых зависит данный пакет; обратные зависимости указывают на то, что существуют другие пакеты, которые зависят от данного пакета. Таким образом, прямые зависимости должны быть удовлетворены для установки пакета, а обратные могут и не быть удовлетворены. Для примера, apt-cache showpkg libreadline2 выведет нечто похожее на следующее:

```

Package: libreadline2
Versions:
2.1-12(/var/state/apt/lists/debian.midco.net_debian_dists_slink_main_binary-i386_Packages),
Reverse Depends:

  libreadlineg2,libreadline2

  libreadline2-altdev,libreadline2
Dependencies:
2.1-12 - libc5 (2 5.4.0-0) ncurses3.0 (0 (null)) ldso (2 1.9.0-1)
Provides:
2.1-12 -
Reverse Provides:

```

Здесь можно увидеть, что пакет libreadline2, версия 2.1-8, зависит от libc5, ncurses3.0, и ldso, что они должны быть установлены, чтобы libreadline2 заработал. Далее libreadlineg2 и libreadline2-altdev зависят от libreadline2. Если пакет libreadline2 устанавливается, то и пакеты libc5, ncurses3.0 и ldso также должны быть установлены, а libreadlineg2 и libreadline2-altdev могут и не быть установлены. Для того, чтобы понять остальную информацию лучше всего посмотреть исходные тексты apt.

stats

stats отображает некоторую статистику касательно кэша. Аргументы не нужны. Статистический отчет выглядит так (поля):

o

Имён пакетов - это количество имен пакетов, найденных в кэше.

o

Нормальные пакеты - это количество обычных имен пакетов; таких пакетов у которых имя пакета и имя используемое другими пакетами в зависимостях совпадают один к одному. Большинство пакетов относятся именно к этой категории.

o

Целиком виртуальные пакеты - это количество пакетов, которые существуют только как виртуальные; те пакеты которые только "предоставляют" виртуальное имя пакета, за которым нет фактического пакета, использующего это имя. Например, "mail-transport-agent" в системе Debian GNU/Linux -- это чистый виртуальный пакет; несколько пакетов предоставляют "mail-transport-agent", но нет ни одного пакета с названием "mail-transport-agent".

o

Одиночные виртуальные пакеты - это количество пакетов, в которых только один из пакетов предоставляет соответствующих виртуальный пакет. Например, в системе Debian GNU/Linux, "X11-text-viewer" - это виртуальный пакет, но только один пакет, xless, предоставляет "X11-text-viewer".

o

Смешанные виртуальные пакеты - это количество пакетов, которые и предоставляют соответствующий виртуальный пакет и имеют имя виртуального пакета в качестве имени пакета. Например, в системе Debian GNU/Linux, e2fsprogs - это и реальный пакет и пакет, который предоставляет пакет e2compr.

o

Отсутствуют - это количество имен пакетов, на которые ссылаются в зависимостях, но которые не предоставляются ни одним из пакетов. Отсутствующие пакеты могут быть в отсутствующей части, если полный дистрибутив недоступен или если пакет (реальный или виртуальный) был удален из дистрибутива.

o

Различных версий - это количество версий пакетов, найденных в кэше; данное значение по крайней мере должно быть равно общему количеству имен пакетов. Если доступен более чем один дистрибутив (например, и "stable" и "unstable"), то данное значение может быть значительно больше, чем общее количество имен пакетов.

o

Всего зависимостей - это количество зависимостей требуемых всеми пакетами в кэше.

dump

dump показывает краткий список по каждому пакету в кэше. Команда в первую очередь нужна для отладки.

dumpavail

dumpavail выдает список всех доступных пакетов. Команда полезна для использования с dpkg и используется в dselect.

unmet

unmet выдает краткую справку об неудовлетворенных зависимостях в кэше пакетов.

check

check это случайная функция для тестирования определенных акцептов кэша. Не используйте ее.

showpkg

showpkg выдает список состоящий из структуры кэша по заданным пакетам и некоторую относящуюся к ним информацию. Список в первую очередь нужен для отладки.

show

show выполняет функцию похожую на --print-avail или rpm -qi, выводит записи по пакетам с указанными именами.

search

search выполняет полный поиск текста по всем доступным файлам пакетов по заданному шаблону. Команда просматривает имена пакетов и описания, для поиска определенной строки, а также выводит имя пакета и его краткое описание. Если задана опция --full то вывод будет идентичен команде show если найдутся пакеты удовлетворяющие условию, а если задана опция --names-only то поиск в длинном описании производиться не будет, только в именах пакетов.

depends

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

pkgnames

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

dotty

dotty берет список пакетов в командной строке и генерирует вывод, удобный для использования пакетом dotty фирмы GraphVis (http://www.research.att.com/sw/tools/graphviz/). Результатом будет список узлов и краев, который представляет собой отношения между пакетами. По умолчанию заданные пакеты будут отслеживаться на предмет всех зависимостей, что будет представлять из себя очень большую схему. Такое поведение можно отключить установкой опции APT::Cache::GivenOnly.

Результирующие узлы будут выглядеть определенными фигурами, обычные пакеты как боксы, чистые представляются треугольниками, смешанные ромбами, отсутствующие пакеты шестиугольниками. Оранжевые боксы означают рекурсию, которая была остановлена [leaf packages], синие линии - это предварительные зависимости, зеленые - конфликты.

Внимание, dotty не может отображать большие списки пакетов.

## ОПЦИИ
Все опции командной строки могут быть заданы при помощи файла настроек, описания обозначают устанавливаемые элементы настройки. Для логических опций вы можете перекрыть файл с настройками используя конструкцию вида -f-, --no-f, -f=no или некоторые другие вариации.

-h, --help

Выдает краткую подсказку.

-v, --version

Выдает версию программы.

-p --pkg-cache

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

Элемент настройки: Dir::Cache::pkgcache.

-s --src-cache

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

Элемент настройки: Dir::Cache::srcpkgcache.

-q, --quiet

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

Элемент настройки: quiet.

-i --important

Выводить только важные зависимости; при использовании этой опции с командой unmet, будут выводиться только отношения Depends и Pre-Depends.

Элемент настройки: APT::Cache::Important.

-f --full

Выдавать полные записи пакета во время поиска.

Элемент настройки: APT::Cache::ShowFull.

-a --all-versions

Выдавать все записи для всех доступных версий. Эта опция применима только к команде show.

Элемент настройки: APT::Cache::AllVersions

-g --no-generate

Не выполнять автоматическую регенерацию кэша, использовать кэш в том виде, как есть.

Элемент настройки: APT::Cache::NoGenerate.

--names-only

Искать только имена пакетов, а не длинные описания.

Элемент настройки: APT::Cache::NamesOnly.

--all-names

Заставляет команду pkgnames выдавать все имена, включая имена виртуальных пакетов и отсутствующие зависимости.

Элемент настройки: APT::Cache::AllNames.

-c, --config-file

Файл с настройками; Задать для использования файл с настройками. apt-get будет читать файл с настройками по умолчанию и затем данный файл с настройками. Смотрите информацию о синтаксисе в apt.conf(5).

-o, --option

Установить Опцию Настройки; Она будет установлена определенной опцией настройки. Используется следующий синтаксис:

```

-o Foo::Bar=bar
```

## ФАЙЛЫ
o

/etc/apt/sources.list - источники для получения пакетов

o

/var/lib/apt/lists/ - область хранения информации о состоянии каждого ресурса пакетов, заданного в списке источников

o

/var/lib/apt/lists/partial/ - временная область хранения информации в процессе скачивания

## СМОТРИТЕ ТАКЖЕ
apt-get(8), sources.list(5), apt.conf(5)

## ДИАГНОСТИКА
apt-cache возвращает ноль при нормальной работе и десятичную 100 при ошибке.

## ОШИБКИ
Смотрите http://bugs.debian.org/apt. Если вы хотите отправить сообщение об ошибке в apt-cache, пожалуйста смотрите /usr/doc/debian/bug-reporting.txt или команду bug(1). Если вы используете систему базирующуюся на RPM, то в этом случае, пожалуйста, воспользуйтесь http://distro.conectiva.com.br /bugzilla/.

## АВТОР
apt-cache была написана командой APT <apt@packages.debian.org> и портирован на системы базирующиеся на RPM Alfredo K. Kojima, <kojima@conectiva.com.br >, из Conectiva S.A.

## ПЕРЕВОД
Перевод с английского сделал Виктор Вислобоков <victor_v@permonline.ru>