Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Способы автоматического запуска и остановки программ




Printenv HOME

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

PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/lib/java/bin:/usr/lib/qt/bin

Переменная может принимать ряд значений, разделенных двоеточием, каждое из которых является полным путем к каталогу, в котором должны храниться исполняемые или командные файлы. Суть данной переменной окружения такова, что она позволяет не указывать полный путь к исполняемому файлу при его запуске на исполнение. Командный интерпретатор считает первое введённое словосочетание в командной строке сначала своей встроенной командой, а затем, если введённое словосочетание не соответствует ни одной встроенной команде, исполняемым файлом (утилитой, программой пользователя и т.п.).

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

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

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

Команда unset удаляет любые, указанные в качестве параметра, назначенные переменные, уничтожая и саму переменную, и её значение. Оболочка bash после выполнения этой команды вообще «забудет» о том, что такая переменная существовала. Удаление переменной действует только в текущем сеансе.

 

 

Автоматизация действий – одно из главных преимуществ ЭВМ. Следует различать два уровня автоматизации. На первом находятся действия, которые автоматически выполняются системой без участия пользователей. Второй уровень – это действия, которые хотел бы автоматизировать сам пользователь (включая администратора).

Выше уже говорилось о трех видах процессов. Демоны в своем большинстве должны стартовать при загрузке операционной системы. Исключением являются сетевые службы, запускаемые демоном inetd при попытке установления соединения с какой-нибудь сетевой службой (ftp, telnet, pop3 и т. п.). Если данные службы не работают самостоятельно в виде демонов, то сканирование возможно открытых портов заставляет inetd запускать соответствующие процессы.

После запуска самых необходимых системных процессов ядро системы запускает процесс init, который, подобно Адаму, является прародителем всех остальных процессов. Процесс init читает и исполняет собственный конфигурационный файл – /etc/inittab, листинг которого приведен на рис. 2.5. Несущественные строки из содержимого файла исключены.

 

# These are the default runlevels in Slackware:

# 0 = halt

# 1 = single user mode

# 2 = unused (but configured the same as runlevel 3)

# 3 = multiuser mode (default Slackware runlevel)

# 4 = X11 with KDM/GDM/XDM (session managers)

# 5 = unused (but configured the same as runlevel 3)

# 6 = reboot

# Default runlevel. (Do not set to 0 or 6)

id:3:initdefault:

# System initialization (runs when system boots).

si:S:sysinit:/etc/rc.d/rc.S

# Script to run when going single user (runlevel 1).

su:1S:wait:/etc/rc.d/rc.K

# Script to run when going multi user.

rc:2345:wait:/etc/rc.d/rc.M

# Runlevel 0 halts the system.

l0:0:wait:/etc/rc.d/rc.0

# Runlevel 6 reboots the system.

l6:6:wait:/etc/rc.d/rc.6

# If power is back, cancel the running shutdown.

pg::powerokwait:/sbin/genpowerfail stop

# These are the standard console login getties in multiuser mode:

c1:1235:respawn:/sbin/agetty 38400 tty1 linux

c2:1235:respawn:/sbin/agetty 38400 tty2 linux

c3:1235:respawn:/sbin/agetty 38400 tty3 linux

c4:1235:respawn:/sbin/agetty 38400 tty4 linux

c5:1235:respawn:/sbin/agetty 38400 tty5 linux

c6:12345:respawn:/sbin/agetty 38400 tty6 linux

Рис. 2.5. Фрагменты содержимого файла /etc/inittab

Файл этот имеет довольно простую структуру. Как и в иных конфигурационных файлах, строки, начинающиеся символом #, являются комментариями и командой init не обрабатываются. Каждая строка, не являющаяся комментарием, состоит из 4 полей и имеет вид id:runlevel:action:process.

Здесь

1. id (идентификатор строки) – некоторая уникальная двух- или односимвольная метка (в современных системах максимальная длина идентификатора составляет 4 символа). Так, метка si означает system initialization, su – single user, а rc – run command;

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

3. action (действие) – способ запуска процесса, обозначаемый одним из ключевых слов: respawn, boot, bootwait, ctrlaltdel, initdefault, kbrequest, off, once, ondemand, powerfail, powerokwait, powerwait, wait и sysinit. Среди этих ключевых слов чаще встречаются следующие:

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

· bootwait – загрузка останавливается до завершения указанного в строке сценария,

· initdefault – строка с этим полем запускается по умолчанию и определяет базовый уровень загрузки,

· respawn – запуск процесса происходит в фоновом режиме, а когда процесс завершится (например, с ошибкой), его запускают снова,

· once – запуск производится в фоновом режиме однократно,

· wait – запуск производится интерактивно, и пока процесс не завершится, никаких других действий не выполняется,

· ctrlaltdel – действие, которое выполняется при одновременном нажатии трех клавиш <Ctrl>+<Alt>+<Del>. Специалисты считают возможность перезагрузки небезопасной с позиций консольной атаки на систему и рекомендуют такую строку снабдить символом #,

· sysinit – действие, выполняемое до выдачи приглашения к регистрации. Система дожидается выполнения команды, а затем продолжает загрузку;

4. process – программа или скрипт (сценарий) для выполнения.

В ОС Linux предусмотрено несколько вариантов функционирования после начальной загрузки системы, которые называются уровнями выполнения (run levels). Всего зарезервировано десять таких уровней, при этом реально используется только половина из них. Используемые уровни выполнения нумеруются с 0 до 6 (уровень 0 используется для останова системы, а 6 – для перезагрузки):

· уровень 1, или S (single), соответствует однопользовательскому режиму. При загрузке на первый уровень не запускается никаких служб;

· уровень 2 соответствует многопользовательскому режиму загрузки системы с отключенной службой NFS;

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

· уровень 4 обычно не используется и зарезервирован для будущего применения (в Slackware – это режим X–Window);

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

Проанализируем основные рабочие строки в приведенном файле.

id:3:initdefault:

Загрузка будет происходить в сетевом многопользовательском текстовом режиме. Если эта строка отсутствует или будет закомментирована, в ходе загрузки последует запрос об установке базового уровня.

si:S:sysinit:/etc/rc.d/rc.S

Метод sysinit означает, что процесс запускается во время начальной загрузки системы, до регистрации пользователя и перехода на какой-нибудь уровень выполнения. Начальный сценарий, записанный в файле /etc/rc.d/rc.S, проверяет и монтирует дисковые файловые системы, инициализирует область подкачки – словом, делает все, без чего дальнейшая полноценная работа системы невозможна. Стартовые сценарии, а также каталоги, в которых они располагаются, имеют префикс rc, что означает run command – «команда запуска».

rc:2345:wait:/etc/rc.d/rc.M

На всех многопользовательских уровнях, включая третий, предусмотрен запуск сценария /etc/rc.d/rc.M. В этом командном файле много похожих фрагментов, связанных с запуском сервисов по условию. Типовой фрагмент для Slackware Linux выглядит так:

# Start the sendmail daemon:

if [ -x /etc/rc.d/rc.sendmail ]; then

/etc/rc.d/rc.sendmail start




Поделиться с друзьями:


Дата добавления: 2015-03-31; Просмотров: 618; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.028 сек.