Команды Linux. Вариации режима передачи зоны

Вопрос. Как я могу добавить пользователя в группу в Linux?

Ответ. Вы можете использовать команды useradd илиusermod для добавления пользователя в группу. Команда useradd создает нового пользователя или обновляет информацию у существующего. Команда usermod модифицирует существуюего пользователя. Вся информация о пользователях и группах храниться в файлах /etc/passwd, /etc/shadow и /etc/group.

Пример использования useradd - Добавляем нового пользователя в вторичную группу

Используем команду useradd для добавления нового пользователя в существующую группу. Если группа не существует создайте её. Синтаксис:

Useradd -G {group-name } username

Создадим пользователя vivek и добавим его в группу developers. Залогиньтесь как пользователь root и убедитесь что группа developers существует:

# grep developers /etc/group

Developers:x:1124:

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

# groupadd developers

Затем добавьте пользователя vivek в группу developers:

# useradd -G developers vivek

Установите пароль пользователю vivek:

Убедитесь что пользователь добавлен в группу developers:

# id vivek Output:

Uid=1122(vivek) gid=1125(vivek) groups=1125(vivek),1124(developers)

Опция -G позволяет добавить пользователю группу. Группы можно перечислять через запятую. К примеру, добавим пользователя jerry в группы

admins, ftp, www, and developers, введя:

# useradd -G admins,ftp,www,developers jerry

Пример использования useradd - Добавляем нового пользователя в основную группу

Для добавления пользователя tony в группу developers используем следующую команду:

# useradd -g developers tony

uid=1123(tony) gid=1124(developers) groups=1124(developers)

Опция -g позволяет добавить пользователя в основную группу. Группа должна существовать.

Пример использования usermod - Добавляем существующего пользователя в существующую группу

Добавляем существующего пользователя tony в вторичную группу ftp:

# usermod -a -G ftp tony

Изменяем существующему пользователю tony первучную группу на www:

# usermod -g www tony

Постовой

Для второй вышки заказал реферат на сайте "Студинформ". Стыдно конечно, но времени делать самому совсем нет. Заказ выполнили очень быстро и качественно. Рекомендую!

Для своей машины сейчас думаю какие шины ставить. Очень задумался о шипованных шинах . По отзывам, насколько я почитал, разница тормозного пути лучших шипованных шин и лучших моделей без шипов составила 10 метров! Есть над чем подумать...

Эта статья расскажет вам о команде host. Утилита host предназначена для выполнения запросов к DNS-серверам.

[Алексей Выскубов]

Эта статья расскажет вам о команде host .

Примеры работы приводятся в операционных системах Linux 2.2.17 (Debian unstable, "woody") и FreeBSD 4.2.

Утилита host предназначена для выполнения запросов к DNS-серверам.
По умолчанию она просто находит IP-адрес, соответствующий заданному имени хоста, например:

$ host www.сайт

Www.сайт A 195.5.132.10

$ host www.сайт

Www.сайт has address 195.5.132.10

Как вы видите, в случае Linux утилита выдает DNS-запись типа A, а FreeBSD просто сообщает адрес хоста, используя английский язык. Следует отметить, что DNS-запись, выдаваемая Linux, непригодна для непосредственного помещения в базу данных DNS-сервера, так как имя хоста не заканчивается точкой; указание точки после имени хоста при вызове host также не помогает.
Кроме того, не хватает IN между именем хоста и A. Если вам нужно получить запись, которую можно было бы непосредственно поместить в базу DNS, в Linux вы можете использовать параметр -Z :

$ host -Z slashdot.org

Slashdot.org. 3600 IN A 64.28.67.48

В FreeBSD такая возможность отсутствует.

Аналогичная ситуация возникает, когда указанное имя является алиасом --- Linux выводит строчку со словом CNAME, а FreeBSD использует конструкцию "xxx.yyy.zzz is a nickname for aaa.bbb.ccc" :

$ host admin1.piter-press.ru

Admin1.piter-press.ru CNAME ns.piter-press.ru

Ns.piter-press.ru A 195.239.142.33

$ host admin1.piter-press.ru.

Admin1.piter-press.ru is a nickname for ns.piter-press.ru

Ns.piter-press.ru has address 195.239.142.33

Следует отметить, что после имени хоста в команде host может быть указано имя сервера, который вы хотите опросить. Если имя сервера не указано (как в наших примерах), то производится опрос одного из DNS-серверов для данной зоны.

Если host получает на вход не имя хоста, а IP-адрес, то производится обратное преобразование --- в FQDN.

$ host 195.239.142.33

Name: ns.piter-press.ru

Address: 195.239.142.33

$ host 195.239.142.33

33.142.239.195.IN-ADDR.ARPA domain name pointer ns.piter-press.ru

На этот раз в случае Linux приведена обычная текстовая информация (хотя, казалось бы, почему не вывести DNS-запись типа PTR?). FreeBSD поступает логичнее --- IP-адрес преобразован в соответствующее ему имя хоста в зоне IN-ADDR.ARPA, для которого и выведена информация --- опять же, при помощи английского языка.

Подстановка локального домена

Еще одно важное отличие версий host в Linux и FreeBSD заключается в том, что FreeBSD в том случае, если имя хоста не заканчивается точкой, пытается подставить для него локальный домен, чего Linux не делает (возможно, это баг, поскольку man-страница утверждает обратное):

$ hostname -d

$ nslookup woe.spb.ru

Server: frei.home

Address: 192.168.1.5

Name: woe.spb.ru

Address: 193.125.200.14

$ host woe

Woe does not exist (Authoritative answer)

Как мы видим, spb.ru является локальным доменом, хост woe.spb.ru существует, но команда host woe не выдает желаемого результата. Следует отметить, что наличие в файле /etc/resolv.conf строки search spb.ru (или domain spb.ru) решило бы проблему. Под FreeBSD поведение host иное:

$ host alv

Alv.home has address 192.168.1.1

$ host alv.

Host not found

Локальный домен был подставлен только в первом случае, так как имя не заканчивалось точкой. Наличие строк search и/или domain в resolv.conf не обязательно.

Подробная информация: параметр -v

Полезным параметром является -v (verbose). И в Linux, и во FreeBSD его действие практически одинаково: выводится дополнительная информация о зоне.

$ host -v www.spb.ru

Query about www.spb.ru for record types A

Trying www.spb.ru ...

Query done, 1 answer, status: no error

Www.spb.ru 2134 IN A 195.190.101.3

Authority information:

Www.spb.ru 48235 IN NS ns.nevalink.ru

Www.spb.ru 48235 IN NS ns1.gldn.net

Www.spb.ru 48235 IN NS ns2.gldn.net

Additional information:

Ns.nevalink.ru 54275 IN A 195.190.100.28

Ns1.gldn.net 10978 IN A 194.67.2.108

Ns2.gldn.net 10972 IN A 195.218.218.8

$ host -v www.spb.ru.

Rcode = 0 (Success), ancount=1

The following answer is not authoritative:

The following answer is not verified as authentic by the server:

Www.spb.ru 2053 IN A 195.190.101.3

For authoritative answers, see:

Www.spb.ru 48154 IN NS ns.nevalink.ru

Www.spb.ru 48154 IN NS ns1.gldn.net

Www.spb.ru 48154 IN NS ns2.gldn.net

Additional information:

Ns.nevalink.ru 51480 IN A 195.190.100.28

Ns1.gldn.net 10348 IN A 194.67.2.108

Ns2.gldn.net 10342 IN A 195.218.218.8

Пояснений требует числовое поле, появившееся в ответе host . Вызвав host несколько раз, можно заметить, что его значение постоянно уменьшается, что не удивительно, так как это поле содержит TTL --- время жизни записи в зоне.

Под Linux вы можете использовать параметр -vv , вызывающий вывод информации о процессе получения DNS-записей.

Выбор типов записей: параметры -a и -t

Еще два важных параметра команды host --- -a и -t . Параметр -a означает -t ANY в Linux и -v -t any во FreeBSD, поэтому разберем значение параметра -t .

Этот параметр используется для задания типа DNS-записей, которые вас интересуют. Поддерживаются типы записей A, NS, MD, MF, CNAME, SOA, MB, MG, MR, NULL, WKS, PTR, HINFO, INFO, MX, UINFO, UID, GID, UNSPEC. Обратите внимание, что в Linux тип записи можно указвать в любом регистре, а во FreeBSD --- только строчными буквами (a, ns, cname и т. п.). Если параметр -t не указан, то Linux по умолчанию производит поиск записей типа A, если указан параметр -l (см. ниже) --- то типов A, NS, PTR. FreeBSD при неуказанном параметре -t производит поиск записей типов A и MX, при указанном параметре -l --- еще и PTR и NS. Linux-версия host также поддерживает тип записи MAILB, означающий любой тип из MB, MR, MG или MINFO. Вместо указания параметра -t MAILB можно указать параметр -m ; в этом случае также будет произведено рекурсивное раскрытие записей типов MR и MG до MB. Листинг зоны: параметр -l При помощи команды host с параметром -l можно получить листинг целой зоны. Для указания типов записей, которые вас интересуют, используйте параметры -a и -t . Имейте в виду, что листинг зоны генерируется при помощи запроса AXFR на передачу зоны и выделения нужной информации из полученной. Это означает, что параметр -l создает дополнительную нагрузку на сеть и DNS-сервера, поэтому использовать его следует как можно реже. Кроме того, многие системные администраторы так настраивают свои DNS-сервера, что они не отдают зону "кому попало", отказывая в обработке запроса AXFR (при этом FreeBSD-версия host даже не потрудится внятно объяснить вам, что произошло):

$ host -l slashdot.org

Slashdot.org AXFR record query refused by ns2.andover.net

Slashdot.org AXFR record query refused by ns3.andover.net

Slashdot.org AXFR record query refused by ns1.andover.net

No nameservers for slashdot.org responded

$ host -l slashdot.org

Server failed: Query refused

Под Linux вы можете создать полную копию зоны, пригодную для "скармливания" bind, при помощи команды host -Z -a -l (и записать ее в файл, добавив -f имя_файла).

Прочие параметры

Как известно, DNS представляет собой рекурсивную систему. Если DNS-сервер не находит информацию, запрошенную у него, он инициирует рекурсивный запрос к "вышестоящему" серверу.
Команда host имеет возможность для предотвращения этого: параметр -r запрещает производить рекурсивные запросы: опрашивается только DNS-сервер по умолчанию. Этот параметр работает практически одинаково и под Linux, и под FreeBSD, но вывод команды в том случае, когда запись не найдена, слегка отличается:

$ host -r www.spb.ru

Www.spb.ru A record currently not present

$ host -r www.spb.ru

Как видно, FreeBSD просто ничего не выводит.

Команда host , в принципе, может использоваться не только в сети Интернет. Параметр -c позволяет задать класс записей, которые нас интересуют. Поддерживаются классы записей IN, CHAOS, HS, HESIOD (по умолчанию используется IN). Под Linux также поддерживаются классы INTERNET, CS, CSNET, CH. Для указания всех классов можно использовать ключевое слово ANY (под Linux также можно использовать символ *, только не забудьте заэкранировать его от шелла).

Для вывода отладочной информации используйте параметр -d (под Linux его можно продублировать --- -dd --- для увеличения количества отладочной информации).

В FreeBSD-версии host ключ -s используется для работы с DNSSEC (Linux-версия не работает с DNSSEC, ключ -s используется для указания тайм-аута DNS-сервера в секундах).

Листинг зоны: дополнительные возможности Linux-версии

Параметры, описанные в этом разделе, специфичны для Linux-версии host.

Рекурсивные листинги: параметр -L Парамер -L задает уровень рекурсии при выводе листинга зоны. Например, команда:

$ host -l -a -L 1 some.zone

Выведет листинг зоны some.zone, а также всех ее делегированных зон.
Увеличение уровня рекурсии увеличивает глубину просмотра делегированных зон. Все, сказанное о нежелательности применения параметра -l , имеет еще большее значение при применении комбинации -L -l .

Статистика: параметр -S Указание параметра -S при получении листинга зоны выводит статистическую информацию о числе найденных записей различных типов, количестве хостов различных типов, количестве делегированных зон и т. п.:

$ host -l -a -S freshmeat.net

Freshmeat.net. SOA freshmeat.net. dns-admin.freshmeat.net.



Использование определенных DNS-серверов: параметры -p и -P

Параметр -p указывает при получении листинга зоны использовать только основной (primary) DNS-сервер. Имя основного DNS-сервера определяется при помощи записи SOA рассматриваемой зоны.
Параметр -P позволяет указать список предпочтительных доменов (через запятую). Будет использоваться DNS-сервер, имеющий наибольшее число совпадений компонентов имени с одним из указанных доменов. Использование этих параметров видно на следующем примере:

$ host -vv -p -l piter.com

Trying server 195.239.142.33 (ns.piter.com) ...

$ host -vv -P hellix.piter.com -l piter.com

Finding nameservers for piter.com ...

Query done, 2 answers, status: no error

The following answer is not authoritative:

Piter.com 3308 IN NS ns.piter.com

Piter.com 3308 IN NS hellix.piter.com

Additional information:

Ns.piter.com 85293 IN A 195.239.142.33

Hellix.piter.com 3308 IN A 193.125.199.13

Found 1 address for ns.piter.com

Found 1 address for hellix.piter.com

Trying server 193.125.199.13 (hellix.piter.com) ...

Пропуск зон: параметр -N

Параметр -N позволяет указать список зон (через запятую), информация о которых не требуется. Обычно он применяется совместно с параметром -L .

Linux: расширенный синтаксис Задав параметр -x , вы можете использовать так называемый расширенный синтаксис команды host , передавая ей не одно, а несколько имен хостов. Поскольку каждое имя в этом случае трактуется как имя хоста, информацию о котором необходио получить, то для указания DNS-сервера, который нужно опрашивать, используется параметр -X . Если указан параметр -X , то -x подразумевается.

Расширенный синтаксис позволяет запустить host вообще без имен хостов, передавая их впоследствии на стандартный вход программы. Одна строка может содержать несколько имен хостов, но если в строке появляется символ # или;, то ее остаток игнорируется.

Linux: специальные режимы

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

Вариации режима передачи зоны

Параметр -C аналогичен параметру -l , но вызывает различные проверки зоны, в частности, проверяется, действительно ли каждый из DNS-серверов, перечисленных в NS-записях для зоны, способен дать авторитетный (authoritative) ответ на запрос о зоне. Выполняются также прочие проверки корректности зоны.

Параметр -H также аналогичен параметру -l , вызывая передачу зоны, хотя он не выводит информации о записях. Вместо этого производится подсчет количества A-записей в зоне. Принимаются специальные меры (см. man 1 host) для того, чтобы принимать во внимание только "настоящие" хосты. Сочетание параметров -H -S позволяет получить подробную статистику зоны:

$ host -H -S freshmeat.net

Found 34 A records within freshmeat.net

Found 4 NS records within freshmeat.net

Found 9 CNAME records within freshmeat.net

Found 2 SOA records within freshmeat.net

Found 4 MX records within freshmeat.net

Found 32 hosts within freshmeat.net

Found 9 duplicate hosts within freshmeat.net

Found 12 extrazone hosts within freshmeat.net

Found 1 gateway host within freshmeat.net

Found 0 delegated zones within freshmeat.net

Параметры -G , -D , -E выводят имена соответственно хостов-шлюзов (gateway), дублирующихся хостов и внезонных (extrazone) хостов. При этом под шлюзом понимается хост, имеющий более одного IP-адреса, под дублирующимся хостом понимается хост с ровно одним IP-адресом, которому также соответствует несколько имен (возможно, из разных зон --- это может означать ошибку в зоне). Под внезонным хостом для зоны some.zone понимается хост вида host.something.some.zone, где something.some.zone не является делегированной зоной.

Режим проверки адресов

Последний не разобранный нами режим Linux-версии утилиты host --- режим проверки адресов, инициируемый параметром -A . При этом производятся следующие действия:

* Если в качестве аргумента было указано имя хоста, то определяется его адрес, по которому определяется имя хоста, и проверяется на совпадение с исходным именем.

* Если в качестве аргумента был указан IP-адрес, то определяется соответствующее ему имя хоста, после чего проверяется, входит ли исходный IP-адрес в список IP-адресов для найденного имени хоста.

* Если параметр задан совместно с параметром -l , то описанные действия производятся для каждой A-записи в зоне.

Алексей Выскубов ,

Version of host .

Description

In the syntax listed below, name is the domain name that is to be looked up. The name can also be a dotted-decimal IPv4 address or a colon-delimited IPv6 address, in which case host will by default perform a reverse lookup for that address. The server is an optional argument that is either the name or IP address of the name server that host should query instead of the server or servers listed in /etc/resolv.conf .

Syntax

host [-aCdlnrsTwv] [-c class ] [-N ndots ] [-R number ] [-t type ] [-W wait ] [-m flag ] [-4] [-6] {name } [server ]

Options

The -a (all ) option is equivalent to setting the -v option and asking host to make a query of type ANY.

When the -C option is used, host will attempt to display the SOA records for zone name from all the listed authoritative name servers for that zone. The list of name servers is defined by the NS records that are found for the zone.

-c class

The -c option instructs host to make a DNS query of class class . This can be used to lookup Hesiod or Chaosnet class resource records. The default class is IN (Internet).

Verbose output is generated by host when the -d or -v option is used. The two options are equivalent. They have been provided for backward compatibility . In previous versions, the -d option switched on debugging traces and -v enabled verbose output.

List mode is selected by the -l option. This makes host perform a zone transfer for zone name. Transfer the zone printing out the NS, PTR, and address records (A/AAAA). If combined with -a all records will be printed.

The -i option specifies that reverse lookups of IPv6 addresses should use the IP6.INT domain as defined in RFC1886. The default is to use IP6.ARPA.

-N ndots

The -N option sets the number of dots that have to be in name for it to be considered absolute. The default value is that defined using the ndots statement in /etc/resolv.conf , or 1 if no ndots statement is present. Names with fewer dots are interpreted as relative names and will be searched for in the domains listed in the search or domain directive in /etc/resolv.conf .

-R number

The -s option tells host not to send the query to the next nameserver if any server responds with a SERVFAIL response, which is the reverse of normal stub resolver behavior.

-m flag

The -m can be used to set the memory usage debugging flags record, usage and trace.

Examples

host 204.228.150.3

This command performs a reverse lookup on the IP address 204.228.150.3 , which results in the output:

3.150.228.204.in-addr.arpa domain name pointer www.сайт.

Related commands

dig — DNS lookup utility.
nslookup — Query a name server for information about a remote host.
ping — Send ICMP ECHO_REQUEST packets to network hosts.

Еще один метод преобразования имен заключается в использовании локальной базы данных имен хостов, подобно тому, как это делалось на заре сети Internet. Файл /etc/hosts содержит список имен хостов с соответствующими IP-адресами. В листинге 4.3 приводится пример файла /etc/hosts для клиента на базе ОС Linux. В нем должны содержаться имя вашей машины и ее IP-адрес, а также IP-адрес петли 127.0.0.1 для служебных целей. Кроме того, если имеются какие-либо удаленные хосты, к которым периодически подключается ваш сервер на ОС Linux, их IP-адреса также желательно указать в файле /etc/hosts . Теперь при каждом обращении к этим хостам у Linux-сервера уже будут их IP-адреса; таким образом, необходимость в выполнении DNS-запросов отпадает. К тому же это намного ускоряет установление соединения.

1 127.0.0.1 localhost 2 192.168.0.1 shadrach.smallorg.org 3 10.0.0.1 mail1.isp.net 4 10.0.0.2 mail2.isp.net 5 10.0.0.3 fred.otherplace.com Листинг 4.3. Пример файла /etc/hosts

В первой и второй строках указываются IP-адреса для локального Linux-сервера. В строках 3–5 представлены IP-адреса для наиболее часто запрашиваемых машин вашей сети. Благодаря этому ускоряется доступ к ним c сервера на базе ОС Linux, по сравнению с использованием системы DNS.

Имя localhost

Во всех компьютерах с ОС Linux осуществляется поддержка имени localhost . Этому имени всегда соответствует IP-адрес 127.0.0.1 , который присваивается специальному сетевому устройству типа "петля". Эти имя и адрес позволяют внутренним процессам взаимодействовать с другими процессами в этой же системе по сетевым протоколам. Многие программы даже сконфигурированы на использование имени localhost . Изменение этого имени или соответствующего ему IP-адреса может повлиять на работу этих программ.

Файл преобразования DNS

В файле /etc/host.conf определяются методы и порядок преобразования имен ОС Linux. В листинге 4.4 показан пример файла /etc/host.conf .

1 order hosts,bind 2 multi on Листинг 4.4. Пример файла /etc/host.conf

В первой строке указывается порядок преобразования имен хостов. Здесь операционной системе Linux указывается, что в первую очередь она должна обращаться к файлу /etc/hosts и искать хост там, а затем попытаться преобразовать имя с помощью системы DNS (bind), если не удалось этого сделать с помощью /etc/hosts .

Утилиты клиента DNS в ОС Linux

В помощь системному администратору для ОС Linux было написано множество утилит, призванных облегчить для DNS поиск информации об удаленных хостах и сетях. Для UNIX-систем организацией Internet Software Consortium был создан программный пакет Berkeley Internet Name Domain (BIND), в который вошли три наиболее полезные, с точки зрения автора, и широко используемые утилиты: host , nslookup и dig . Эти программы распространяются совместно с программным обеспечением, входящим в большинство дистрибутивов ОС Linux. В Red Hat и Mandrake Linux эти программы поставляются в виде пакетов RPM.

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

Утилита host

Программа host производит простейшее преобразование имени с помощью DNS. Формат команды host следующий:

host [-l] [-v] [-w] [-r] [-d] [-t querytype] [-a] host

По умолчанию команда host пытается получить IP-адрес для имени, указанного как host , с помощью DNS-сервера, определенного в файле /etc/resolv.conf . Если в командной строке указан server , то по умолчанию команда host будет использовать его в качестве DNS-сервера. Добавляя дополнительные параметры в командной строке, можно модифицировать работу команды host . Все эти параметры указаны в табл. 4.5 .

Таблица 4.5. Параметры команды host
Параметр Описание
-l Показывает полную информацию о домене
-v Использует подробный формат при выводе результатов
-w Заставляет команду host ожидать ответа
-r Выключает режим рекурсии
-d Включает режим отладки
-t querytype Определяет тип запроса
-a Восстанавливает все записи в DNS

Параметр -l может использоваться для поиска информации обо всех хостах в домене. Очень часто вместе с ним используется параметр -t для того, чтобы отфильтровать информацию по типу (например, -t MX возвращает только записи МХ для домена). К сожалению, в настоящее время из соображений безопасности использование параметра -l затруднено, так как большинство DNS-серверов отказывает в предоставлении информации о хостах из своих баз данных. Если же информация запрашивается от удаленного или загруженного DNS-сервера (или через низкоскоростное соединение), то можно использовать параметр -w . С его помощью программа host принудительно ожидает ответа на запрос. По умолчанию время ожидания составляет около минуты.

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

Это весьма удобно при определении того, правильно ли ваш DNS-сервер кэширует ответы DNS. Во-первых, попытайтесь задать параметр -r . Если никакой информации об имени хоста нет, то от локального DNS-сервера ответ не будет получен. Затем задайте команду без параметра -r . Здесь должен быть получен нормальный ответ, так как локальному DNS-серверу разрешено получать данные от других серверов DNS. Далее еще раз попробуйте команду host с опцией -r . Теперь полученная информация должна в точности совпадать с данными, полученными в результате предыдущей попытки. Это означает, что DNS-сервер на этот раз почерпнул из кэша информацию, которая относилась к предыдущей попытке. Если никакой информации не получено, значит, локальный DNS-сервер не скэшировал предыдущий ответ. Тогда вы должны заметить значительное замедление при получении ответа на запрос, так как он делается по сети, а не берется из кэша.

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

1 $host www.linux.org 2 www.linux.org has address 198.182.196.56 3 www.linux.org mail is handled (pri=2O) by router.invlogic.com 4 www.linux.org mail is handled (pri=30) by border-ai.invlogic.com 5 www.linux.org mail is handled (pri=10) by mail.linux.org 6 $ Листинг 4.5. Пример выполнения команды host

В строке 1 показан основной формат команды host - просто добавьте имя хоста, о котором требуется получить информацию. Строки 2–5 представляют собой результаты работы команды. Строка 2 показывает, что DNS-сервер смог преобразовать имя заданного хоста в его IP-адрес. Далее в строках 3-5 показаны три компьютера, которые могут принимать электронную почту для заданного хоста согласно записям МХ . Заметим, что команда host показывает даже весовые коэффициенты (или приоритеты) для каждого почтового сервера. Если почта была послана пользователю указанного хоста, то сначала ее доставкой займется сервер с приоритетом 10 (mail.linux.org ). Если же команда host не выполняется, то можно послать запрос через другой DNS-сервер, указав его адрес после адреса хоста в командной строке. Это весьма эффективно, если вы считаете, что локальный DNS-сервер ведет себя не совсем правильно.

Хочу рассказать о несколько нестандартном способе с помощью которого можно открывать в браузере сайты, используя короткие имена. Например, вместо того чтобы набирать в браузере «yandex.ru» можно просто набрать одну букву «y». Поможет нам в этом файл /etc/hosts.

Файл /etc/hosts

В файле /etc/hosts задаются соответствия между IP адресом и именем хоста (hostname, домен), а также их псевдонимами (также называются, синонимами, алиасами). Когда вы обращаетесь к какому-нибудь адресу в сети, например, http://yandex.ru, то для доступа к сайту системе требуется вначале преобразовать адрес сайта в соответствующий ему IP адрес, для этого система запрашивает IP адрес у DNS сервера. Если в файле /etc/hosts прописано соответствие между yandex.ru и IP адресом, тогда система будет использовать именно этот IP адрес. А так как мы можем в файле /etc/hosts указать еще и псевдоним, по которому будет доступен конкретный IP адрес, то мы можем указать, например, для yandex.ru псевдоним «y». Соответственно, при запросе «y» в своем браузере, система прочитает IP адрес в файле /etc/hosts и откроет сайт yandex.ru. То есть /etc/hosts, это своего рода локальный DNS сервер.

Как узнать IP адрес сайта

Теперь нам нужно определить IP адреса сайтов, которые мы хотим добавить в /etc/hosts. Стоит отметить, что не все сайты имеют отдельный выделенный IP адрес и получить к ним доступ только по IP адресу нельзя. Но почти все крупные сайты и порталы имеют свой выделенный IP адрес. Простой способ узнать IP адрес сайта это использовать командну ping:

Ping адрес-сайта.ru

Например, выполним:

ping yandex.ru

На экране отобразится процесс пинга (чтобы прервать нажмите Ctrl+C). Итак, мы получим вывод команды ping вида:

PING yandex.ru (87.250.250.11) 56(84) bytes of data. 64 bytes from yandex.ru (87.250.250.11): icmp_seq=1 ttl=57 time=3.57 ms ...

Здесь видно, что yandex.ru соответствует IP адресу 87.250.250.11. Аналогично, выполняем для других сайтов.

Редактирование файла /etc/hosts

Редактировать файл /etc/hosts нужно осторожно, чтобы ничего не испортить, так как это системный файл и важно не нарушать его синтаксис. Откройте файл для редактирования, для этого выполните в командной строке:

Sudo gedit /etc/hosts

Содержимое файла выглядит примерно следующим образом:

127.0.0.1 localhost::1 mycomp localhost6.localdomain6 localhost6 127.0.1.1 mycomp # The following lines are desirable for IPv6 capable hosts::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ...

Синтаксис у файла /etc/hosts очень простой:

IP-адрес имя-хоста [псевдонимы, ...]

Добавим в файл новые строки для разных сайтов:

74.125.232.19 google.ru g 94.100.191.203 mail.ru m 194.186.36.211 rbc.ru r 87.250.250.11 yandex.ru y

Сохраните и закройте файл. Мы прописали соответствия между IP адресами, именами сайтов и их псевдонимами. Теперь перейдите в браузер и в адресной строке введите просто «g», должен открыться сайт google.ru. Чтобы открыть mail.ru введите просто «m», для rbc.ru — просто «r», yandex.ru — «y».