Linux для чайника – Telegram
Linux для чайника
20K subscribers
88 photos
4 files
79 links
Linux
- Разбор утилит / инструментов
- Новости / факты
- Опросы для проверки знаний, навыков
и многое другое.

Только по вопросам сотрудничества: @altmainf

Регистрация в перечне РКН https://clck.ru/3EpL9L
Download Telegram
Docker в Linux

Docker — это платформа, которая позволяет разрабатывать, развертывать и запускать приложения в контейнерах.

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

Установка:
sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker


После установки Docker вы можете использовать инструмент командной строки docker:
docker pull: загружает образ Docker из репозитория.
docker run: создает и запускает контейнер из образа.
docker ps: список запущенных контейнеров.
docker images: список доступных изображений.
docker exec: выполняет команды в работающем контейнере.
docker build: создает новый образ Docker из файла Dockerfile.
Демон rsyslogd в системах Linux

rsyslogd — это демон, управляющий сообщениями журнала для диагностики информации и мониторинга системы.

rsyslogd действует как центральный узел для ведения журналов и получения сообщений от приложений, служб и компонентов системы. (Сообщения содержат информацию о событиях, ошибках и предупреждениях)

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

Демон поддерживает несколько форматов журналов, от традиционного системного журнала до современного JSON. Файл конфигурации позволяет точно настраивать поведение, регулируя уровни и места назначения.
Скрипт, выполняющий резервное копирование каталогов и файлов

Замените /path/to/source_directory1 фактическим путем к каталогам и файлам, резервную копию которых вы хотите создать. Аналогичным образом замените /path/to/backup_directory на путь к каталогу, в котором вы хотите хранить файлы резервных копий.

Сохраните скрипт в файл, например, backup_noscript.sh, и сделайте его исполняемым с помощью следующей команды:
chmod +x backup_noscript.sh

Затем запустите скрипт:
./backup_noscript.sh
Демон cupsd в системах Linux

cupsd, часть CUPS (Common Unix Printing System) — демон, управляющим службами печати. Он управляет принтерами, заданиями на печать и предоставляет унифицированный интерфейс для задач печати.

cupsd позволяет системам Linux выступать в качестве серверов печати. Он управляет очередями печати, планированием и связью с принтерами, обеспечивая бесперебойную работу пользователей и приложений.

cupsd предлагает веб-интерфейс администрирования. Он упрощает настройку, настройку и мониторинг состояния принтера.

Благодаря поддержке различных моделей принтеров и сетевых протоколов cupsd обеспечивает совместимость в различных средах. Он предлагает драйверы и фильтры для преобразования данных печати в форматы, понятные принтерам.
Скрипт для работы с лог файлами

Сценарий ротирует лог файлы в зависимости от максимального размера файла или заданного количества сохраняемых лог файлов.

Вы можете сохранить его в файле (например, log_rotation.sh), сделать его исполняемым с помощью chmod +x log_rotation.sh, а затем запустить вручную или запланировать запуск с помощью cron через определенные промежутки времени.
Удалить все пустые папки

С помощью команды find можно удалить все пустые папки в директории. Для этого воспользуйтесь следующей командой:
find /путь/к/папке -type d -empty -delete

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

Для этого можно воспользоваться командой awk:
awk ‘/Pattern/ {print; getline; print}' file.txt

/Pattern/ : часть команды awk, где указывается, что команде нужно искать именно слово «Pattern».
Когда шаблон найден, выполняется команда в фигурных скобках {}.
print печатает текущую строку (соответствующую шаблону).
getline читает следующую строку.
Другой print печатает следующую строку после шаблона.
Сортировки строк в текстовых файлов

Для сортировки информации в файлах используется команда sort. Она принимает входные данные, сортирует их построчно и выводит результат в терминал.

По дефолту sort сортирует в алфавитном порядке (учитывая регистр):
sort file.txt

Сортировка в обратном порядке:
sort -r file.txt

Сортировка чисел
sort -n numbers.txt

Сохранить результат сортировки в файл:
sort input.txt -o output.txt
Перевод или удаление текстовых данных на уровне символов

Команда tr используется для простых задач манипулирования текстом: изменение символов, удаление символов или сжатие повторяющихся символов.

Примеры:
Изменение нижнего регистра на верхний регистр:
echo "hello world" | tr 'a-z' 'A-Z'

Удаление определенных символов (некоторых гласных):
echo "Hello, how are you?" | tr -d 'aeiou'

Преобразование символов («а» в 1, «b» в 2, «c» в 3):
echo "abcdef" | tr 'abc' '123'

Удаление повторяющихся символов:
echo "aaabbbccc" | tr -s 'a'
Удаление нечитаемыx символов в файле

Для удаления символов, которые не может прочитать компьютер, можно воспользоваться командой:
tr -cd '[:print:]' < input.txt > output.txt

Результат будет записан в файл output.txt
Удаление определенного набора символов из файла

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

Например:
Удалить все нечисловые символы из файла:
tr -cd '0-9' < input.txt > output.txt

Удалить все символы кроме буквенных:
tr -cd 'A-z' < input.txt > output.txt
Вывод строк определенного диапазона

Если вам нужно вывести из файла сроки, начиная с i-ой и до j-ой строчки, то можно воспользоваться командой sed:
sed -n ‘i,jp' file.txt

Например, вывести строки с 10-ой по 20-ую:
sed -n '10,20p' file.txt
Калькулятор командной строки

Команда bc в Linux означает «базовый калькулятор». Выполняет арифметические вычисления, как базовые, так и более сложные, используя различные числовые системы счисления

Арифметика с плавающей точкой:
echo "scale=2; 5.5 * 2.3" | bc

Шестнадцатеричные вычисления:
echo "ibase=16; A + 1" | bc

Двоичные вычисления:
echo "ibase=2; obase=10; 1010 + 110" | bc
Извлечение диапазона символов из каждой строки

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

Например, извлечь символы с 5-й по 10-ю позицию каждой строки, можно с помощью:
cut -c5-10 file.txt
Действия, которые могут привести к проблемам при неправильном использовании root user

Пользователь root имеет определенные привилегии и контроль, которых нет у обычных пользователей. Однако с большой властью приходит и большая ответственность. Вот из-за чего могут произойти проблемы:

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

Внесение непроверенных изменений в системные файлы, конфиги или установки ПО: это может привести к нестабильности системы, сбоям или сбоям в работе.

Изменение или удаление системных файлов или пользовательских данных без надлежащего резервного копирования: это может привести к безвозвратной потере данных.

Неправильные конфигурации брандмауэра или настройки сети: они могут подвергнуть систему угрозам безопасности или несанкционированному доступу.
Зависимость от root

Зависимость от пользователя root — это выполнения повседневных задач под root. Хотя он имеет много преимуществ, это может привести к различным проблемам. Вот некоторые проблемы, которые могут возникнуть из-за частого использования root:

⁃ Риски безопасности. Когда пользователи часто входят в систему как root, существует более высокий риск нарушений безопасности.
⁃ Ограниченное развитие навыков пользователей. Если пользователи полагаются исключительно на привилегии root, они могут не развить надлежащие навыки и знания Linux, необходимые для безопасного администрирования системы.
⁃ Случайные изменения системы. Частое использование привилегий root увеличивает вероятность непреднамеренных изменений системы, таких как изменение критических файлов или неправильная настройка важных параметров.
⁃ Отсутствие подотчетности: когда несколько пользователей используют корневую учетную запись или имеют доступ к ее учетным данным, становится сложно отследить, какой пользователь выполнил определенные действия. Отсутствие подотчетности усложняет устранение неполадок и аудит.
Рекомендации, чтобы сохранить целостность и избежать повреждения системы

Иногда по невнимательности или частом использовании root user у нас могут возникнуть проблемы, чтобы их избежать, можно воспользоваться следующими рекомендациями:

⁃ Используйте обычных пользователей, а root только при необходимости для задач системного администрирования. Выполняйте повседневные задачи, используя обычные учетные записи пользователей с ограниченными привилегиями.
⁃ Используйте sudo для выполнения определенных команд с повышенными привилегиями. Это обеспечивает лучший контроль над тем, какие команды выполняются с правами root.
⁃ Регулярное резервное копирование важных данных и конфигураций системы для предотвращения потери данных в случае аварий.
⁃ Регулярно проверяйте и отслеживайте системные журналы, события безопасности и действия пользователей для обнаружения любых необычных или несанкционированных действий.
Привилегированные порты

Привилегированные порты — сетевые порты, номера которых находятся в диапазоне от 0 до 1023. Они так называются, поскольку только процессы, выполняемые с правами root user могут быть привязаны к ним. Обычным пользователям запрещено привязываться к таким портам.

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

Если вы хотите проверить, открыт или закрыт удаленный порт, вы можете использовать команду nmap:
nmap -p <port_number> <host_or_ip>
Ключевые моменты о привилегированных портах

1. Диапазон привилегированных портов — от 0 до 1023. Эти номера хорошо известны и стандартизированы.

2. Концепция привилегированных портов восходит к зарождению Unix, когда определенные порты были зарезервированы для таких известных сервисов, как HTTP (порт 80), FTP (порт 21), Telnet (порт 23) и т. д.

3. Привилегированные порты доступны только корневым процессам, чтобы предотвратить получение непривилегированными пользователями или вредоносным программным обеспечением контроля над критически важными сетевыми службами.

4. Вместо запуска целых служб от имени пользователя root современные методы системного администрирования рекомендуют использовать такие инструменты, как sudo. Кроме того, многие сетевые демоны внедрили методы «разделения привилегий», чтобы минимизировать риск уязвимостей.

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

6. Попытка привязать процесс без полномочий root к привилегированному порту приведет к ошибке «Отказано в доступе», что защищает безопасность системы.
Поиск файлов по владельцу

Команда find в сочетании с флагом -user помогает искать файлы по имени владельца

Найти файлы, принадлежащие пользователю Josh:
find /path/to/search -type f -user Josh

Найти файлы, принадлежащие текущему вошедшему пользователю:
find /path/to/search -type f -user $USER

Найти файлы, принадлежащие группе developers:
find /path/to/search -type f -group developers

Найти файлы, принадлежащие пользователю с UID 1001:
find /path/to/search -type f -uid 1001
Исключение папки из поиска с помощью команды find

Один из подходов к исключению папки из поиска предполагает использование комбинации флагов -path, -prune и логического ИЛИ:

find . -path «./path/to/folder/*» -prune -o -name SEARCH_NAME

Важно, что путь должен оканчиваться на *, затем идёт -prune и только потом -o.