Михаил Флёнов - Linux глазами хакера
- Название:Linux глазами хакера
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2005
- Город:Санкт-Петербург
- ISBN:5-94157-635-8
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Михаил Флёнов - Linux глазами хакера краткое содержание
Рассмотрены вопросы настройки ОС Linux на максимальную производительность и безопасность. Описаны потенциальные уязвимости и рекомендации по предотвращению возможных атак. Дается подробное описание настройки прав доступа и конфигурирования сетевого экрана. Показано, как действовать при атаке или взломе системы, чтобы максимально быстро восстановить ее работоспособность и предотвратить потерю данных.
Для пользователей, администраторов и специалистов по безопасности
Linux глазами хакера - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Раз процесс можно сделать центральным, значит можно поступить и наоборот. Чтобы вернуть процесс в фоновый режим, нажмите клавиши +. Перед вами снова появится командная строка. Выполните команду
jobs
, чтобы убедиться, что команда man ls
все еще работает.
Если в программе есть возможность выполнять системные команды, то вместо сочетания клавиш + можно выполнить команду
bg %1
. Число 1 — это снова номер процесса.
3.4.2. Остановка процессов
Чтобы прекратить работающий процесс, необходимо сделать его центральным и остановить штатными средствами. Чаще всего, на экране есть подсказка, которая поможет выйти из программы. Если она отсутствует, то следует обратиться к документации или просмотреть файл помощи к программе через вызов
man имяпрограммы
.
Процессы, работающие только в фоне, не могут быть выведены на передний план. Для того чтобы их остановить, есть специализированные команды, которые чаще всего имеют вид:
имясервиса stop
Иногда процессы зависают. Да, такие ситуации бывают и в ОС Linux. Центральный процесс может быть снят с помощью комбинации клавиш + или +. Но этот метод срабатывает не во всех случаях и не для всех программ. Если не удается завершить процесс по- хорошему, то можно поступить иначе. Для этого существует команда
kill
. Чтобы отключить процесс по личному идентификатору (тот, что мы видели в квадратных скобках), используйте команду:
kill %n
Параметр n нужно заменить на номер процесса. Например, чтобы завершить работу фоновой программы man, нужно выполнить:
kill %1
Затем сразу же запустите команду
jobs
. Вы должны увидеть на экране сообщение типа:
[1] + Terminated man ls
После повторного вызова команды
jobs
программы man больше не будет.
Если вы хотите завершить работу процесса, который запущен не вами, но вы знаете его PID, то нужно выполнить команду:
kill n
Знак процента в этом случае не нужен. Тогда команда
kill
ищет процесс, у которого PID равен указанному числу n
и посылает сигнал для завершения.
3.4.3. Просмотр процессов
С помощью команды
jobs
вы можете увидеть только запущенные вами процессы. Чтобы полюбопытствовать, чем занимаются остальные пользователи в системе, нужно выполнить команду ps
. Если запустить ее без параметров, то результат на экране будет примерно следующий:
PID TTY TIME CMD
1652 tty1 00:00:00 bash
1741 tty1 00:00:00 ps
Перед нами четыре колонки, которые показывают идентификатор процесса, терминал, на котором запущена программа, время работы и выполняемая команда.
Это далеко не полный список. Чтобы увидеть все процессы, следует выполнить команду
ps
с ключом -a
. Но и это еще не весь перечень, потому что отобразятся только программы своего терминала. Если требуется полный список процессов, запущенных со всех терминалов, то нужно добавить ключ -х
. Помимо этого, вы можете пожелать увидеть имя пользователя, под которым работает процесс, для этого добавьте ключ -u
. В итоге, исчерпывающую информацию можно получить, выполнив команду:
ps -axu
Результат работы будет таков:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 1376 452 ? S 14:25 0:05 init
root 2 0.0 0.0 0 0 ? SW 14:25 0:00 [keventd]
root 3 0.0 0.0 0 0 ? SW 14:25 0:00 [kapmd]
root 5 0.0 0.0 0 0 ? SW 14:25 0:00 [kswapd]
root 6 0.0 0.0 0 0 ? SW 14:25 0:00 [bdflush]
root 7 0.0 0.0 0 0 ? SW 14:25 0:00 [kupdated]
root 530 0.0 0.1 1372 436 ? S 14:25 0:00 klogd -x
rpc 550 0.0 0.2 1516 540 ? S 14:25 0:00 portmap
Колонка
STAT
показывает состояние процесса. Здесь можно встретить следующие коды:
□
S
(Sleeping) — спящий, это нормальное состояние для сервисов, которые просыпаются только на редкие запросы клиентов;
□
R
(Runnable) — исполняемый в данный момент;
□
T
(Traced or Stopped) — в состоянии отладки или остановлен;
□
Z
(Zombied) — зависший. Такие можно смело убивать;
□
W
— не имеет резидентных страниц;
□
<
— обладает высоким приоритетом;
□
N
— имеет низкий приоритет.
Это основные состояния, которые вы можете увидеть у процессов в своей системе.
Если в колонке стоит вопросительный знак, то это означает, что процесс запущен еще на этапе загрузки системы и не принадлежит какому-либо терминалу.
Это всего лишь небольшой фрагмент файла. В реально работающей системе процессов очень много, и даже при минимальном количестве запущенных сервисов может не хватить одного экрана для отображения всех. Я люблю сохранять результат работы в текстовый файл, а потом спокойно изучать его в любом редакторе. Для этого я выполняю команду:
ps -axu >> ps.txt
Чтобы увидеть, чем в данный момент занимаются другие пользователи, можно выполнить команду
w
. В результате вы получите на экране приблизительно такую картину:
10:59am up 37 min, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 10:24am 0.00s 0.82s 0.05s w
flenov tty2 - 10:39am 8:13 0.85s 0.03s grotty
Из данного примера понятно, что в системе находятся два пользователя. На первом терминале работает пользователь
root
, а на втором — flenov
. Очень удобно определять по списку, когда пользователь вошел в систему (колонка LOGIN@
) и что делает в данный момент (колонка WHAT
).
Посмотрите на столбцы JCPU и PCPU, по ним можно оценить загрузку системы. Если ваш компьютер начал работать слишком медленно, то можно увидеть, какой процесс отнимает много процессорного времени.
Команда
ps
выводит статическую информацию. Для наблюдения за нагрузкой системы удобнее использовать программу top. Она отображает список процессов, отсортированный по убыванию в зависимости от нагрузки (рис. 3.4). Таким образом, вы можете увидеть, какой сервис или программа отнимает драгоценные ресурсы и не дает нормально работать с компьютером.
Рис. 3.4. Результат работы программы top
Если мой компьютер начинает "тормозить", или работа замедляется через определенные промежутки времени, то я запускаю top в отдельном терминале и по мере необходимости переключаюсь на него, чтобы увидеть нагрузку процессов.
Вверху окна выводится количество пользователей, общая загрузка системы и статистика процессов: общее количество, спящие, выполняемые, зависшие и остановленные.
Помимо этого, можно увидеть краткий отчет по использованию памяти: количество занятой и свободной оперативной памяти и размер раздела подкачки. В моем случае в компьютере установлено 256 Мбайт памяти, и из них свободно только 7 Мбайт, а раздел подкачки пока не используется. Такое малое количество свободной памяти говорит о том, что не помешало бы ее нарастить. Чем меньше компьютер использует swap-файл, тем лучше он работает. Конечно, пока что этот файл практически не используется, но если перейти в графический режим и запустить пару мощных приложений, то и Swap-раздела не хватит.
Интервал:
Закладка: