Руководство по администрированию Linux для начинающих

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

Некоторые базовые настройки

Установка имени хоста. Откройте терминал и введите следующую команду для изменения имени хоста:

sudo hostnamectl set-hostname your_hostname

Замените «your_hostname» на имя хоста, которое вы хотите установить.

Примечание: команда hostname изменяет имя хоста только на текущую сессию. Для постоянного изменения используется hostnamectl

Настройка часового пояса. Перейдите в /usr/share/zoneinfo/your_zone, затем создайте символическую ссылку на файл зоны в /etc/localtime, чтобы установить часовой пояс.

sudo ln -sf Kolkata /etc/localtime

Файловая система и управление ею

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

Ниже приведен список некоторых команд для управления файлами в Linux:

КомандаДля чего используется
cdИзменение текущего каталога.
lsВывод списка директорий и файлов в каталоге.
viВстроенный консольный редактор, часто используется для редактирования конфигурационных файлов.
touchСоздание новых файлов. Также обновляет временные метки существующих файлов, если файл уже существует.
nanoРедактор с подсказками по управлению в нижней части окна. Более удобен для новичков.
cpКопирование файлов и директорий.
mvПеремещения файлов и директорий.
rmУдаление файлов и директорий.
fdiskРабота с таблицами разделов диска (создание, удаление, изменение разделов).
mountМонтирование файловой системы.

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

Сетевые команды

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

КомандаДля чего используется
routeПросмотр и изменение таблиц маршрутизации IP.
pingОтправка пакетов на сервер и получение их обратно в случае хорошего сетевого соединения.
tracerouteОтслеживание пути, пройденного трафиком.
nslookupЗапросы к системе доменных имен (DNS) для получения отображения доменных имен или IP-адресов, а также других DNS-записей.
ifconfigПросмотр и изменение конфигурации сетевых интерфейсов системы.
tracepathОтслеживание пути до конечной точки с обнаружением MTU на этом пути.
sshСетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений.
curlПередача данных на сервер или с сервера с использованием любого из поддерживаемых протоколов.
scpБезопасное копирование файлов (и директорий с флагом -r) между локальной и удалённой системой по SSH.
wКраткое описание каждого пользователя, вошедшего в систему.
netcatВыполнение различных операций с TCP, UDP или UNIX-доменными сокетами в Linux.
nmapИсследование сети и аудит безопасности.
ipНазначение адреса сетевому интерфейсу и/или настройки параметров сетевого интерфейса в операционных системах Linux.

Управление пользователями и группами в Linux

Системный администратор отвечает за управление пользователями системы. У каждого пользователя в Linux есть уникальный UID для его идентификации. Вся информация о пользователях хранится в файле /etc/passwd, а все хешированные пароли — в файле /etc/shadow. В Linux есть три типа пользователей:

  • Root User (Administrator) — администратор, суперпользователь с полным контролем над системой, идентифицируется UID 0.
  • Обычные пользователи — неадминистративные пользователи, созданные для выполнения повседневных операций, которым присвоены уникальные UID.
  • Системные пользователи — пользователи, созданные системой для работы таких служб, как базы данных и веб-серверы (например, www-data, mysql).

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

КомандаДля чего используется
adduserСоздание нового пользователя в Linux.
useraddНизкоуровневая команда для создания пользователей.
passwdУстановка или изменение пароля пользователя.
deluserУдаление пользователя из системы.
userdelДругая команда для удаления пользователя, но по умолчанию не удаляет домашний каталог.
usermodИзменение свойств учётной записи пользователя, таких как имя пользователя, домашний каталог или группы.
idОтображение информации об идентификаторе пользователя (UID) и группы (GID).
whoamiПоказывает текущего вошедшего пользователя.
whoПоказывает всех пользователей, которые в данный момент вошли в систему.
wОтображение информации о вошедших пользователях и их активности.
lastОтображение истории входов пользователей.
groupsОтображение групп, в которые входит пользователь.
groupaddСоздание новой группы пользователей.
groupdelУдаление группы.
usermod -aGДобавление пользователя в группу.
chageУстановка или проверка сроков действия пароля для пользователя.
getent passwdСписок всех пользователей в системе.
awk -F: 'print $1' /etc/passwdПокажет список имён всех пользователей.
sudo visudoРедактирование привилегий sudo для пользователей.
who | wc -lПодсчёт количества пользователей, которые в данный момент находятся в системе.

Диагностика системы / Мониторинг производительности

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

КомандаДля чего используется
topОтображение запущенных процессов.
vmstatПолучение информации о процессах, памяти, обмене, блокировке ввода-вывода, диске и планировании CPU.
lsofПроверка списка открытых файлов.
htopУтилита для мониторинга процессов и ресурсов системы в режиме реального времени.
iostatМониторинг загрузки устройств ввода-вывода.
nmonОтображение информации о производительности CPU, памяти, сети, дисков, файловой системы, NFS, топовых процессов, ресурсов и микро-раздела питания.

Чтение и анализ логов

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

КомандаДля чего используется
dmesgВывод сообщений из буфера ядра.
tailВывод последних строк из указанного в аргументах файла или файлов.
journalctlЧтение и управление логами systemd.

Бонус: Подробнее об управлении файлами в Linux

В Linux большинство операций выполняется с файлами. Для работы с этими файлами Linux использует каталоги, также известные как папки, которые поддерживаются в структуре, напоминающей дерево. Хотя эти каталоги тоже являются видом файлов. В Linux существует 3 типа файлов:

Обычные файлы. Наиболее распространённый тип файлов в Linux: это текстовые файлы, изображения, бинарные файлы и т. д. Такие файлы можно создавать с помощью команды touch. Обычный файл может содержать текст в формате ASCII или человекочитаемый текст, исполняемые бинарники программ, данные программ и многое другое.

Каталоги. В Windows эти каталоги называют папками. Это файлы, которые содержат список имён файлов и сопутствующую информацию. Корневой каталог (/) является базой системы, /home/ — это стандартное расположение домашних каталогов пользователей, /bin — для основных бинарных файлов пользователей, /boot — для статичных загрузочных файлов и т.д. Создавать новые каталоги можно с помощью команды mkdir.

Специальные файлы. Они представляют собой реальные физические устройства, например принтеры, которые используются для операций ввода/вывода. Устройства или специальные файлы используются для ввода/вывода (I/O) на системах UNIX и Linux. Вы можете увидеть их в файловой системе, как обычные каталоги или файлы.

В системах Unix существует два типа специальных файлов для каждого устройства: символьные и блочные. 

1. Список файлов

Для вывода списка файлов и каталогов используется команда ls:

$ ls
ls-command-1

Команда выведет все файлы и каталоги в текущем каталоге, в выводе разные типы файлов будут выделены цветом (в зависимости от конфигурации терминала).

$ ls -l
ls-command-2

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

2. Создание файлов

Новый файл создается при помощи команды touch. Она создаст и откроет новый пустой файл, если файл с указанным именем ещё не существует. Если файл уже существует, команда не изменит его.

$ touch filename
touch-command

3. Отображение содержимого файла

Для отображения содержимого файла используется команда cat. Эта команда отобразит содержимое файла с именем filename. Если вывод слишком большой, можно использовать команды more или less, чтобы отобразить вывод на экране терминала, иначе всё содержимое файла будет показано сразу.

$ cat filename
cat-command

4. Копирование файла

Команда cp используется для создания копии файла. Она создаст новый файл в указанной папке назначения с тем же именем и содержимым, что и исходный файл filename.

$ cp source/filename destination/
copying-a-file-in-linux

5. Перемещение файла

Команда mv используется для перемещения файла из исходной папки в папку назначения. Файл filename будет удалён из исходной папки, а в папке назначения будет создан файл с тем же именем и содержимым.

$ mv source/filename destination/
moving-a-file-in-linux

6. Переименование файла

Команда mv filename new_filename — переименовывает файл, не затрагивая его содержимое.

renaming-a-file-in-linux

7. Удаление файла

Для удаления файла используется команда rm. Она удалит файл filename из каталога.

$ rm filename
deleting-a-file-in-linux

В заключение, администрирование Linux требует знания базовых команд и принципов работы с системой, включая управление пользователями, файловыми системами и сетью. Освоив эти основы, системный администратор может эффективно поддерживать и настраивать систему, обеспечивать её стабильную работу и безопасность. Применение указанных команд и инструментов позволит оптимизировать процессы, своевременно обнаруживать и устранять проблемы, а также поддерживать высокую производительность системы.