Linux
Шрифт:
kill -1
1) SIGHUP
2) SIGINT
3) SIGQUIT
4) SIGILL
5) SIGTRAP
6) SIGABRT
7) SIGBUS
8) SIGFPE
9) SIGKILL
10) SIGUSR1
11) SIGSEGV
12) SIGUSR2
13) SIGPIPE
14) SIGALRM
15) SIGTERM
17) SIGCHLD
18) SIGCONT
19) SIGSTOP
20) SIGTSTP
21) SIGTTIN
22) SIGTTOU
23) SIGURG
24) SIGXCPU
25) SIGXFSZ
26) SIGVTALRM
27) SIGPROF
28) SIGWINCH
29) SIGIO
30) SIGPWR
31) SIGSYS
32) SIGRTMIN
33) SIGRTMIN+1
34) SIGRTMIN+2
35) SIGRTMIN+3
36) SIGRTMIN+4
37) SIGRTMIN+5
38) SIGRTMIN+6
39) SIGRTMIN+7
40) SIGRTMIN+8
41) SIGRTMIN+9
42) SIGRTMIN+10
43) SIGRTMIN+11
44) SIGRTMIN+12
45) SIGRTMIN+13
46) SIGRTMIN+14
47) SIGRTMIN+15
48) SIGRTMAX-15
49) SIGRTMAX-14
50) SIGRTMAX-13
51) SIGRTMAX-12
52) SIGRTMAX-11
53) SIGRTMAX-10
54) SIGRTMAX-9
55) SIGRTMAX-8
56) SIGRTMAX-7
57) SIGRTMAX-6
58) SIGRTMAX-5
59) SIGRTMAX-4
60) SIGRTMAX-3
61) SIGRTMAX-2
62) SIGRTMAX-1
63) SIGRTMAXКак видите, список внушительный.
killall
Еще один вариант программы kill. Используется для того, чтобы завершить работу процессов, носящих одно и то же имя. К примеру, в нашей системе запущено несколько программ тс. Для того чтобы одновременно завершить работу этих программ, достаточно всего лишь выполнить следующую команду:killall mc
Конечно, этим не ограничивается использование данной команды. С ее помощью можно отсылать сигналы группе одноименных процессов. Для получения более подробной информации по этой команде обращайтесь к ее тап-странице.
Изменение приоритета выполнения процессов
В операционной системе Linux у каждого процесса есть свой приоритет исполнения. Это очень удобно. Поскольку операционная система многозадачна – то для выполнения каждого процесса выделяется определенное количество времени. Для некоторых задач необходимо выделить побольше, для некоторых можно поменьше. Для этого и предназначен приоритет процесса. Управление приоритетом процесса осуществляется программами nice и renice.
nice
Программа nice позволяет запустить команду с предопределенным приоритетом выполнения, который задается в командной строке. При обычном запуске все задачи имеют один и тот же приоритет, и операционная система равномерно распределяет между ними процессорное время. Однако с помощью утилиты nice можно понизить приоритет какой-либо задачи, таким образом предоставляя другим процессам больше процессорного времени. Повысить приоритет той или иной задачи имеет право только пользователь root. Синтаксис использования nice следующий:nice - number command
Уровень приоритета процесса определяется параметром number , при этом большее его значение означает меньший приоритет процесса. Значение по умолчанию – 10, и number представляет собой число, на которое должен быть уменьшен приоритет. К примеру, процесс top имеет приоритет, равный —5. Для того чтобы понизить приоритет выполнения процесса на десять, мы должны выполнить следующую команду:
nice 10 top
В результате процесс top имеет приоритет, равный 5.
Только пользователь root может поднять приоритет того или иного процесса, используя для этого отрицательное значение параметра number.
renice
Программа renice, в отличие от программы nice, позволяет изменить приоритет уже работающего процесса. Формат запуска программы следующий:renice - number PID
В общем, программа renice работает точно так же, как и nice. Уровень приоритета процесса определяется параметром number , при этом большее его значение означает меньший приоритет процесса. Значение по умолчанию – 10, и number представляет собой число, на которое должен быть уменьшен приоритет процесса.
Только пользователь root может поднять приоритет того или иного процесса, используя для этого отрицательное значение параметра number.
Выполнение процессов в заданное время
Одна из основных задач автоматизации администрирования операционной системы – выполнение программ в заданное время или с заданной периодичностью. Конечно, можно запускать программы самостоятельно, но проводить 24 часа на работе или постоянно удаленно запускать программы в самое неподходящее время (часа в три ночи) – безумие. Для решения этих проблем существует несколько утилит, позволяющих запускать процессы в нужное время.
at
Для запуска одной или более команд в заранее определенное время используется команда at. В этой команде вы можете определить время и дату запуска той или иной команды. Команда at требует, по меньшей мере, двух параметров – время выполнения программы и запускаемую программу с ее параметрами запуска.
Приведенный ниже пример запустит команду на выполнение в 01:01. Для этого введите все, приведенное ниже, с терминала, завершая ввод каждой строки нажатием клавиши <Enter> и по окончании ввода всей команды – <Ctrl>+<D> для ее завершения.at 1:01
Is
echo "Time is 1:01"Помимо времени, в команде at может быть также определена и дата запуска программы на выполнение.
Пользователь root может без ограничения применять практически любые команды. Для обычных пользователей права доступа к команде at определяются файлами /etc/at.allow и /etc/at.deny. В файле /etc/at.allow содержится список тех, кому разрешено использовать команду at, а в файле /etc/at.deny находится список тех, кому ее выполнять запрещено.
batch
Команда batch в принципе аналогична команде at. Более того, batch представляет собой псевдоним команды at – ъ. Для чего необходима эта команда? Представьте, вы хотите запустить резервное копирование вечером. Однако в это время система очень занята, и выполнение резервирования системы практически парализует ее работу. Для этого и существует команда batch – ее использование позволяет операционной системе самой решить, когда наступает подходящий момент для запуска задачи в то время, когда система не сильно загружена.
Формат команды batch представляет собой просто список команд для выполнения, следующих в строках за командой; заканчивается список комбинацией клавиш <Ctrl>+<D>. Можно также поместить список команд в файл и перенаправить его на стандартный ввод команды batch.
cron
Cron – это программа, выполняющая задания по расписанию, но, в отличие от команды at, она позволяет выполнять задания неоднократно. Вы определяете времена и даты, когда должна запускаться та
или иная программа. Времена и даты могут определяться в минутах, часах, днях месяца, месяцах года и днях недели.Программа cron запускается один раз при загрузке системы. При запуске cron проверяет очередь заданий at и задания пользователей в файлах crontab. Если для запуска не было найдено заданий – следующую проверку cron произведет через минуту.
Для создания списка задач для программы cron используется команда crontab. Для каждого пользователя с помощью этой команды создается его собственный crontab-файл со списком заданий, имеющий то же имя, что и имя пользователя.
Каждая строка в файле crontab содержит шаблон времени и команду. Команда выполняется тогда, когда текущее время соответствует приведенному шаблону. Шаблон состоит из пяти частей, разделенных пробелами или символами табуляции, и имеет вид:минуты часы день_месяца месяц день_недели задание
Первые пять полей представляют собой шаблон времени и обязательно должны присутствовать в файле. Для того чтобы программа сгоп игнорировала поле шаблона времени, поставьте в нем символ звездочки (*).
Например, шаблон ю 01 01 * * говорит о том, что команда должна быть запущена в десять минут второго каждого первого числа любого (*) месяца, каким бы днем недели оно ни было. В табл. 26.3 приведено описание полей таблицы задания сгоп.
Таблица 26.3. Параметры таблицы заданий программы cronНиже приведены несколько команд, исполняемых программой сгоп:
• команда запускается в 1 минуту каждого часа:01 * * * * /usr/bin/script
• команда запускается каждый день в 8:20:
20 8 * * * /usr/bin/script
• команда запускается в 6 часов каждое воскресенье:
00 6 * * 0 /usr/bin/script
• команда запускается в 7:40 каждое первое число:
40 7 1 * * /usr/bin/script
Для создания и редактирования файла заданий для программы сгоп используется команда crontab. Прямое редактирование файла заданий не допускается.
Команда crontab имеет следующие параметры командной строки:
• -е – позволяет редактировать компоненты файла (при этом вызывается редактор, определенный в переменной EDITOR);
• -r – удаляет текущий crontab-файл из каталога;
• -l – используется для вывода списка текущих заданий.
Cron также имеет возможность разрешать или запрещать конкретным пользователем свое использование. Для этого существуют файлы /etc/cron.allow и /etc/cron.deny, которые аналогичны описанным ранее /etc/at.allow и /etc/at.deny.
Ссылки
www.tts.esoo.ru/~lesenka/linux/slack_book.html – Дэвид Кэнтрелл, Логэн Джонсон, Крис Люмене. Основы Slackware Linux. Официальный учебник.Глава 27 Администрирование сети
Администратор сети просто не в состоянии надежно контролировать всю сеть в архитектуре клиент/сервер, что чревато несанкционированным доступом. Непродуманные действия еще больше усиливают эту опасность.
Синди Куллен
Пожалуй, одна из самых сложных и трудоемких задач системного администратора – администрирование сети. Эта задача настолько комплексная, что можно практически все, о чем писалось ранее, отнести к подготовке администрирования сети. Слишком много параметров, программ, настроек могут прямо или косвенно отражаться на функционировании сети и сетевых сервисов. Мы уже приводили чье-то крылатое высказывание: «Компьютер – это сеть».
В этой главе все, так или иначе, будет касаться администрирования и управления сетью, хотя некоторые вещи с первого взгляда никоим образом не относятся к сети или ее настройке.
В той части главы, где будет говориться об инструментах, предназначенных для обнаружения уязвимости системы, мы опишем несколько программных пакетов, которые с одинаковым успехом можно применить как для взлома системы, так и для ее защиты.
Расширенное управление доступом к файлам
К сожалению, стандартные средства организации прав доступа к файлам в UNIX-подобных операционных системах зачастую не удовлетворяют требованиям некоторых системных администраторов. Проблема заключается в том, что определение прав доступа к файлам сводится к установке девяти битов, с помощью которых можно задать права доступа для владельца файла, группы, к которой принадлежит владелец файла, а также для всех остальных. Часто необходимо настроить доступ к файлу достаточно сложным образом – допустим, три человека из трех разных групп имеют право делать с файлом все что угодно, десять человек из других групп могут открывать файл на чтение, а еще десять – только выполнять. Для всех других пользователей доступ к этому файлу необходимо запретить. Устроить нечто подобное стандартными средствами Linux весьма нетривиальная задача. В такой ситуации для решения данной проблемы можно воспользоваться Linux ACLs (Access Control Lists, списки контроля доступа) – версией POSIX ACLs для Linux. Linux ACLs – это набор патчей для ядра операционной системы и программ для работы с файловой системой и несколько утилит, дающих возможность устанавливать права доступа к файлам не только для пользователя-владельца и группы-владельца файла, но и для любого пользователя или группы.
Linux ACLs использует расширенные атрибуты (Extended Attributes) для хранения данных о правах доступа к файлам пользователей и групп. Расширенные атрибуты – это пара имя/значение, привязанная к определенному файлу.
Список расширенного контроля доступа существует для каждого inode и состоит из шести компонентов. Первые три являются копией стандартных прав доступа к файлу. Они содержатся в единственном экземпляре в ACL и есть у каждого файла в системе:
• ACL_USER_OBJ – режим доступа к файлу пользователя-владельца;
• ACL_GROUP_OBJ – режим доступа к файлу группы-владельца;
• ACL_OTHER – режим доступа к файлу остальных пользователей.
Следующие два компонента устанавливаются для каждого файла в отдельности и могут присутствовать в ACL в нескольких экземплярах:
• ACL_USER – содержит UID и режим доступа к файлу пользователя, которому установлены права, отличные от основных. На каждого пользователя со своими правами на данный файл хранится отдельная запись. Не может существовать более одной записи на одного и того же пользователя;