Администрирование пользователей в Linux. Администрирование Linux

Сильно бы не разделяла администратора Linux и администратора. Сети обычно смешанные (особенно в России любят Windows за его «бесплатность»:-)).

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

Факультативно нужно знать:

    Основы локальных вычислительных сетей.

    Виды сетей по размеру и предназначению. Топологии: классификация, применение, распространение. Стандартизация локальных сетей.

    Техническое оснащение локальной сети.

    Сетевые адаптеры: проводные и беспроводные. Повторители, концентраторы, коммутаторы, маршрутизаторы. IP-камеры, IP-телефоны, IP-принтеры, точки доступа. Шлюзы, мосты, файерволы, NAS и RAID массивы.

    Линии связи.

    Экранированная и неэкранированная витая пара. Волоконно-оптическая линия связи. Радиочастотные устройства. Практическая работа: монтаж линии связи.

    Логическая структура сети.

    Протоколы логического взаимодействия в локальной сети. Протокол TCP/IP v4 и v6. Классовая и бесклассовая адресация, маска подсети.

    Построение одноранговой сети.

    Основные методы построения сети. От рабочих групп к домашним группам. Управление списком пользователей. Разделение ресурсов в одноранговой сети.

    Дисковая подсистема и подсистема печати.

    Работа с жесткими дисками. Работа с принтерами. Разграничение доступа к ресурсам сети.

    Построение беспроводной сети.

    Основные методы построения беспроводных сетей. Формирование беспроводной точки доступа. Протоколы безопасности при формировании беспроводной сети.

    Общие сведения о DNS. Формирование доменной зоны, подключение. Мониторинг DNS-сервера. Практическая работа: Настройка DNS-сервера.

    Общие сведения о DHCP. Установка и настройка DHCP сервера. Управление областями DHCP, пулом, арендой и резервированием.

По Linux для начинающих администраторов дают следующую программу:

  1. Введение.

    1. Краткая история UNIX и Linux. Проект GNU.
    2. Общие сведения об архитектуре системы Linux.
    3. Основные понятия - операционная система, shell, консоль, терминал.
    4. Обзор существующих дистрибутивов Linux.
  2. Установка и начало работы.

    1. Что нужно знать до установки.
    2. Установка Debian GNU/Linux.
    3. Начало работы в Linux.
    4. Локальный вход в систему. Виртуальные терминалы.
  3. Основы управления в Linux.

    1. Интерфейс командной строки.
    2. Основы Bourne Shell (sh ).
    3. Bash: интерактивный shell.
    4. Что такое сценарии shell.
    5. Управление процессами и задачами.
  4. Начало работы.

    1. Как получить справку - man и info .
    2. Файлы и каталоги.
    3. Поиск файлов.
    4. Обработка текста. Текстовый редактор vi .
    5. Управление файлами через Midnight Commander.
  5. Установка и удаление программ.

    1. Утилиты make , diff , patch .
    2. Установка программ из исходных кодов.
    3. Система управления пакетами RPM и расширение возможностей при помощи YUM.
    4. Система управления пакетами APT.
  6. Работа с дисками и файловыми системами.

    1. Дисковые накопители в Linux.
    2. Создание дисковых разделов: fdisk , cfdisk .
    3. Файловые системы в файле: loop device.
    4. Виртуальная память (swap).
    5. Файловые системы Linux: Ext2, Ext3, Ext4, ReiserFS, XFS.
    6. Поддержка «неродных» файловых систем NTFS, FAT.
    7. Виртуальные файловые системы.
  7. Администрирование учетных записей пользователей и групп. Авторизация в Linux.

    1. Права доступа.
    2. Авторизация пользователей.
    3. Администрирование пользователей.
    4. Управление паролями: passwd .
  8. Журналирование и ядро Linux.

    1. Журналы, их расположение, регистрация системных сообщений и событий.
    2. Взаимодействие с работающим ядром - настройка ядра.
    3. Доступ к аппаратуре.
    4. Загрузчики систем LILO, GRUB.
    5. Управление модулями ядра: modprobe , rmmod , lsmod и modinfo .
  9. Резервное копирование и восстановление.

    1. Общие вопросы. Терминология.
    2. Стратегии резервного копирования.
    3. Архиватор tar .
    4. Прямой доступ к устройствам - dd .
    5. Упаковщики gzip , bzip2 .
  10. Процесс загрузки Linux и графическая система X Window System.

    1. Последовательность загрузки. Программа init и ее функции.
    2. Сценарий rc и система инициализации SystemV.
    3. Понятие службы. Управление службами.
    4. Архитектура графического интерфейса.
    5. Настройка X.org.
    6. Запуск X.
    7. Доступ к удаленным X серверам.
  11. Основы построения сетей.

    1. Оборудование и топология сетей.
    2. Иерархия сетевых протоколов. Эталонная модель ISO/OSI.
    3. Семейство протоколов TCP/IP.11.4 Основы IP-адресации, маршрутизация, классы и маски подсетей.
  12. Сетевые средства Linux.

    1. Настройка сетевых интерфейсов.
    2. Настройка статической маршрутизации
    3. Средства диагностики: ping , traceroute , netstat , tcpdump , lsof .
    4. Удаленный доступ - secure shell (OpenSSH).
    5. Синхронизация файлов с использованием утилиты RSync.

Да и вообще, возьмите программу образовательного курса и почитайте по этим темам в интернете. Также можете посмотреть пару вебинаров.

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

Суперпользователь
В Linux Суперпользователь (Super User) называется root. Пользователь root может контролировать каждый процесс, имеет доступ к каждому файлу и может выполнить любую функцию в системе. Ничего не может быть спрятано от root"а. Говоря административным языком, root -- это высшее существо. Поэтому очень важно, чтобы учетная запись root была защищена секретным паролем. Не стоит использовать root"а для выполнения обычных задач.

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


Создание новых пользователей

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

useradd -c "normal user" -d /home/userid -g users\
-G webadm,helpdesk -s\ /bin/bash userid

Эта команда создает нового пользователя по имени "userid" (последний параметр в команде). Дается комментарий, который говорит, что "userid" -- "normal user" (обычный пользователь). Для него будет создан домашний каталог "/home/userid". Его основной группой будет users, но он также будет входить в группы "webadm" и "helpdesk". В качестве обычного консольного окружения новый пользователь из примера будет использовать оболочку "/bin/bash".

Webmin позволяет создать нового пользователя легко и наглядно. Войдите в Webmin своим любимым браузером и зайдите в раздел System . Выберите инструмент "Users and Groups" , а затем щелкните на Create a new user.

Впишите подробности про пользователя и нажмите Create. Будет создан пользователь.

Изменение паролей

Из консоли пользовательский пароль меняется командой passwd:

Изменить пароль другого пользователя таким способом может только root. После ввода команды вам будет предложено ввести и подтвердить устанавливаемый пароль. Если они совпадут, то данные пользователя будут обновлены, а пароль изменен. Пользователь также может изменить свой собственный пароль, написав в командной строке консоли passwd; в этом случае прежде чем вводить новый пароль, необходимо будет ввести старый.

Большинство дистрибутивов Linux устанавливаются с модулем password cracker, который вызывается для изменений пароля. Этот модуль проверяет, насколько пароль хорош. Если не очень, то появляется предупреждение, что у пользователя плохой пароль. В зависимости от конфигурации, у него могут потребовать придумать безопасный пароль, а только потом принять его. Root"а же могут просто известить, когда пароль уже установлен.

В Webmin"е пароль меняется с помощью модуля "Change Passwords" из раздела System . Выберите пользователя из списка и введите новый пароль в пустые поля формы.

Удаление пользователей

Из консоли пользователи удаляются командой userdel.

userdel -r userid

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

Как организованы пользователи

Конфигурация Linux имеет в своей основе текст. Поэтому все пользователи в Linux расположены в файле под названием /etc/passwd. Командой more вы можете постранично просмотреть этот файл:

more /etc/passwd

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

userid:x:75000:75000::/home/userid:/bin/bash

В первой колонке находится имя пользователя. Во второй -- его пароль. В третьей -- пользовательский числовой id. В четвертой -- id основной группы пользователя. В пятой -- полное имя пользователя. В шестой -- расположение пользовательского каталога. Обычно этот каталог живет в /home и называется по имени пользователя. Седьмая колонка содержит shell по умолчанию.

Структура файла паролей

Заметьте, что в приведенном выше примере, в колонке с паролем стоит "x". Это вовсе не означает, что у пользователя такой пароль. Одно время пароли хранились внутри файла в виде обычного текста. Такая конфигурация возможна и сейчас, но встречается редко из-за последствий. Решено было создать нечто под названием теневой пароль. На месте пароля в файле /etc/passwd записывается "х", а закодированная версия пароля идет в файл /etc/shadow. Такая технология улучшает безопасность посредством разделения информации о пользователе и пароля. Алгоритм кодирования паролей MD5 еще улучшил безопасность, позволяя только надежные пароли. Ниже приведен пример записи теневого пароля:

userid:$1$z2NXZR19$PZpyL84DmPKBXMeURaXXM.:12138:0:186:7:::
Вся функция теневого пароля остается за кадром, а вам редко потребуется делать что-нибудь большее, чем включать ее.

Группы

Группы в Linux почти то же самое, что и в Windows. Вы создаете группу и добавляете в ее список участников. Ресурсы могут иметь права, приписанные группе. Члены группы имеют доступ к ресурсу, ассоциированному с этой группой.

Создание группы выполняется просто, консольной командой groupadd:

groupadd mygroup

Эта команда создаст группу без участников с названием "mygroup". Группы живут в файле с названием /etc/group. Каждой группе отводится отдельная строка, как написанная ниже:

Первая колонка показывает имя группы. Вторая -- пароль. Опять-таки "x" означает, что настоящий пароль хранится в теневом файле /etc/gshadow. Третья колонка будет содержать разделенные запятыми идентификаторы участников группы.

Чтобы добавить члена группы, используйте команду gpasswd с ключом -a и id пользователя, которого вы хотите добавить:

gpasswd -a userid mygroup

Удалить пользователей из группы можно той же командой, но с ключом -d вместо -a:

gpasswd -d userid mygroup

Вносить изменения в группы можно также прямым редактированием файла /etc/group.Группы могут быть созданы, отредактированы и уничтожены в программе Webmin тем же самым инструментом, который использовался выше для работы с пользователями.

Пользовательские и групповые приложения

Как же пользователи и группы соотносятся с файлами? Если посмотреть на расширенный вывод списка файлов в каталоге, можно увидеть что-то вроде следующего.

Не обращая пока что внимания на остальные колонки, посмотрите на третью, четвертую и последнюю. В третьей колонке находится имя владельца файла, userid. Четвертая колонка содержит группу, ассоциированную с файлом, mygroup. Последняя колонка -- это имя файла. Каждый файл имеет только одного владельца и одну группу. Можно дать права Other (Остальным), пользователям, которые не попадают ни в какую категорию. Считайте Other эквивалентом группы Everyone в Windows.

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

Более полную информацию о связи пользователей и групп можно найти в разделе Ресурсы в конце этой статьи. За подробностями о том, как менять полномочия доступа к файлу, обращайтесь к man chmod.

Заключение

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

Информация о пользователе и группе хранится в файлах /etc/passwd и /etc/group, соответственно. Ваша система возможно также содержит файлы /etc/shadow и /etc/gshadow, в которых находятся зашифрованные пароли для большей безопасности. Можно работать с пользователями и группами, непосредственно редактируя файлы, однако делать это надо с большой осторожностью.

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

Оставьте свой комментарий!

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

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

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

  • Удаленный доступ;
  • Диагностика сети;
  • Мониторинг ресурсов системы;
  • Проверка работоспособности сервисов;
  • Просмотр логов;
  • Установка программного обеспечения.

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

Удаленный доступ к серверу Linux

Чаще всего веб-мастера и администраторы используют для удаленного доступа и загрузки файлов на сервер протокол SSH и FTP. По SSH вы не только передавать файлы, но и выполнять на сервере различные команды Linux. Протокол FTP позволяет лишь загружать файлы на сервер, перемещать и переименовывать их. Если кратко, то, например, чтобы перенести файлы сайта с одного сервера на другой, сначала мы создаем архив с помощью tar:

tar cvzf backup.tar.gz /папка/с/файлами

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

scp backup.tar.gz user@ip_сервера:/var/www/public_html/

ssh user@ip_сервера
$ cd /var/www/public_html/
$ tar xvzf backup.tar.gz

После этого останется сменить владельца для распакованных данных на имя пользователя веб-сервера:

chown -R www-data /var/ww/public_html/project/

Большинство действий по администрированию сервера вам придется выполнять так что лучше понять .

Диагностика сети Linux

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

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

Убедитесь, что правильно задан шлюз доступа к сети:

Обычно, это может подсказать вам, что конфигурация сети выполнена неверно, например, компьютер не получает нужные данные по протоколу DHCP или заданы неправильные статические настройки. Также проблема может быть в DNS. Возможно, сеть есть, но сервер не может получить ip адрес на основе доменного имени, для проверки вы можете выполнить ping какого-либо внешнего ip:

Если же сеть не работает, и она настроена правильно, то можно еще попытаться узнать на каком узле обрывается соединение. Для этого используется :

traceroute 8.8.8.8

Все эти данные помогут понять в чем была ошибка и как ее решить.

Мониторинг ресурсов системы

Часто может случится, что сервер начинает работать очень медленно, веб-службы начинают очень долго отвечать на запросы и даже соединение по SSH работает медленно. Скорее всего, причиной этому может стать перегрузка ресурсов процессора или памяти. Если вся память будет занята, система будет сбрасывать данные на диск, в раздел подкачки, что тоже сильно замедляет работу сервера. Чтобы посмотреть сколько памяти осталось доступно используйте команду free:

Естественно, что если свободно только 40-50 Мб, то этого системе очень мало и все будет работать очень медленно. Следующим шагом будет выяснить какой процесс потребляет больше всего памяти, для этого можно использовать команду htop:


В утилите вы можете сортировать процессы по загрузке процессора, колонка %CPU% или по потреблению памяти %MEM%. Так вы можете очень просто понять в чем проблема и кто перегружает систему. Например, веб-сервер Apache потребляет слишком много памяти, поэтому, возможно, будет эффективнее использовать Nginx.

Также в некоторых случаях нас может интересовать и какие именно процессы перегружают жесткий диск. Для этого применяется утилита iotop. Просто выполните утилиту без параметров:

Проверка работоспособности сервисов

В системное администрирование linux также входит управление сервисами. Сейчас в большинстве дистрибутивов, в качестве системы инициализации используется systemd. Соответственно, выполняется с помощью нее. Чтобы посмотреть запущена ли служба, например, веб-сервер nginx, выполните:

sudo systemctl status httpd

В многочисленном выводе утилиты вы должны увидеть сообщение Active (running), это означает, что все хорошо и служба работает так как нужно. Возможно, также вам придется перезапустить службу:

sudo systemctl restart httpd

Или запустить ее, если она не была запущена до этого:

sudo systemctl start httpd

Если служба не запустилась, то вы можете посмотреть информацию об этом с помощью команды status или же выполнить:

Просмотр логов

Если какой-либо сервис или системный компонент не работает, то первое что нужно сделать - это смотреть логи. Если не помогает - включить режим отладки и смотреть логи. В 90% вы найдете ответ почему ничего не работает в логах программы. Логи всех служб и системные логи находятся в папке /var/log/. Некоторые службы создают отдельные папки для своих файлов, например, /var/log/nginx или /var/log/apache.

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

tail -f /путь/к/лог/файлу

С помощью этой команды вы можете в реальном времени просматривать изменения в конце лог файла. Если опцию -f не указывать, то команда tail покажет десять последних строк из лога:

tail /путь/к/лог/файлу

Также для вы можете использовать любой текстовый редактор или утилиту cat.

Установка программного обеспечения

Установка программного обеспечения, одна из распространенных задач администрирования. В Linux большинство программ можно установить из официальных или сторонних репозиториев. Некоторые программы нужно . Для установки софта из репозиториев используется пакетный менеджер. Существуют два основных пакетных менеджера, которые применяются на серверах, это yum, который используется в CentOS и apt, который применяется в Ubuntu. Работают пакетные менеджеры похожим образом и все их мы рассматривали в отдельных статьях, смотрите и Например, чтобы установить пакет в Ubuntu используйте такую команду:

sudo apt install имя_пакета

А в CentOS/RedHat:

sudo yum install имя_пакета

Для удаления программы используется команда remove вместо install. Но что еще более важно для серверов обновление программ. Никогда не отключайте автоматическое обновление, и старайтесь следить, чтобы система была в самом актуальном состоянии. Нужно обновлять все программные продукты, поскольку в них постоянно обнаруживаются новые уязвимости и следует получить вовремя исправления для них.

Выводы

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

Артем
Моралес

Артём
П.

Максим
Дацкевич

Дмитрий
Бун


Владимир
Елисеев
(Кисловодск)

Опыт:







Михаил
Дрогомерецкий

Это был мой первый удаленный курс по системному администрированию. Ожидания оправдались более чем полностью! Огромное спасибо преподавателям и сокурсникам!
По существу.
ЧТо понравилось:
1. Время проведения лекций. Я легко успевал после работы домой к началу.
2. Возможность пересматривать лекции после в любое время.
3. Домашние задания! Они заставляли меня, помимо дополнительного просмотра лекций, читать документацию. Я действительно полюбил читать документацию! Это не шутка. Ранее я терпеть не мог этого делать и искал какие-то быстромануалы в гугле. Теперь перед настройкой какого-либо софта, обязательно читаю доки и получаю удовольствие. Заметил насколько открываются глаза после прочтения. Помимо материала, необходимого для исполнения ДЗ, приходилось сталкиваться с сопутствующими темами, что естественно расширило мои знания. Вообще домашние задания - дали мне 80% всего, что я узнал и чему научился на курсе.
4. Отзывчивость преподавательского состава и сокурсников.Без нравоучений, все по делу.

Что не понравилось:

Василий
Струков





Скучно точно не будет!







Владимир
Ревякин

Курс очень нужный и важный особенно для новичков, вы узнаете тонну нужной и важной информации информации, которую самостоятельно не узнаете, подробные лекции и возникающие вопросы, по теме, сразу растолковываются, а домашки новые знания закрепляют, я уже на втором месяце нашел работу. Алексей Цыкунов и Александр Румянцев очень рекомендую!!!

Александр
Самусев

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

Я имею совсем немного опыта с Linux - работа в течение полугода junior linux administrator в одной аутсорсиноговой компании. И мне очень не хватало глубин, то есть делаешь что-то каждый день, выставляешь какие-то параметры, а почему оно так - не совсем понятно.

Курс Администратор Linux расставляет вcе по полочкам. Он придает уверенности в своих силах. На курсе разбираются теоритические и практические вопросы, которые задают на собеседованиях и, которые потом встречаются на практике. Стоит сказать, что я поменял работу, еще на середине курса.

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

В курсе все домашние стенды разорачиваются в Vagrant, так что с этим инструментом за время курса становишься на ты. Кроме того, домашки желательно выкладывать на github в виде кода - Vagrantfile + скрипты и другие файлы проектов. Это позволяет набить руку при работе c git, если раньше такой практики не было. Также, в курсе разбирается такой инструмент администратора как Ansible и, после его изучения в курсе, домашние стенды разворачиваются с помощью Vagrant, настраиваются с помощью Ansible.

Таким образом, я считаю, что, если вы видите свое профессиональное будущее в работе Linux инженера, то этот курс просто must have! Затем стоит обязательно пойти на курс "DevOps практики и инструменты". Эти два курса - основа вашей высокой стоимости на рынке как специалиста.

Артем
Моралес

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

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

Второе - преподаватели. Без сомнений, профессионалы своего дела. Материал преподается уверенно, плюс, как написал выше, охотно делятся своим опытом.

Третье - домашки. Ждешь, что тебе все разжуют? Тебе не сюда. Все как в реальной жизни: тебе ставится задача, дается дополнительный материал, которые поможет в выполнении и ты обязан разбираться. Что-то не получается всегда можно спросить, но инструкции делай это получишь то нет. И это огромный плюс!

Итого. Курс оставил приятные впечатления. Я все еще джуниор, но в душе ощущаю себя мидлом:)

Артём
П.

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

Спектр рассматриваемых вопросов достаточно широк: от cборки ядра, до развёртывания отказоустойчивого web-кластера с помощью ansible.

Лекции ведут опытные преподаватели, периодически приглашаются гости-специалисты. Так что можно получить ответы на вопросы у тех, кто имеет богатый опыт эксплуатации нужной технологии/сервиса/приложение в продуктовой среде

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

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

Лично мне курс помог избавиться от «портянок» на bash и перейти на ansible.

Максим
Дацкевич

Для меня курс тяжелый, те знания и опыт, которыми я владею, не достаточны. Очень много времени трачу на изучение базовых вещей. В целом курс очень интересный, преподаватели класс, изложение материала на высоте, много доп. материала. За практические примеры Алексея Цыкунова и заранее выложенный материал к лекции респект. Свой багаж знаний несомненно пополнил, но все еще не хватает практики.

К сожалению, я не смог найти достаточно свободного времени на решение ДЗ. При добросовестном выполнении домашних заданий результат будет выше ваших ожиданий!

Дмитрий
Бун

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

Нужно понимать, что за вас учиться ни кто не будет и курс точно не для ленивых, большое количество практических занятий, закрывает пробелы в знаниях, монолитом заливает пустоты:)

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

Владимир
Елисеев
(Кисловодск)

Опыт:
Windows2008(AD,Exchange,Zabbix...) 10лет,
FreeBSD(LAMP,LEMP,Zabbix,Bacula) 3 года (можно сжать до 2 лет)

Хочу выделить для себя две причины прихода на курс Linux Administrator:
1. Уйти с Windows Servers && Desktops и найти работу на Full-time с ре локацией как Linux Administrator или Full-time как удаленный Linux Engineer;
2. Повысить навыки "линукс администрирования" и собрать воедино понимание взаимодействия компонентов ядра Linux и GNU userland для миграции моей нынешней работы с Windows платформ на Linux (Rosa(Cobalt)||Astra||Alt) и потом сменить работу);

Я имел удовольствие общаться с преподавателями высокой квалификации:
- Александром, Человеком работающем в хайло оде с большим бекграундом у провайдеров, хостеров и корпораций он мог рассказать углубляясь в детали системных вызовов переходя на язык C. С большим интересом пролетало время урока и более т.к. теоретический материал завязанный с практикой и рассказами Александра как он это в внедрял продакшене. Программистом C, Bash, PHP, Perl, Java, Python;
Реагирование на вопросы в чатах и оказание помощи происходило с периодичностью от 5 мин. до 3,4 часов(понимал и ценил что имею преподавателей из хайло од!), приемка ДЗ осуществялось с наставлениями и расскрытием возможных вариантов решения.
- Алексеем, Человеком внедрившем множество стартапов, системным архитектором(опытом в датацентрах), Oracle DBA, работавшем у провайдеров и телекоме. Имеющий большой опыт в системах распределенного хранения и биллинге для VoIP.
Реагирование на вопросы в чатах и оказание помощи происходило мгновенно, приемка ДЗ осуществялось с подробными комментариями к корректировкам и наставлениям.
Программистом Python, Perl, Bash;

По курсу давшему мне четкое представление как ОС работает внутри и уверенность (при собеседовании на интервью и обсуждениями с коллегами соврем. вещей в unix-like среде для реализации проектов) в своих знаниях наработанных через теорию из PDF + URL content(ссылки давались преподавателями и они значительно экономили время на поиск актуальной информации для понимания и решения ДЗ) хочу выделить
важную особенность ДЗ, нужно было находить много времени (часто приходилось сидеть до 2 ночи) на решение тасков т.к. опыта у меня было около 2 лет только в FreeBSD и год теории благодаря YouTube с keyword "подготовка к LPIC". Чуть не забыл написать про командную помощь в чате на Slack, мы обсуждали ДЗ, предстоящие занятия, голосовали, просили помощи друг. друга, описывали собеседования и желаемые смены работ)

Рекомендую до начала курса иметь минимальное железо - ssd,cpu i3,8GB ram. Т.к. Я не тратил много времени на разворот стендов на Vagrant+Ansible и ssh доступ к этой быстрой машине (приходилось регулярно конфигурировать Vagrantfile и плейбукать Playbook для отладки ролей или порядка старта виртуальных хостов) в оперативке может крутиться по 5-12 виртуалок одновременно. Самые интересные проекты на Ansible: Mysql(Master_Slave),PostgreSQL(Master_Slave), bash(написание демонов(sysV,SystemD)), Bacula, стек ELK, Zabbix|Grafana+Prometheus.
Отдельно выделю проект идущий в конце курса в течении одного месяца + 2 недели после нужно было построить Web HA Cluster выбрав любые технологии, выбрал след. (iptables,nginx+HAProxy,php-fpm,MariaDB_galera(Master_Master),Pacemaker+Corosync,iSCSI(mdraid60)) и все на Ansible Playbook, Elasticsearch_Logstash_Kibana(ELK), Bacula))
И просмотреть курсы подготовки к LPIC1,2 или канал Кирилла Семаева подготовка к LPIC 1 и 2.

После курса: Позвонил менеджер и предложила выбрать желаемых работодателей для отправки им моего резюме от имени и рекомендаций ОТУС (Выбрал 7 из 12, но звонков не получал). Помимо внутреннего роста знаний и уверенности получил два предложения(на протяжении курса добавлял новые навыки в профиль HH), но там Windows&Linux с ре локацией. На протяжении курса длинной в продуктивные 5 месяцев проходил около 15-20 технических собеседований.
Низкий благодарный поклон Алексею, Александру и команде ОТУС!

4. Отзывчивость преподавательского состава и сокурсников.Без нравоучений, все по делу.

Что не понравилось:
1. Считаю, что это курс надо разбивать на 2 большие части и часть про кластеризацию выносить в отдельную 2-3 месячную часть. Возможно, это такое личное ощущение, потому как тема кластеризации была для меня вообще новая и неизведанная.
2. Преподавателям необходимо приподнять именно преподавательские скиллы. То есть умение читать лекцию или вести семинар. Кстати под конец курса, мне понравился формат, когда преподаватель (Алексей Цыкунов) задавал вопросы слушателям по только что пройденному материалу. Это уже ближе к понятию семинара.

Вывод: буду ли советовать этот курс? Определенно, да! Продолжу ли обучение в ОТУСе по интересующим меня технологиям? Да, как раз ожидаю открытия интересующего меня курса.

Василий
Струков

Данный курс открыл для меня многое.

Хотя я уже довольно долго работаю на Linux, все же я на каждом занятии узнавал для себя все новое и новое.
Как в фундаментальных познаниях Linux Систем, так и в работе сервисов. О некоторых решениях даже ни когда и не слышал.
Курс охватывает очень большую сферу познаний в профессии Системного Администратора.
И каждый модуль по своему уникален. И решает свои задачи.
Скучно точно не будет!
В чем особенность данного курса. В том что начиная с первых занятий сразу же приучают к автоматизации всех задач которые приходится решать.
Уровень знаний Преподавателей Очень Высокий и они не стоят на месте, а продолжают совершенствовать свои знания и навыки параллельно обучая студентов данного курса.
А еще сразу видно, что у них огромный опыт работы в данной сфере и опыт решения большинство встречающихся на пути Системного Администратора задач.
Для себя я нашел на данных курсах многое. Особенно 5й модуль. Для меня все, что было связанно со словом кластер мегоацкая машина и не понятно, что и как там происходит, и как к ней подступиться.
Оказалось не все так страшно и можно шаг за шагом к ней приближаться не боясь.
Огромное СПАСИБО скажу Преподавателям. Александр и Алексей Вам просто нереальное Спасибо за все те знания, советы и жизненный опыт который Вы нам дали в рамках этого курса. Здоровья, Сил и Творческих Успехов Вам. Леонид, Тебе тоже, всегда рад прийти на помощь нуждающимся.
Поздравляю Весь Коллектив OTUS"а с Наступающим Новым Годом.
Желаю побольше Толковых Студентов.
Здоровья, Сил и Желания для решения поставленных задач.

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

P.S. С большим желанием приду к Вам на курсы по Ceph кластерам и все что с ними связанное.


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

Минус, что информации много в том, что некоторые лекции могут затянуться на 3-4 часа, лучше было бы их конечно разбивать на две (например, занятие про ядро Linux, про PostgreSQL).

Наличие домашек - это здорово, тем более, что их проверяют не для галочки, а вполне ответственно (даже заставляют переделывать, если результат не достигнут:). Но есть нюанс - при наличии работы, вряд ли удастся их все сделать и в срок, и качественно (под качественно я понимаю в первую очередь усвоение для себя). Поэтому в первую очередь приходится делать те, которые полезны для работы здесь и сейчас, либо которые очень хочется изучить.

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

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

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

А как быть с теми, кто только делает свои первые шаги? К сожалению, в IT-сообществе существует некоторый снобизм, мол, чего об этом говорить, это и так все знают, или "гугл в помощь", забывая, что каждый из нас когда-то был новичком и с мистическим ужасом смотрел в черный экран Linux-консоли, абсолютно не понимая, куда он попал и что ему делать.

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

Итак, вы решили стать Linux администратором...

Немного перефразируем Маяковского "я б в Linux-админы пошел, пусть меня научат", именно так дело в большинстве случаев и обстоит. Есть необходимость, есть желание, есть базовый набор знаний по работе с Windows системами - все это пригодится при работе с Linux системами. Гораздо хуже если какая-либо составляющая отсутствует, тогда, наверное, стоит задуматься о неправильном выборе профессии.

Сразу о том, что нужно раз и навсегда забыть. Это "религиозные войны" и "религиозный фанатизм". Одинаково плохо отрицать возможности Linuх-систем, как и превозносить их, стремясь перевести на Linux все что нужно и не нужно. Запомните - операционная система - это инструмент, хороший специалист берет для каждой задачи наиболее подходящий, фанатик будет забивать гвозди микроскопом, потому что взять в руки молоток ему "религия не позволяет".

Даже больше, сама по себе операционная система не имеет никакой ценности, это всего лищь среда для запуска и выполнения некоторых служб и сервисов. Без софта система мертва. Возьмем для примера клон BeOS - Haiku, ну поставили, ну посмотрели - прикольно... А дальше что?

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

Для привыкшего к графическим инструментам Windows-администратора это может показаться сложным. Но следует твердо усвоить одну истину - консоль является единственным полноценным инструментом администрирования Linux и совсем не означает ограниченность в возможностях или неполноценность системы. Даже наоборот, командная строка позволяет выполнить многие задачи намного быстрее и проще, чем графические инструменты администрирования.

Но существуют же графические инструменты администрирования, скажет иной читатель, панели там разные, или можно же поставить графическую оболочку. Можно, но не нужно. Почему? Внимательно посмотрите на схему ниже:

Linux, создававшийся по образу и подобию UNIX-систем, является полноценной системой и без графической оболочки, более того мы можем запустить, закрыть или вообще сменить графическую оболочку без какого-либо влияния на работоспособность системы и даже без ее перезагрузки. Завершили сеанс Gnome, запустили KDE, а потом и вовсе вышли в консоль. Поэтому все инструменты управления системой разработаны для использования в режиме командной строки. А все панели и графические инструменты являются всего лишь надстройкой над ними.

Windows долгое время разрабатывался по принципиально иной технологии, графическая оболочка была поставлена в основу системы и долгое время даже выполнялась на уровне ядра (семейство Win 9x). Поэтому все инструменты администрирования были изначально графическими, а инструменты командной строки скорее их дополняли, чем заменяли. Любой, кто занимался восстановлением Windows, знает, что возможности инструментов командной строки там существенно ограничены и предназначены в первую очередь для восстановления системы, а не для ее администрирования.

Ситуация стала меняться с выходом PowerShell и Core-версий Windows Server. Несмотря на то, что сегодня графическая оболочка продолжает играть существенную роль в Windows-системах, администраторы получили в руки альтернативный инструмент - консоль PowerShell, которая позволяет полноценно администрировать Windows в режиме командной строки. При этом возможности PowerShell сразу завоевали популярность в среде специалистов, так как позволяют выполнять многие задачи быстрее и проще, чем графические инструменты.

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

После этого, как нам кажется, вы должны будете посмотреть на консоль Linux совсем с другой стороны. Что касается панелей и графических инструментов, то тут есть существенные отличия от Windows-систем. В Windows графические инструменты являются полноценной альтернативой PowerShell. В Linux графические инструменты являются надстройкой над консолью, по факту используя те-же самые инструменты, но через дополнительную прослойку. Поэтому мы категорически не рекомендуем использовать разного рода панели и иные графические инструменты, по крайней мере до тех пор, пока вы не освоите консоль. После этого вы уже сможете самостоятельно решить, нужна ли вам панель или вы способны сделать все проще и быстрее через консоль.

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

Если вы еще не передумали становиться Linux-администратором, то поедем дальше и рассмотрим отличия в архитектуре системы.

Ядро и драйвера

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

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

В микроядерной и гибридной архитектурах, драйвера, хоть могут и работать на уровне ядра, его частью не являются и от версии ядра не зависят. Поэтому мы можем без проблем обновлять ядро или использовать один и тот-же драйвер для всех версий систем с общей структурой ядра. Например, в Windows для всего семейства современных ОС, от Windows Vista до Windows 8.1, часто используется один и тот-же драйвер.

Это не значит, что Linux в этом плане хуже, иная архитектура предусматривает иные подходы. Практически это означает только одно - к выбору оборудования для серверов надо относиться более внимательно, стараясь чтобы все основные устройства поддерживались ядром вашего дистрибутива. Особенно это касается сетевых карт. Будет очень неприятно, если после каждого обновления ядра вам придется бегать в серверную, подключать к серверу монитор и клавиатуру и заново собирать модуль ядра.

По сути, такого понятия как драйвер, в Linux системах не существует. Оборудование либо поддерживается ядром, либо нет. Несомненный плюс монолитного ядра - оно самодостаточно. Если все оборудование поддерживается - поставил и забыл, самое время вспомнить ситуацию, когда под Windows нет драйвера сетевой карты и диск утерян.

Файловая система

Мы не будем касаться конкретных файловых систем, тут проблем возникнуть не должно, если администратор работал с Windows системами, то что такое файловая система и чем FAT отличается от NTFS он знает, поэтому разобраться в разнице между ext3, ext4 и, скажем, ReiserFS для него особого труда не составит. А поговорим о фундаментальных отличиях. В отличие от Windows, файловая система Linuх иерархична. Она начинается от корня, который обозначается знаком / (слеш), и имеет древовидную структуру. При этом абсолютно не имеет значения, что отдельные части файловой системы могут находиться на других разделах или вообще физических дисках.

Рассмотрим еще одну схему.

В Windows каждый раздел имеет собственную файловую систему и обозначающую его букву. Все пути к файлам и папкам начинаются с буквы, т.е. от корня раздела. Так если у нас на первом физическом диске, на втором логическом разделе была папка DATA, то путь к ней соответственно будет как D:\DATA, если мы захотим перенести ее на второй жесткий диск, то ее пусть изменится на E:\DATA. В ряде случаев это жутко неудобно, так как путь надо изменить во всех местах ее использования и даже существуют соответствующие утилиты.

В Linux подход кардинально иной. Самое время познакомиться с термином точка монтирования , который означает место файловой системы, куда подключается устройство хранения данных. Например, мы хотим вынести домашние каталоги пользователей на отдельный раздел, как на схеме выше, для этого нам нужно смонтировать второй логический раздел первого физического диска sda2 в /home . После чего перенести туда все пользовательские данные. Для системы и программ это произойдет абсолютно прозрачно, они как использовали абсолютный путь, скажем /home/andrey/data , так и будут его использовать. Добавили еще один диск и хотим вынести туда директорию /var ? Нет проблем, останавливаем использующие каталог службы, монтируем sdb1 в /var и переносим данные, запускаем службы.

Всё есть файл

Еще один основополагающий принцип, который унаследован от UNIX-систем. В Linux всё есть файл: устройства, диски, сокеты и т.д., например, открыв /var/run мы увидим pid-файлы, соответствующие каждой запущенной службе в системе, а в /dev файлы каждого подключенного к системе устройства:

Что это дает? Не будем вдаваться в подробности, а разберем несколько простых примеров. Скажем, нужно создать образ оптического диска. В Windows нам понадобится для этого специализированное ПО, в Linuх все проще, CD-ROM - это блочное устройство, но в тоже время - это файл, файл блочного устройства. Берем соответствующий инструмент и копируем содержимое файла устройства в файл ISO образа:

Dd if=/dev/cdrom of=/home/andrey/image.iso

Хотим заменить жесткий диск? Нет ничего проще, копируем содержимое одного файла блочного устройства в файл другого блочного устройства:

Dd if=/dev/sda of=/dev/sdb

И не нужно никаких Partition Magic.

Другая ситуация, какое-либо ПО настоятельно ищет библиотеку lib-2-0-1.so, а у нас есть совместимая с ней, но более новая, lib-2-1-5.so, как быть? Создаем символическую ссылку на lib-2-1-5.so с именем lib-2-0-1.so и все будет работать. Потому что все есть файл и символическая ссылка тоже тип файла. А теперь попробуйте подсунуть Windows приложению lib-2-0-1.lnk вместо lib-2-1-5.dll...

Ifconfig

выведет на экран сведения о сетевых адаптерах системы:

А теперь вспоминаем, что все есть файл, в том числе и устройство отображения (экран), поэтому просто перенаправим стандартный поток вывода вместо экрана в нужный нам файл:

Ifconfig > ~/123.txt

После чего вывод команды будет сохранен в файл 123.txt в корневой директории пользователя:

Потоки и конвейер

В прошлом примере мы затронули стандартный поток вывода. В Linux существуют стандартные для всех процессов потоки ввода-вывода данных stdin , stdout и поток вывода ошибок stderr . Что это значит? Как минимум то, что процесс обмена данными между различными процессами стандартизован. Это позволяет создавать конвейеры, когда стандартный поток вывода одной команды передается стандартному потоку ввода другой. Например, мы хотим посмотреть список установленных пакетов в системе, в частности пакеты squid. Для этой цели есть команда:

Ээээ... Это что такое и как тут что-то понять? На экране быстро промелькнули сведения о всех установленных в системе пакетах и все что мы можем видеть, это "хвост" этого вывода:

Но ведь нам и не нужен весь вывод этой команды, нас интересуют исключительно пакеты squid. Поэтому направим вывод этой команды на ввод другой, которая уже отберет и покажет то, что нам нужно:

Dpkg -l | grep squid

Вот это совсем другое дело!

Причем конвейер может быть сколь угодно длинным, результат работы одной команды можно передавать второй, от второй к третьей и т.д. Еще один пример из жизни. Вам надо получить все строки вашего конфигурационного файла squid, но без комментариев и пустых строк, чтобы, например, выложить на форуме или отправить другу. Можно конечно скопировать все, но вряд-ли кто-то захочет вам помогать, прокручивая полотно стандартного файла squid.conf, большая часть которого комментарии и примеры. Делаем проще:

Cat /etc/squid3/squid.conf | grep -v "^#" | sed "/^$/d" > ~/mysquid.conf

И вот что у нас получилось:

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

Буквы большие, буквы маленькие

Linux, как и UNIX, является регистрозависимой системой. И это надо помнить! Потому что, в отличие от Windows, myfile.txt , Myfile.txt и myfile.TXT - это три разных файла. В целях совместимости с другими системами не стоит этим злоупотреблять и хранить файлы, имя которых отличается только регистром, а хорошим тоном считается использование в именах только строчных букв.

Расширения и типы файлов

В Windows системах тип файла определяется его расширением, если мы переименуем exe-файл в jpg , то он не запустится, и система будет пытаться обработать его как картинку. В Linux тип файла определяется по его содержимому и расширение используется исключительно для совместимости с другими системами или для удобства пользователя. Возможность исполнения файла обеспечивается установкой соответствующего атрибута. Так в Windows чтобы сделать скрипт исполняемым, надо было изменить расширение с txt на bat , в Linux для этого нужно сделать файл исполняемым. Непонимание этого момента приводит к ситуациям, когда начинающий администратор не понимает, почему его скрипт myscript.sh не выполняется. На самом деле расширение .sh нужно только для удобства, чтобы сразу было ясно, это скрипт Bash Shell, а чтобы он работал, ему надо поставить атрибут исполняемого, а называться он может как угодно, хоть myscript.pupkin-vasya .

Стесняюсь спросить...

Позвольте, скажет иной читатель, это ведь сколько всего надо помнить: синтаксис команд, ключи, опции и т.д., и т.п. Тут нужно справочник покупать или всегда интернет под рукой держать... Вовсе нет, достаточно помнить названия команд, это как раз несложно, по сложившимся в UNIX традициям, командам дают короткие и удобные имена. А все остальное можно спросить у системы. Вопреки распространенному мнению, Linux системы прекрасно документированы. Посмотреть синтаксис и ключи любой команды можно запустив ее с ключом --help , а так как описания обычно не помещаются на один экран, то следует перенаправить вывод справки утилите more , которая выведет информацию поэкранно. Допустим, нас интересует команда grep :

Grep --help | more

Более подробную информацию можно получить с помощью команды man :

Man grep

К сожалению, информация на английском, но знание технического английского, хотя бы на уровне "читаю со словарем" необходимое требование к системному администратору. Вам ничего не напоминает последний скриншот? Правильно, OpenNET.

Нисколько не умаляя значение этого ресурса, можно сказать, что взяв на вооружение команду man и базовые познания в английском, OpenNET вы будете посещать гораздо реже.

Заключение

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

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

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

  • Теги:

Please enable JavaScript to view the