Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №4 (FAQ).doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
406.02 Кб
Скачать

4.1.4. Удаление учётной записи

Быстро и эффективно удалить пользователя можно с помощью команды rmuser(8). rmuser(8) старается удалить всё, относящееся к указанному пользователю: домашнюю директорию, письма, задачи в crontab(1)/at(1), уничтожает запущенные процессы этого пользователя, созданные им временные файлы в /tmp и, разумеется, удаляет его из /etc/master.passwd и /etc/group.

# rmuser

Enter login name for user to remove: testuser

Matching password entry:

testuser:$2a$06$YOdOZM3.4m6MObBXjeZtBOWArqC2.uRJZXUkOghbieIvSWXVJRzlq:1002

:31::0:0:Test FAQ User:/home/testuser:/bin/ksh

Is this the entry you wish to remove? y

Remove user's home directory (/home/testuser)? y

Updating password file, updating databases, done.

Updating group file: done.

Removing user's home directory (/home/testuser): done.

Для удаления пользователя так же можно вопользоваться командами: userdel, user del, pw userdel.

К сожалению, в UNIX (да и вообще, наверное ни в одной операционной системе) не существует абсолютно надёжного метода удалить пользователя. Никто не может гарантировать вам, что этот пользователь не прикопал своих файлов где-то вне своего домашнего каталога. Что никто не выдал ему прав на ресурсы используя метод ACL. rmuser(8) не в силах удалить связанные с пользователем почтовые алиасы. Если спустя время вы заведёте нового пользователя, то ему может быть выдан UID старого пользователя и он завладеет брошенными файлами. Если имя нового пользователя совпадёт с именем удалённого, то он завладеет почтовыми алиасами и др.

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

6.1. Определение существующих установок tcp/ip

Описание.  Кандидат BSDA должен уметь определить IP адреса системы, маску подсети, шлюз, первичный и вторичный сервер DNS и имя хоста.

Практикаifconfig(8), netstat(1), resolv.conf(5), route(8), hostname(1)

Комментарий

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

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

6.1.1. Ifconfig(8) — настройки сетевых интерфейсов

Утилита ifconfig(8) предназначена для настройки сетевых интерфейсов и диагностики текущих настроек. Как мы и договаривались, в данном разделе мы изучаем только возможности по диагностике, а настройкой займёмся в другом разделе (См. Раздел 6.2.2, «ifconfig(8) — настройки сетевых интерфейсов»).

1-й уровень OSI[1] (физический):

  • наличие несущей в проводе подведённом к интерфейсу;

  • характеристики Ethernet;

2-й уровень OSI (канальный):

  • MAC-адрес (он же hardware address);

  • флаги интерфейса (см расшифровку флагов сетевых интерфейсов ниже);

3-й уровень OSI (сетевой):

  • MTU — Maximum Transfer Unit — максимальный размер пакета, который можно передать/принять через данный интерфейс. Пакет имеется ввиду на сетевом уровне модели OSI, порция информации на канальном уровне называется «кадр»;

  • IP-адрес;

  • IPv6-адрес;

  • маска подсети;

  • широковещательный адрес;

Вот пример того, как может выглядеть вывод команды ifconfig(8):

$ifconfig -a

rl0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500

options=8<VLAN_MTU>

inet xxx.yyy.zzz.180 netmask 0xffffff80 broadcast xxx.yyy.zzz.255

ether 00:80:48:2d:f7:15

media: Ethernet autoselect (100baseTX <full-duplex>)

status: active

rl1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500

options=8<VLAN_MTU>

inet 172.16.0.1 netmask 0xfffffffc broadcast 172.16.0.3

inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255

ether 4c:00:10:13:15:1d

media: Ethernet autoselect (100baseTX <full-duplex>)

status: active

pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33208

pfsync0: flags=0<> mtu 2020

lp0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500

inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384

inet 127.0.0.1 netmask 0xff000000

Команде ifconfig(8) необходимо указать по каким интерфейсам она должна вывести сведения. Если вместо этого указать аргумент -a будут выведены сведения обо всех интерфейсах, с опцией -u только об интерфейсах активных в данный момент, точнее об интерфейсах с установленным флагом UP (в данном случае rl1, pflog0 и lo0). В NetBSD и OpenBSD флаг -u отстутствует. В FreeBSD интерфейс указывать необязательно: если вы вызываете ifconfig(8) без аргументов, по умолчанию подразумевается ключ -a. В NetBSD и OpenBSD обязательно надо указать или интерфейс или ключ -a.

Указание на то, что следующий абзац относится к интерфейсу rl0. Специально для поклонников Linux отметим: в BSD принято называть интерфейсы по именам отвечающих за них драйверов. За сетевые карты на чипсете RealTek отвечает драйвер rl(4). Узнать о специфических настройках для устройств на остове этого чипсета можно из справочной страницы man 4 rl.

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

mtu — maximum transfer unit в байтах.

Характеристики интерфейса на сетевом уровне: IP-адрес, маска подсети и широковещательный адрес. Характреристики в адресном пространстве IPv6 сообщаются отдельной строкой и здесь непоказаны.

Аппаратный адрес (он же MAC-адрес) устройства. (Канальный уровень.)

media — характеристики передающей среды (физический уровень). Ethernet autoselect — скорость обмена данными автоматически определяется при взаимодействии с устройством на противоположном конце провода, выбирается наивысшая скорость из поддерживаемых обоими устройствами, если среда не поддерживает сигнал на этой скорости (например сопротивление в проводе слишком большое) а оба устройства договорились о передаче на большой скорости, необходимо хотя бы одно из них вручную перевести на более низкую скорость передачи данных; 100baseTX: 100 — выбрана скорость передачи данных 100 Мб/сек, base — для передачи используется вся частотная полоса (у ADSL-модема это не так: он может одновременно на одной частоте передавать обычный телефонный сигнал, а на другой интернет-трафик), TX — для передачи используется витая пара (twisted pair); full-duplex — возможна одновременная передача данных в обе стороны, если это не так, будет написано half-duplex.

Физическая характеристика — наличие несущей в проводе. Возможные значения active или no carrier. В последнем случае, это значит, что провод вышел из гнезда, или его разорвал экскаватор, или прибор с той стророны выключен.

Здесь показан пример того, как выглядит конфигурация интерфейса, когда на нём поднято одновременно несколько IP-адресов (алиасов). В Linux в этом случае заводится новое устройство (например в дополнение к интерфейсу eth0 появляется eth0:0, eth0:1 и т.д.), что в ряде случаев бывает удобно. Так, если мы какому-нибудь сервису предписываем посылать пакеты через интерфейс rl1 неочевидно какой IP он будет использовать.

Это пример виртуального интерфейса. Данный интерфейс используется пакетным фильтром OpenBSD — pf(4). (В настоящий момент данный брандмауэр используется не только в OpenBSD, но так же и в FreeBSD начиная с версии 5.3 и в NetBSD.)

Это параллельный порт сконфигурированный для связи типа точка-точка.

И, наконец, кольцевой интерфейс.

Флаги сетевых интерфейсов (информацию о некоторых флагах можно получить из девятой страницы man(1), см. ifnet(9). Более полно флаги описаны в книге [McKusick-2004]):

UP

Интерфейс доступен для использования, т.е. сконфигурирован и готов передавать сообщения. Когда мы запускаем команду ifconfig(8) с опцией -u, мы выводим информацию именно об интерфейсах с этим флагом.

RUNNING

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

BROADCAST

С интерфейса можно передавать широковещательные пакеты.

MULTICAST

Поддерживаются широковещательные пакеты для группы адресов.

SIMPLEX

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

PROMISC

Включён «неразборчивый» (promiscuous) режим. Интерфейс ловит все пакеты вне зависимости от того, кому они предназначены. Этим режимом могут пользоваться так называемые «снифферы» — программы для подслушивания сетевого трафика. В частности, программа tcpdump(1), предназначенная для диагностических целей.

ALLMULTI

Аналогично флагу PROMISC, но ловятся пакеты предназначенные группе адресов.

MONITOR

Режим контроля запрошенный пользователем: пакеты не передаются, а полученные пакеты уничтожаются после получения устройством bpf(4) (т.е. после попадания в tcpdump(1))

POINTTOPOINT

Интерфейс предназначен для соединения типа точка-точка.

LINK0, LINK1, LINK2

Флаги специфичны для канального уровня. Так, например для интерфейса SLIP, LINK0 означает, что разрешена сжатая передача (CSLIP), LINK1 — сжатая передача разрешена только при получении сжатого пакета с другого конца, LINK2 — все пакеты ICMP уничтожаются. (См. [Stevens-2003-ru])

LOOPBACK

Кольцевой интерфейс.

SMART

Интерфейс самостоятельно управляет своими маршрутами.

NOARP

Интерфейс не использует протокол ARP.

STATICARP

Интерфейс использует только статическую таблицу ARP

OACTIVE

Интерфейс занят выводом. Этот флаг устанавливается когда попытка ввода недопустима.

POLLING

Интерфейс в режиме опроса.

DEBUG

Включена отладка в драйвере интерфейса.

Здесь упомянуты не все возможные флаги, а лишь флаги упомянутые в [McKusick-2004]. В [Stevens-2003-ru] можно найти упоминание других флагов, например NOTRAILERS — управление концевой инкапсуляцией при формировании кадра из пакета. Полный обозор флагов не входит в наши цели.

Каждый флаг это некоторый бит в числе характеризующем состояние интерфейса. Это число приведено перед списком флагов в угловых скобках В ШЕСТНАДЦАТЕРИЧНОМ представлении. Так число 8843 переводится в двоичную систему как 1000100001000011 и означает набор флагов <UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST>. Здесь за флаг UP отвечает самый правый бит, BROADCAST — второй справа, RUNNING — 7-й справа. Переключая флаги нетрудно вычислить какой бит чему соответствует. Легко видеть, что для того, чтобы интерфейс работал, необходимо (но недостаточно), чтобы число было нечётным.

Некоторые флаги поддерживаются не во всех операционных системах, что связано, возможно (это мои домыслы), с разрядностью числа характеризующего состояние сетевого интерфейса в них. Так флаг STATICARP (20-й бит справа) есть только в FreeBSD и отсутствует в OpenBSD и NetBSD. То же относится к флагу MONITOR (19-й бит).