Архив автора: admin

Работа с процессами в Linux



























3.2/5 — (4 голоса)

Команда ps выводит список текущих процессов на вашем сервере. Используется обычно в сочетании с командой grep и more или less.

Примечание: more и less – дополнительные команды, которые помогают фильтровать и разбивать на страницы выходные данные ps, так как они часто бывают довольно длинными.

Как использовать команду ps

Общий синтаксис команды ps выглядит следующим образом:

ps [OPTIONS]

По историческим причинам и из соображений совместимости команда ps принимает несколько различных типов параметров:

  • Опции стиля UNIX, перед которыми стоит одна черточка.
  • Варианты стиля BSD, используемые без тире.
  • Длинные опции GNU, начинающиеся с двух тире.

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

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

ps

Вывод включает в себя информацию о shell (bash) и процессе, запущенном в этой оболочке (введенная вами команда ps):

PID TTY TIME CMD 1809 pts/0 00:00:00 bash 2043 pts/0 00:00:00 ps

Четыре колонки помечены PID, TTY, TIMEи CMD.

  • PID- Идентификатор процесса. В большинстве случаев при запуске psкоманды наиболее важной информацией, которую ищет пользователь, является идентификатор процесса. Знание PID позволяет убить сбойный процесс.
  • TTY – Название управляющего терминала для процесса.
  • TIME – Совокупное время ЦП процесса, показанное в минутах и ​​секундах.
  • CMD – Имя команды, которая использовалась для запуска процесса.

Вывод выше не очень полезен, так как он не содержит много информации. Настоящая сила команды ps появляется при запуске с дополнительными опциями.

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

Команда ps чаще всего используется со следующей комбинацией параметров:

Форма BSD:

ps aux

  • Опция a указывает ps вывести на дисплей процессы всех пользователей, за исключением тех процессов, которые не связаны с терминалом и процессами группы лидеров.
  • В u – подставки для ориентированных на пользователя формате, который обеспечивает подробную информацию о процессах.
  • Опция x в ps перечисляет процессы без управляющего терминала. В основном это процессы, которые запускаются во время загрузки и работают в фоновом режиме.

Команда будет отображать информацию в одиннадцати столбцах USER, PID, %CPU, %MEM, VSZ, RSS, STAT, START, TTY, TIMEи CMD.

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.8 77616 8604 ? Ss 19:47 0:01 /sbin/init root 2 0.0 0.0 0 0 ? S 19:47 0:00 [kthreadd] …

Мы уже объяснили метки PID, TTY, TIMEи CMD. Вот объяснение других меток:

  • USER – Пользователь, который запускает процесс.
  • %CPU- Процесс использования процессора .
  • %MEM – Процент резидентного установленного размера процесса к физической памяти на машине.
  • VSZ – Размер виртуальной памяти процесса в KiB.
  • RSS- Размер физической памяти , используемой процессом.
  • STAT- Код состояния процесса, который может быть Z (zombie), S (sleeping), R (running)  .. и т. д.
  • START – время, когда команда началась.

Чтобы напечатать дерево процессов, добавьте опцию f. Это укажет ps отобразить древовидное представление дочерних процессов.

ps auxf

Команда ps также позволяет вам сортировать вывод. Например, чтобы отсортировать вывод на основе использования памяти, вы бы использовали:

ps aux –sort=-%mem

форма  UNIX:

ps -ef

  • Опция e указывает ps отобразить все процессы.
  • f – полноформатный список, который содержит подробную информацию о процессах.

Команда будет отображать информацию в столбцах UID, PID, PPID, C, STIME, TIME и CMD.

UID PID PPID C STIME TTY TIME CMD root 1 0 0 19:47 ? 00:00:01 /sbin/init root 2 0 0 19:47 ? 00:00:00 [kthreadd] …

Метки, которые еще не объяснены, имеют следующее значение:

  • UID – То же USER, что и пользователь, который запускает процесс.
  • PPID – Идентификатор родительского процесса.
  • C- То же %CPU, что процесс загрузки процессора.
  • STIME- То же START, что и время начала команды.

Чтобы увидеть только процессы, запущенные от имени определенного пользователя, используйте следующую команду, где andreyex указано имя пользователя:

ps -f -U andreyex -u andreyex

Пользовательский формат

Опция o позволяет указать, какие столбцы будут отображаться при выполнении команды ps.

Например, чтобы напечатать информацию только о PID и COMMAND вы бы выполнить одну из следующих команд:

ps -efo pid,commconsole-bash ps auxo pid,comm

## Использование команды ps может использоваться в сочетании с другими командами через трубопровод. Если вы хотите отобразить вывод команды ‘ps’, по одной странице за раз передайте его в команде less:

console-bash ps -ef | less

Выходные данные команды ‘ps’ могут быть отфильтрованы с помощью grep, например, чтобы показать только процесс, принадлежащий пользователю root, вы должны запустить:

console-bash ps -ef | grep root “ `

Выбор конкретных процессов

Вы можете вывести определенные процессы с помощью ps с помощью различных критериев выбора.

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

ps -p

Например:

ps -p 22813

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

ps -p “

Например:

ps -p “22813 28599”

Вы также можете указать их с помощью списка, разделенного запятыми:

ps -p ,

Например:

ps -p 22813,28599

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

ps -C <команда>

Например:

ps -C nginx

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

ps -G
ps –Group

Например, чтобы узнать все процессы, выполняемые группой accounts, выполните следующие действия:

ps -G “accounts”
ps –Group “accounts”

Вы также можете выполнять поиск по идентификатору группы GID вместо имени группы с помощью строчной буквы g следующим образом:

ps -g
ps –group

Если вы хотите найти все процессы, выполняемые конкретным пользователем, выполните следующую команду, указав имя пользователя:

ps U

Например:

ps U gary

Обратите внимание, что это показывает человека, чьи учетные данные используются для запуска команды. Например, если вы вошли в систему как gary и запустите указанную выше команду, она покажет всю команду, которую вы выполняете. Если вы входите в систему как tom и используете sudo для запуска команды, то приведенная выше команда покажет команду tоm’а, которую запускает gary, а не tom.

Чтобы ограничить список только процессами, действительно запущенными gary, используйте следующую команду:

ps -U “gary”

Форматирование вывода команды ps

По умолчанию вы получаете четыре столбца, когда используете команду ps: PID, TTY, Time, Command. О них написано в начале статьи.

Вы можете получить полный список, выполнив следующую команду:

ps -ef

Опция -e, показывает все процессы, а -f показывает полную информацию: UID – идентификатор пользователя выполняющего команду, PID – это идентификатор процесса команды, PPID – идентификатор родительского процесса, который отпустил команду, C – количество дочерних процессов, STIME – это время начала процесса, TTY, TIME, CMD.

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

ps -eF

Дополнительные столбцы – SZ, RSS и PSR. SZ – это размер процесса, RSS – реальный размер памяти, а PSR – процессор, которому назначена команда.

Вы можете указать пользовательский формат, используя следующий формат:

ps -e –format

Доступны следующие форматы: %cpu, %mem, args, c, cmd, comm, cp, cputime, egid, egroup, etime, euid, euser, gid, group, pgid, pgrp, ppid, start, sz, thcount, time, uid, uname и многие другие, ознакомиться с ними в разделе помощи man.

Чтобы использовать форматы, введите следующее:

ps -e –format=”uid uname cmd time”

Вы можете смешивать и сопоставлять элементы по своему усмотрению.


Вывод без опций

PS (process state) — стандартная утилита всех дистрибутивов Linux, используемая через консоль. Ее основное предназначение — отображение информации обо всех запущенных процессах. Количество и детально показываемых сведений зависит от установленных опций, которые выбираются при непосредственной активации самой команды. Об опциях мы поговорим немного позже, а сейчас давайте просто введем ps в «Терминале» и нажмем на Enter.

Использование команды PS в Linux без применения опций

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

Результат использования команды PS в Linux без применения дополнительных опций

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

Вывод списка всех процессов

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

Использование команды PS в Linux для вывода всех процессов

В итоге отобразится огромное количество строк, с которыми следует разобраться. Делятся сведения на несколько столбцов. PID отображает идентификационный номер процесса и может использоваться, например, для быстрого завершения работы этой программы или проверки дерева задач. TTY — имя терминала, где запущен текущий процесс. TIME — время работы, а CMD — название команды задачи.

Результат использования команды PS в Linux для вывода всех процессов

Дополнительно можно использовать команду ps -e, чтобы отобразить список всех процессов, если предыдущий вариант вас не устраивает.

Альтернативная команда PS в Linux для вывода всех процессов

Как видно, выдача после активации опции -e получилась точно такая же, как и при вводе аргумента -A.

Результат использования альтернативной опции PS в Linux для вывода всех процессов

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

Использование дополнительных опций команды PS в Linux для вывода в формате BSD

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

Результат использования дополнительных опций PS в Linux для вывода в формате BSD

Полноформатный листинг

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

Использование дополнительных опций для полноформатного листинга PS в Linux

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

Результат использования опций для полноформатного листинга PS в Linux

Отображение пользовательских процессов

Опция -x отвечает за отображение процессов, которые были отсоединены от терминала, то есть запущены лично пользователем. Если вы хотите узнать, какие именно задачи были открыты от имени текущей учетной записи, в консоли достаточно будет ввести строку ps -x и нажать на Enter.

Использование опций команды PS в Linux для вывода пользовательских процессов

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

Результат вывода пользовательских процессов через команду PS в Linux

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

Использование опций команды PS в Linux для вывода процессов конкретного пользователя

В результатах вывода обратите внимание на первый столбец. Вы не найдете там других владельцев кроме указанного в команде до ее активации.

Результат вывода процессов определенного пользователя PS в Linux

Как напечатать дерево определённого процесса

Вы можете получить дерево процессов только нужной вам программы следующим образом (замените sshd на интересующий вас процесс):

ps -f –forest -C sshd

Или так:

ps -ef –forest | grep -v grep | grep sshd

Об опции -C будет рассказано далее в этой статье.

Фильтрация вывода ps по определённым строкам (по имени команды, например)

Вы можете направить вывод из ps через grep и найти нужные записи о процессах по любым строкам. Здесь мы ищем записи, соответствующие поисковому запросу «firefox»:

ps -e | grep firefox

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

Больше столбцов в выводе ps

Чтобы добавить дополнительные столбцы к выводу, используйте параметр -f (полный формат).

ps -ef | less

Дополнительный набор столбцов включён в вывод ps.

Из новых столбов появились:

  • UID: идентификатор пользователя владельца этого процесса.
  • PPID: идентификатор родительского процесса.
  • C: Количество детей, которые есть у процесса.
  • STIME: Время начала. Время, когда процесс был запущен.

Используя опцию -F (дополнительный полный формат), мы можем получить ещё больше столбцов:

ps -eF | less

Если у вас маленькое окно терминала, то столбцы, которые мы получаем в этот раз, требуют прокрутки экрана в сторону, чтобы показать их все. Нажатие клавиши «Стрелка вправо» смещает дисплей влево.

Теперь добавились следующие столбцы:

  • SZ: размер страниц ОЗУ образа процесса.
  • RSS: резидентный размер набора. Это не подкачанная физическая память, используемая процессом.
  • PSR: процессор, которому назначен процесс.

Нужно ли указывать дефис перед опциями ps

В некоторых примерах вы можете увидеть использование ps с опциями без дефиса или с длинными вариантами написания опций в стиле GNU. Для совместимости, ps поддерживает все три формата. Опции без дефиса — это стиль BSD и значение опций с дефисом и без может быть различным!

Пример показа процессов в формате BSD:

ps au # ИЛИ ps axu

В этой команде значение опций следующее:

  • u — ориентированный на пользователя формат
  • a — убирает ограничение «только свои процессы»
  • x — убирает ограничение «только процессы с терминалом»

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

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

Заключение

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

Для получения информации обо всех доступных опциях ps введите man ps в своем терминале.


[spoiler title=”Источники”]

  • https://1cloud.ru/help/security/ispolzovanie-komandy-ps-dlya-prosmotra-protsessov-linux
  • https://andreyex.ru/operacionnaya-sistema-linux/komanda-ps-v-linux/
  • https://lumpics.ru/command-ps-in-linux/
  • https://ZaLinux.ru/?p=3596


[/spoiler]


2020-07-27T15:39:49
Linux

Пошаговая установка freebsd 11 для чайников



























2/5 — (11 голосов)

Как обычно, сначала нам нужно скачать установочный образ, и только потом может быть выполнена установка и настройка freebsd 11.

Шаг 1. Загрузка образа

На официальном сайте есть несколько версий для разных архитектур, нам нужна amd64 или x86, в зависимости от количества оперативной памяти, которую вы желаете использовать.

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

Шаг 2. Запись образа на диск

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

Далее вставьте носитель в компьютер и измените настройки BIOS так, чтобы загрузка выполнялась из вставленного носителя. Чтобы войти в BIOS, во время загрузки нажмите одну из клавишей: F2, F11, F12 перед загрузкой операционной системы. Затем перейдите на вкладку “Boot” и поставьте там ваш носитель на первое место.

Установка FreeBSD 11

Шаг 1. – Запуск установки.

При первой загрузке нас встречает меню загрузчика FreeBSD.(Рис.4)

  1. Boot Multi User [Enter] –  Загрузка в многопользовательском режиме.
  2. Boot Single User – Загрузка в однопользовательском режиме.
  3. Escape to loader prompt – Переход в командную строку загрузчика.
  4. Reboot – Перезагрузка.

Жмём [Enter]  для выбора первого пункта, или можно подождать 10 секунд и нас автоматически перенаправит к стандартной установке.

Меню загрузчика FreeBSD.

Рис.4 – Меню загрузчика FreeBSD.

Далее нас приветствует уже установщик FreeBSD.(Рис.5)


[перевод] Добро пожаловать в FreeBSD! Вы хотите начать установку или использовать live CD? [/перевод]

  • – Установка.
  • – Переход в консоль.
  • –  Загрузка в режиме Live CD.

Выбираем , Жмём “Enter”.

Установщик FreeBSD.

Рис.5 – Установщик FreeBSD.

Шаг 2. – Выбор раскладки.

Выбираем раскладку. Русская раскладка мне не нужна, меня устраивает раскладка по умолчанию (английская). Жму “Continue with default keymap”.(Рис.6)

Выбор раскладки.

Рис.6 – Выбор раскладки.

Шаг 3. – Имя сервера.

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

Я ввожу – “freebsditdeer”, Жмём .(Рис.7)

Имя сервера FreeBSD.

Рис.7 – Имя сервера FreeBSD.

Шаг 4. – Выбор компонентов.

Выберите дополнительные системные компоненты для установки(Рис.8):

  • base-dbg – Пакеты для отладки системы.
  • doc – Дополнительная документация.
  • kernel-dbg – Пакеты для отладки ядра.
  • lib32-dbg – Пакеты для отладки 32х битных приложений.
  • lib32 – Библиотека совместимости для 32x битных приложений.
  • ports – Дерево портов.
  • src – Дерево исходного кода системы.
  • tests – Тестирование.

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

Рис.8 – Выбор дополнительных системных компонентов для установки.

По умолчанию отмечены lib32 и ports. Для стандартной серверной сборки этих компонентов достаточно. Лично я ничего больше выбирать не буду. а вы – на свое усмотрение. Выбираем (пробелом), а после  жмём < OK >.

Шаг 5. – Разметка диска.

Выбор способа разметки диска.(Рис.9)

  • Auto (UFS) – Автоматическая разметка диска.
  • Manual – Ручная разметка диска.
  • Shell – Ручная разметка через консоль.
  • Auto (ZFS) – Установка на Raid.

Я выбираю автоматическую разметку диска. – Auto (UFS).  Идём далее…

Выбор способа разметки диска.

Рис.9 – Выбор способа разметки диска.

Нам предлагается выбрать куда именно устанавливать FreeBSD: < Entire Disk > – весь диск, или < Partition > – Раздел диска.(Рис.10) Если у вас на жестком диске не одна система, то выбирайте  раздел, но лично у меня чистый диск, предназначенный только для FreeDSD. Я жму – < Entire Disk >.

Выбор расположения системы.

Рис.10 – Выбор расположения системы.

Выберите таблицу разделов. Я выбираю GTP, Жмём < OK >.(Рис.11)

Выбираем таблицу разделов.

Рис.11 – Выбираем таблицу разделов.

Проверьте предложенную разметку диска. По завершении нажмите кнопку «Finish».(Рис.12)

Предложенная разметка диска.

Рис.12 – Предложенная разметка диска.

Даём согласие на применение новой разметки диска. Жмём < Commit >.(Рис.13)

Даём согласие на применение новой разметки диска.

Рис.13 – Даём согласие на применение новой разметки диска.

Шаг 6. – Установка базовой системы.

Установка базовой системы проходит в автоматическом режиме, без участия пользователя. Просто ждём пару минут…(Рис.14)

Установка базовой системы.

Рис.14 – Установка базовой системы.

Шаг 7. – Ввод пароля root.

Вводим пароль суперпользователя root. Из соображений безопасности при вводе пароля на экране ничего меняться не должно, не пугайтесь что пароль у вас не пишется, всё так и должно быть.(Рис.15)

Ввод пароля суперпользователя.

Рис.15 – Ввод пароля суперпользователя.

Шаг 8. – Настройка сети.

Выбираем сетевую карту(интерфейс), так как у меня она одна, то выбирать не приходится. Жмём  < OK >.(Рис.16)

Выбор сетевого интерфейса.

Рис.16 – Выбор сетевого интерфейса.

“Хотим ли мы настроить IPv4 для этого интерфейса?” – Конечно хотим как же нам без сети… Жмём < Yes >.(Рис.17)

Хотим ли мы настроить IPv4 для этого интерфейса?

Рис.17 – Хотим ли мы настроить IPv4 для этого интерфейса?

“Вы хотите использовать DHCP для настройки этого интерфейса?” – Для сервера важно иметь статический(постоянный) IP адрес, для того чтобы он не менялся необходимо прописать его вручную, либо зарезервировать на DHCP сервере, я выбираю первый вариант – прописать вручную, а значит DHCP сервер нам не нужен. Жмём < NO >. (Рис.18) Идём далее…

Вы хотите использовать DHCP для настройки этого интерфейса?

Рис.18 – Вы хотите использовать DHCP для настройки этого интерфейса?

Вводим свои настройки.(Рис.19)

  • IP Address – Вводим IP адрес нашей freebsd.
  • Subnet Mask – Маску сети.
  • Default Router – Шлюз по умолчанию.

Вводим настройки сетевого интерфейса.

Рис.19 – Вводим настройки сетевого интерфейса.

“Хотим ли мы настроить IPv6 для этого интерфейса?” – Нет не хотим. Жмём < NO >.(Рис.20)

Хотим ли мы настроить IPv6 для этого интерфейса?

Рис.20 – Хотим ли мы настроить IPv6 для этого интерфейса?

Предлагается ввести адреса DNS серверов. Если вы получали настройки по DHCP то поля с адресами уже будут заполнены.(Рис.21)

Я ввожу IP адрес своего роутера(шлюза) – 192.168.3.1 и на всякий случай DNS Google – 8.8.8.8. Жмём < OK >.

Вводим DNS сервера.

Рис.21 – Вводим DNS сервера.

Шаг 9. – Выбор локации.

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

Выбираю регион – “8 Europe”(Рис.22), страну –  “39 Russian Federation”(Рис.23) и часовой пояс – “2 MSK+00 – Moscow area”,подтверждаю выбор – жму < Yes >.(Рис.24)

 Выбор региона.

Рис.22 – Выбор региона.Выбор страны.

Рис.23 – Выбор страны.Выбор часового пояса.

Рис.24 – Выбор часового пояса.

Шаг 10. – Настройка даты и времени.

Настройка даты и времени, Если что-то не совпадает – меняйте. У меня расхождений нет. Дважды Жму < Skip >.(Рис.25)(Рис.26)

Настройка даты.

Рис.25 – Настройка даты.Настройка времени.

Рис.26 – Настройка времени.

Шаг 11. – Настройка автозапуска служб.

Выберите службы, которые вы хотите запускать при загрузке.(Рис.27)

  • local_unbound – Локальное кеширование.
  • sshd – Демон для удаленного подключения по SSH.
  • moused – Поддержка PS/2 клавиатур.
  • ntpd – Сервер времени.
  • powerd – Динамически настраиваемая частота процессора, в зависимости от нагрузки системы.
  • dunpdev – Включить дампы сбоя ядра в /var/crash.

Вам не помешает sshdntpd и powerd. Лично я оставлю только powerd. В следующих статьях мы настроим sshdntpd вручную. Выбираем(пробелом) и жмем < OK >.

Добавление служб в автозагрузку.

Рис.27 – Добавление служб в автозагрузку.

Шаг 12. – Настройки безопасности.

Выберите параметры  безопасности системы.(Рис.28)

  1. Hide processes runing as other users – Скрыть процессы, выполняемые другими пользователями.
  2. Hide processes runing as other groups – Скрыть процессы, выполняемые другими группами пользователей.
  3. Disable reading kernel message buffer for unprivileged users – Отключение чтения буфера сообщений ядра для непривилегированных пользователей.
  4. Disable process debugging facilities for unprivileged users – Отключение средств отладки процессов для непривилегированных пользователей.

  5. Randomize the PID of newly created processes – Рандомизировать PID вновь созданных процессов.
  6. Insert stack guard page ahead of the growable segments – Вставить страницу защиты стека перед растущими сегментами.
  7. Clean the /tmp filesystem on system startup – Очистка каталога /tmp при запуске системы.
  8. Disable opening Syslog network socket (disables remote logging) – Отключить открытие сетевого сокета Syslog (отключает удаленную регистрацию).
  9. Disable Sandmail service – Отключить службу Sendmail.

Отмечаем(пробелом) 3, 4, 7, 8 и если не собираетесь устанавливать на FreeBSD почтовый сервер то и 9. жмём < OK >.

 Выбор параметров безопасности системы.

Рис.28 – Выбор параметров безопасности системы.

Шаг 13. – Добавление учетных записей пользователей.

Вы бы хотели сейчас добавить пользователей в устанавливаемую систему? – Я хотел бы, Жму < Yes >.(Рис.29)

Хотите добавить пользователя?

Рис.29 – Хотите добавить пользователя?

Вводим Username и Full name, Я ввожу дважды – firstdeer. Дальше действуйте на свое усмотрение, я все оставляю по умолчанию, Ввожу и подтверждаю пароль.(Рис.30)

Если вы на 11 шаге выбрали sshd, то рекомендую добавить своего пользователя в группу – wheel, чтобы вы смогли авторизоваться по ssh и получить права суперпользователя.

В строке напишите “wheel”- Login group is firstdeer. Invite firstdeer into other groups? []: wheel. Лично я этого делать не буду.

Добавление нового пользователя.

Рис.30 – Добавление нового пользователя.

Нам предоставят для проверки введенную нами информацию и спросят все ли нас устраивает… OK? (yes/no): вводим yes.(Рис.31)

Получим сообщение: adduser INFO: Successfully added (firstdeer) to the user database.(Успешно добавлен (firstdeer) в пользовательскую базу данных.)

Если вам достаточно одного пользователя то на вопрос “Add another user?/Добавить другого пользователя” напишите “no”. Мне достаточно, я и пишу…

Добавить нового пользователя?

Рис.31 – Добавить нового пользователя?

Настройка графического окружения во FreeBSD

После того как freeBSD установлена и запущена, то первое, что мы увидим это командную строку.

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

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

Если только у вас не настроена команда sudo то залогиньтесь под рутом, а если хотите все делать с командой sudo то сначала настройте sudo.

Первое, что надо сделать это поменять командный интерпретатор. Для этого запустите chpass:

chpass username

Так как в freeBSD в основном приходится работать в командной строке (по крайней мере после установки), сразу же что нужно сделать, это заменить оболочку которая идет по умолчанию на более функциональную, например такую как csh (вторая строчка):

#Changing user information for username. Shell: /bin/csh Full Name: username Office Location: Office Phone: Home Phone: Other information:

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

suee /etc/resolv.conf

и добавьте адрес маршрутизатора, в моем случае его адрес 172.22.193.1:

nameserver 172.22.193.1

Для выхода и сохранения нажмите один раз на Esc и два раза на a.

Теперь должен заработать интернет (в случае если он ранее не работал и по причине что описана выше). Чтобы проверить, что интернет работает про пингуем ресурс ya.ru

ping ya.ru PING ya.ru (213.180.193.3): 56 data bytes 64 bytes from 213.180.193.3: icmp_seq=0 ttl=55 time=19.865 ms 64 bytes from 213.180.193.3: icmp_seq=1 ttl=55 time=23.762 ms 64 bytes from 213.180.193.3: icmp_seq=2 ttl=55 time=20.075 ms 64 bytes from 213.180.193.3: icmp_seq=3 ttl=55 time=19.721 ms

Установка оконного сервера Xorg

После того как мы убедились, что связь есть, можно продолжить дальнейшую настройку freeBSD. Так как мы хотим вместо командной строки видеть графическую среду, то для начала нам нужно установить какую-нибудь реализацию X Window System. Одной из таких реализаций является Xorg. Установим пакет Xorg командой pkg install:

pkg install xorg

После этого начнется процесс установки пакета Xorg с выводом информации об установке, как, например, вытаскивание пакетов из репозитория, затем их распаковка и установка.

Так как в дальнейшем нам надо будет редактировать текстовые файлы, нам надо установить более удобный редактор чем ee, например vim и файловый менеджер Midnight commander, так как нам надо будет перемещаться по файловой системе:

pkg install vim mc

На данный момент Xorg у нас есть, но это только оконная система или X Window System которая знает как рисовать окна, как их перемещать, как они между собой перерисовываются когда одно закрывает другое, как они должны взаимодействовать с устройствами ввода, в частности как они должны обрабатывать сообщения поступающие от клавиатуры и мыши, короче говоря реализует все базовые функции графической среды. В принципе для того, чтобы работать в графической среде этого будет достаточно, после вызова команды startx появится какая никакая графическая среда. Однако нам нужно FullHD разрешение, рабочий стол, чтобы было красиво, много эффектов и пр., для этого нам надо еще установить какое-нибудь графическое окружение или среду рабочего стола и таких несколько. Самые популярные это GNOME и KDE. Но ни гном ни кеды мне не подходят так как они слишком тяжелые. Лучшим выбором будет более легкий Xfce или MATE. Давайте поставим MATE:

pkg install mate

На данном этапе, если мы пропишем необходимые конфиги в конфигуркционных файлах ~/.xinitrc и /etc/rc.conf и запустим службы dbus и hald, то запустив команду startx мы увидим графическую среду.

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

Если нужна графика еще до ввода креденшиналсов, то есть до ввода логина и без всяких запусков startx, то нам понадобиться менеджер экранов Display Managers, но о нем по говорим чуть дальше. А сейчас давайте пропишем все необходимые конфиги, что бы поднималась графическая среда.

Настройка конфигурационного файла /etc/rc.conf

Откройте на редактирование файл /etc/rc.conf:

vim /etc/rc.conf

И добавьте такие строки:

dbus_enable=”YES” hald_enable=”YES”

/etc/rc.conf

hostname=”freebsd” keymap=”ru.koi8-r.kbd” ifconfig_em0=”DHCP” ifconfig_em0=”inet 172.22.193.36 netmask 0xffffff00″ defaultrouter=”172.22.193.

1″ local_unbound_enable=”YES” sshd_enable=”YES” moused_enable=”YES” ntpd_enable=”YES” # Set dumpdev to “AUTO” to enable crash dumps, “NO” to disable dumpdev=”AUTO” dbus_enable=”YES” hald_enable=”YES”

Это означает, что сервисы hald и dbus будут запускаться при запуске системы, а сейчас запустим их вручную:

serivce dbus startserivce hald start

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

cd # cd без параметров переходит в домашний каталог текущего пользователяecho “exec mate-session”>.xinitrc

Теперь все готово, осталось только запустить команду startx

startx

и вместо командной строки появится рабочий стол среды MATE:

Установка менеджера экранов Slim

Если нужен менеджер экранов, то хорошим выбором будет slim:

pkg install slim

После того как менеджер экранов slim установим добавим его в конфигурационный файл /etc/rc.conf (строчка 14):

hostname=”freebsd” keymap=”ru.koi8-r.kbd” ifconfig_em0=”DHCP” ifconfig_em0=”inet 172.22.193.36 netmask 0xffffff00″ defaultrouter=”172.22.193.1″ local_unbound_enable=”YES” sshd_enable=”YES” moused_enable=”YES” ntpd_enable=”YES” # Set dumpdev to “AUTO” to enable crash dumps, “NO” to disable dumpdev=”AUTO” dbus_enable=”YES” hald_enable=”YES” slim_enable=”YES”

И теперь нам необходимо либо перезагрузиться либо запустить сервис slim. Для запуска сервиса введите:

service slim start

Теперь после выхода из окружения рабочего стола (выбором кнопки Log out), а так же после перезагрузки системы мы уже попадем не в командную строку, а в оконный менеджер, где будет окно ввода логина и пароля:

Guest Additions. Только для людей запускающих FreeBSD на виртуальной машине VirtualBox

Если вы запускаете FreeBSD на виртуальной машине VirtualBox (как я), то для комфортной работы нужно еще до установить Guest Additions, чтобы разрешение было под размеры дисплея, а так же чтобы мышка при попадении в зону окна где работает freeBSD становилась фрибээсдэшной.

А пока для работы в окне VirtualBox нужно щелкнуть мышкой в любом месте окна, таким образом VirtualBox захватит мышку и все команды поступающие от мышки будут направляться на обработку в freeBSD запущенной в виртуалбоксе. Если надо вернуться обратно в ту среду, из которой запущен виртуалбокс, нужно нажать правый ctrl.

Это крайне не удобно, поэтому давайте установим Guest Additions:

pkg install virtualbox-ose-additions

Для того, чтобы guest additions режим стартовал при загрузке системы откроем на редактирование файл /etc/rc.conf

vim /etc/rc.conf

и добавим две строчки (15 и 16):

/etc/rc.conf

hostname=”freebsd” keymap=”ru.koi8-r.kbd” ifconfig_em0=”DHCP” ifconfig_em0=”inet 172.22.193.36 netmask 0xffffff00″ defaultrouter=”172.22.193.

1″ local_unbound_enable=”YES” sshd_enable=”YES” moused_enable=”YES” ntpd_enable=”YES” # Set dumpdev to “AUTO” to enable crash dumps, “NO” to disable dumpdev=”AUTO” dbus_enable=”YES” hald_enable=”YES” slim_enable=”YES” vboxguest_enable=”YES” vboxservice_enable=”YES”

Теперь настроем X11. Перейдите в рута и запустите команду Xorg -configure:

Xorg -configure Warning

Если команду Xorg -configure запустить уже из под запущенного графического режима, то она не запуститься, поэтому перед ее запуском стопоните сервисы dbus и hald:

service dbus stop

service hald stop

service slim stop

При этом в домашнем каталоге рута появится файл xorg.conf.new. Откройте его на редактирование: vim /root/xorg.conf.new

и измените драйвер мыши на Driver ‘vboxmouse’ (строчка 30):

xorg.conf.new

Section “ServerLayout” Identifier “X.

org Configured” Screen 0 “Screen0” 0 0 Screen 1 “Screen1” RightOf “Screen0” InputDevice “Mouse0” “CorePointer” InputDevice “Keyboard0” “CoreKeyboard” EndSection Section “Files” ModulePath “/usr/local/lib/xorg/modules” FontPath “/usr/local/lib/X11/fonts/misc/” FontPath “/usr/local/lib/X11/fonts/TTF/” FontPath “/usr/local/lib/X11/fonts/OTF/” FontPath “/usr/local/lib/X11/fonts/Type1/” FontPath “/usr/local/lib/X11/fonts/100dpi/” FontPath “/usr/local/lib/X11/fonts/75dpi/” EndSection Section “Module” Load “glx” EndSection Section “InputDevice” Identifier “Keyboard0” Driver “kbd” EndSection Section “InputDevice” Identifier “Mouse0” Driver “vboxmouse” EndSection Section “Monitor” Identifier “Monitor0” VendorName “Monitor Vendor” ModelName “Monitor Model” EndSection Section “Monitor” Identifier “Monitor1” VendorName “Monitor Vendor” ModelName “Monitor Model” EndSection Section “Device” ### Available Driver options are:- ### Values: : integer, : float, : “True”/”False”, ### : “String”, : ” Hz/kHz/MHz”, ### : “%” ### [arg]: arg optional Identifier “Card0” Driver “vboxvideo” BusID “PCI:0:2:0” EndSection Section “Device” ### Available Driver options are:- ### Values: : integer, : float, : “True”/”False”, ### : “String”, : ” Hz/kHz/MHz”, ### : “%” ### [arg]: arg optional #Option “ShadowFB” # [] #Option “DefaultRefresh” # [] #Option “ModeSetClearScreen” # [] Identifier “Card1” Driver “vesa” BusID “PCI:0:2:0” EndSection Section “Screen” Identifier “Screen0” Device “Card0” Monitor “Monitor0” SubSection “Display” Viewport 0 0 Depth 1 EndSubSection SubSection “Display” Viewport 0 0 Depth 4 EndSubSection SubSection “Display” Viewport 0 0 Depth 8 EndSubSection SubSection “Display” Viewport 0 0 Depth 15 EndSubSection SubSection “Display” Viewport 0 0 Depth 16 EndSubSection SubSection “Display” Viewport 0 0 Depth 24 EndSubSection EndSection Section “Screen” Identifier “Screen1” Device “Card1” Monitor “Monitor1” SubSection “Display” Viewport 0 0 Depth 1 EndSubSection SubSection “Display” Viewport 0 0 Depth 4 EndSubSection SubSection “Display” Viewport 0 0 Depth 8 EndSubSection SubSection “Display” Viewport 0 0 Depth 15 EndSubSection SubSection “Display” Viewport 0 0 Depth 16 EndSubSection SubSection “Display” Viewport 0 0 Depth 24 EndSubSection EndSection

Теперь скопируйте этот файл в /etc/X11 с именем xorg.conf:

cp xorg.conf.new /etc/X11/xorg.conf

И последнее, что осталось сделать, это перезагрузиться:

shutdown -r now

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

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

FreeBSD с разрешением FullHD

Что еще можно поставить

После того как все настроено, можно установить привычный гуевый софт такой как браузер, офис и пр. Давайте установим firefox — браузер, libre office — документы, электронные таблицы, презентации, gimp — графический редактор, rhythmbox — проигрыватель:

pkg install firefox libreoffice gimp rhythmbox

Например так выглядит gimp во freeBSD (это уже среда рабочего стола Xfce):

Если захотите запустить среду рабочего стола Xfce, то установите Xfce командой: pkg install xfce

а затем надо будет прописать в файле ~/.xinitrc строчку:

/usr/local/bin/startxfce4

Линки

Installing Guest Additions causing (Ubuntu) — http://askubuntu.com/questions/526995/installing-guest-additions-causing-problems

Источник: http://dev-blogs.com/freebsd-customize/

I. Создание загрузочной флешки с FreeBSD

1.Вставьте USB флешку в USB разъем.

2. Установите скачанную утилиту Win32 Disk Imager. (прим. I accept the agreement > Next > Next > Install > Finish).

3. В Win32 Disk Imager выберите букву USB флешки и нажмите на синюю иконку. В появившемся окне выберите скачанный Вами ранее IMG-образ с FreeBSD, а затем нажмите Открыть (Рис.1).

Рис.1

.

4. Нажмите Write, затем, в появившемся окне, нажмите Yes. После чего начнётся создание загрузочной USB флешки (Рис.2).

Рис.2

.

5. После завершения создания загрузочной USB флешки нажмите OK  и закройте программу (Рис.3).

Рис.3

.

II. Установка FreeBSD

1. Вставьте загрузочную USB флешку с FreeBSD в разъём USB.

2. Сразу после запуска компьютера необходимо вызвать Boot menu. Т.к. на разных материнских платах и ноутбуках клавиши вызова Boot menu отличаются, ниже приведена таблица (Рис.4) в соответствии с которой Вам необходимо нажать соответствующую клавишу (прим. если у Вас стационарный компьютер, и Вы не знаете какая материнская на нём стоит, обесточьте компьютер, откройте боковую крышку системного блока и посмотрите модель материнской платы).

Рис.4

.

3. Boot menu незначительно отличается на разных моделях и приблизительно выглядит следующим образом (Рис.5, Рис.6).

Рис.5

.

Рис.6

.

4. Выберите загрузку с USB флешки (Рис.5, Рис.6) и нажмите Enter.

5. В меню выберите первый пункт и нажмите Enter (Рис.7).

Рис.7

.

6. В появившемся окне выберите Install и нажмите Enter (Рис.8).

Рис.8

.

7. В разделе раскладки клавиатуры выберите Russian koi8-r и нажмите Enter (Рис.9).

Рис.9

.

8. Выберите Continue with ru.koi8-r.kbd keymap и нажмите Enter (Рис.10).

Рис.10

.

9. Выберите hostname (прим. можно выбрать любое, в дальнейшем его можно будет изменить), затем нажмите Enter (Рис.11).

Рис.11

.

10. В качестве компонентов для установки выберите lib32, ports, src (прим. чтобы отметить компонент как выбранный нужно его выделить и нажать пробел), затем нажмите Enter (Рис.12).

Рис.12

.

11. Выберите автоматическую разметку Auto (UFS), затем нажмите Enter (Рис.13).

Рис.13

.

12. Выберите Entire Disc, затем нажмите Enter (Рис.14).

Рис.14

.

13. Выберите пункт GPT, затем нажмите Enter (Рис.15).

Рис.15

.

14. Удостоверьтесь, что автоматическая разметка произведена верно, затем выберите Finish и нажмите Enter (Рис.16).

Рис.16

.

15. Выберите Commit и нажмите Enter (Рис.17).

Рис.17

.

16. Начнётся процесс установки (Рис.18).

Рис.18

.

17. После окончания установки необходимо придумать, ввести и повторить пароль для суперпользователя (root) (прим. при вводе пароля, символы не отображаются) (Рис.19).

Рис.19

.

18. В появившемся окне выберите сетевой интерфейс (прим. если у Вас их несколько — выберите тот, который вы хотите настроить для доступа к сети), затем нажмите Enter (Рис.20).

Рис.20

.

19. Для настройки IPv4 выберите Yes и нажмите Enter (Рис.21).

Рис.21

.

20. Для получения настроек по DHCP выберите Yes и нажмите Enter (Рис.22).

Рис.22

.

21. В появившемся окне настроек IPv6 выберите No и нажмите Enter (Рис.23).

Рис.23

.

22. В появившемся окне нажмите Enter т.к. Вы получили настройки по DHCP и адрес уже заполнен (Рис.24).

Рис.24

.

23. Выберите необходимый регион (прим. для России это Europe), затем нажмите Enter (Рис.25).

Рис.25

.

24. Выберите страну и нажмите Enter (Рис.26).

Рис.26

.

25. Выберите необходимый часовой пояс, затем нажмите Enter (Рис.27).

Рис.27

.

26. Подтвердите выбор часового пояса выбрав Yes, затем нажмите Enter (Рис.28).

Рис.28

.

27. Выберите дату (прим. если дата указана верно, то просто выберите Skip, в противном случае укажите дату вручную) (Рис.29).

Рис.29

.

28. Выберите время (прим. если время указано верно, то просто выберите Skip, в противном случае укажите время вручную) (Рис.30).

Рис.30

.

29. Выберите компоненты, которые  будут запускаться автоматически при загрузке системы (прим. чтобы отметить компонент как выбранный нужно его выделить и нажать пробел), после выбора компонентов нажмите Enter (Рис.31).

Рис.31

.

30. Выберите третий пункт: Disable reading kernel message buffer for unprivileged users и нажмите Enter (Рис.32).

Рис.32

.

31. Для того, чтобы добавить пользователя выберите Yes и нажмите Enter (Рис.33).

Рис.33

.

32. В строках Username и Full name введите имя пользователя и полное имя (прим. можно указывать любые). В строке Login group введите wheel. Для строк Enter password и Enter password again необходимо придумать, ввести и повторить пароль для пользователя (прим. при вводе пароля символы не отображаются). В остальных строках нажимайте Enter (Рис.34).

Рис.34

.

33. Для подтверждения регистрации пользователя, напротив строки OK? (yes/no) введите yes. Напротив строки Add another user? введите no (Рис.35).

Рис.35

.

34. Выберите Exit и нажмите Enter (Рис.36).

Рис.36

.

35. В появившемся окне выберите No и нажмите Enter (Рис.37).

Рис.37

.

36. Для перезагрузки системы выберите Reboot и нажмите Enter (Рис.38).

Рис.38

.

37. После перезагрузки введите в строке login root, а в строке Password пароль, который вы указывали ранее (прим. см. пункт 17) (Рис.39).

Рис.39

.

III. Установка Xorg и GNOME 3 в FreeBSD

1. Прежде чем устанавливать Xorg и GNOME 3, необходимо проверить соединение с Интернет (прим. особенно это актуально, если доступ осуществляется через роутер). Для этого зайдите через root и введите следующие команды:

<текстареа wrap=”soft” class=”crayon-plain print-no” data-settings=”dblclick” readonly=”” style=”-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 14px !important; line-height: 15px !important;”> # su # ee /etc/resolv.conf




12# su# ee /etc/resolv.conf

Как это показано на Рис.40.

Рис.40

.

2. В строке nameserver должен быль прописан адрес DNS-сервера (прим. у Вас этот адрес будет другой), если  его нет — пропишите адрес вручную (Рис.41).

Рис.41

.

3. После того как Вы проверили (прим. или прописали вручную) адрес DNS-сервера, нажмите Esc. В появившемся окне выберите leave editor и нажмите Enter (Рис.42).

Рис.42

.

4. Выберите пункт save changes и нажмите Enter (Рис.43).

Рис.43

.

5. Для установки Xorg введите:

<текстареа wrap=”soft” class=”crayon-plain print-no” data-settings=”dblclick” readonly=”” style=”-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;”> # pkg install xorg




1# pkg install xorg

Затем в строке Do you want to fetch and install it now введите Y (Рис.44).

Рис.44

.

6. В строке Proceed with this action введите Y, после чего начнётся установка Xorg (Рис.45).

Рис.45

.

7. Для установки GNOME 3 введите:

<текстареа wrap=”soft” class=”crayon-plain print-no” data-settings=”dblclick” readonly=”” style=”-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;”> # pkg install gnome3




1# pkg install gnome3

Как это показано на Рис.46.

Рис.46

.

8. В строке Proceed with this action введите Y, после чего начнётся установка GNOME 3 (Рис.47).

Рис.47

.

9. Для настройки автоматического запуска GNOME 3 введите:

<текстареа wrap=”soft” class=”crayon-plain print-no” data-settings=”dblclick” readonly=”” style=”-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;”> # ee /etc/rc.conf




1# ee /etc/rc.conf

Как это показано на Рис.48.

Рис.48

.

10. Допишите в самом конце строчку:

<текстареа wrap=”soft” class=”crayon-plain print-no” data-settings=”dblclick” readonly=”” style=”-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;”> gnome_enable=”YES”




1gnome_enable=”YES”

Затем нажмите Esc (Рис.49).

Рис.49

.

11. В появившемся окне выберите leave editor и нажмите Enter (Рис.50).

Рис.50

.

12. Выберите пункт save changes и нажмите Enter (Рис.51).

Рис.51

.

13. Для перезагрузки введите:

<текстареа wrap=”soft” class=”crayon-plain print-no” data-settings=”dblclick” readonly=”” style=”-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;”> #reboot




1#reboot

Как это показано на Рис.52.

Рис.52

.

14. После перезагрузки, для входа в систему потребуется ввести пароль, который Вы указали ранее и нажмите Sign In (Рис.53).

Рис.53

.

15. После ввода пароля загрузится рабочий стол (Рис.54).

Рис.54

.

 Установка FreeBSD и графической оболочки GNOME 3 завершена.

.


[spoiler title=”Источники”]

  • https://losst.ru/ustanovka-freebsd-11
  • https://itdeer.ru/ustanovka-freebsd-11-1/
  • https://crb-otradnoe.ru/konfiguratsiya/poshagovaya-ustanovka-freebsd-11-dlya-chajnikov.html
  • https://lyapidov.ru/setup-freebsd-and-gui-from-usb/


[/spoiler]


2020-07-27T15:39:49
Linux

Настройка фаервола в Ubuntu с помощью утилиты UFW



























Rate this post

UFW (Uncomplicated Firewall – несложный фаервол) –  удобный интерфейс для управления политиками безопасности межсетевого экрана. Наши серверы постоянно подвергаются различным атакам или сканируются в поиске уязвимостей. Как только эти уязвимости находятся, мы рискуем стать частью ботнета, раскрыть конфиденциальные данные или потерять деньги из-за сбоев в работе веб-приложений. Одной из первых мер по снижению рисков безопасности является грамотная настройка правил межсетевого экрана. В нашем руководстве мы рассмотрим основные команды и правила работы с утилитой UFW.

Предварительные требования

  1. Для начала работы с UFW вам потребуется суперпользователь(возможность исполнения команд под sudo).  

  2. Утилита  UFW предустановлена в системе. Если по какой-то причине она была отсутствует, вы можете установить ее  с помощью команды:

    sudo apt-get install ufw

Проверка правил и текущего состояния UFW

В любое время вы можете проверить состояние UFW с помощью команды:

sudo ufw status verbose

По умолчанию UFW отключен, так что вы должны увидеть что-то вроде этого:

Status: inactive

Если UFW включен, то в консоли будут перечисляться заданные правила. Например, если firewall настроен таким образом – SSH (порт 22) соединение из любой точки мира, консоль может выглядеть следующим образом:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
 
To                         Action      From
—                         ——      —-
22                         ALLOW IN    Anywhere
22 (v6)                    ALLOW IN    Anywhere (v6)
 

Так вы всегда можете узнать как настроен фаервол. 

Внимание! Проведите начальную настройку перед включением UFW. В частности, должен быть доступен SSH(22 порт). В ином случае вы рискуете потерять доступ к серверу.

Краткое описание

С английского языка название дословно переводится как несложный (упрощенный) брандмауэр. Особенность продукта — минимализм с графической оболочкой на основе командной строки. Если кратко, то UFW используют для базовых настроек межсетевого экрана. Он содержит необходимый минимум функций для стандартной защиты корпоративных ресурсов. Создание более сложных правил и тонкая настройка доступны в iptables.

Изначально решение разрабатывалось для операционных систем семейства Debian и Ubuntu. Дальнейшие действия выполняются под управлением Ubuntu.

Предварительная подготовка

Если UFW не установлен на серверной платформе, используем стандартную утилиту:

sudo apt-get install ufw

Второй вариант – утилита установлена, но неактивна, тогда прописываем:

sudo ufw enable

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

После инсталляции проверим состояние программы:

sudo ufw status verbose

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

sudo nano /etc/default/ufw

sudo ufw default deny incoming
sudo ufw default allow outgoing

Первая строка отвечает за блокировку, а вторая за исходящие подключения.

Настройка

UFW распределяет правила согласно профилям программ. Они хранятся по следующему пути:

/etc/ufw/applications.d

Создание нового или редактирование текущего профиля проводится администратором в ручном режиме. Для начала ознакомимся с текущими профилями:

sudo ufw app list

Просмотр подробной информации по любой записи осуществляется при помощи следующей команды:

sudo ufw app info ‘name’

Где name — наименование профиля, которое заключается в одинарные кавычки.

Например, просмотрим сервис OpenSSH:

Первая строка — имя новой записи в UFW. Вторая описывает заголовок, по которому профиль будет идентифицироваться. Третья содержит краткое описание сервиса (рекомендуется использовать 1-2 предложения). Последняя строка указывает порты, которые необходимо открыть для работы приложения.

Сохраняем файл и перезагружаем межсетевой экран:

ufw reload

Следующий шаг — прописываем политику для новой записи. Доступно два режима: разрешить (Allow) и запретить (Deny). Синтаксис выглядит следующим образом:

ufw

Где action – одно из двух значений Allow или Deny, а name_profile — наименование профиля.

Операции с портами

Для открытия/закрытия портов также используется команды Allow/Deny, в зависимости от требований администратора. Синтаксис выглядит следующим образом:

sudo ufw /

Расшифровка:

1. action — одно из двух действий: разрешить (Allow) или запретить (Deny);
2. port — цифровое имя порта, для которого применяется правило;
3. name_protocol — наименование протокола.

Если требуется указать перечень портов, используем двоеточие между начальной и конечной точкой. Альтернативный вариант — использовать имя службы, для которой создается запись. Например, откроем порт для сервиса HTTP:

sudo ufw allow http

Важно! UFW разрешает стандартный порт, который закреплен за службой. Если значение отличается от общепринятых, то создавать правило по имени сервиса нельзя — оно не активируется.

Операции с IP-адресами

Аналогично портам правила создаются правила и для IP-адресов. Синтаксис идентичен предыдущему пункту:

sudo ufw from

Action – принимает значение Allow или Deny, IP-адрес – адрес оборудования, которому предоставляется/запрещается доступ к серверу.

Например, команду разрешить устройству с IP-адресом 10.68.23.15 доступ к всем портам сервера можно записать так:

sudo ufw allow from 10.68.23.15

Также доступна опция идентификации порта, например:

sudo ufw allow from 10.68.23.15 to any port 22

Добавление словосочетания to any port (name) задает конкретное значение порта, для которого доступ будет открыт. Вместо name указываем номер порта.

Если требуется создать правило для нескольких IP-адресов, используем видоизмененный синтаксис:

sudo ufw allow from 10.68.23.0/24

адрес>

Операции с сетевым интерфейсом

При создании профилей также применяют имена сетевых интерфейсов. Синтаксис представлен ниже:

sudo ufw in on <имя интерфейса=””> to any port <порт>sudo ufw in on

Поле action, как и в предыдущих разделах, принимает состояние Allow и Deny, а опция name_interface отвечает за наименование сетевого интерфейса, для которого создается правило.

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

ifconfig -a

Также доступна дополнительная опция to any port — для однозначной идентификации порта.

Удаление записей

Чтобы удалить созданное ранее правило, используем ключ delete. В общем виде команда выглядит так:

sudo ufw delete

Где number — порядковый номер записи в таблице конфигурации UFW. Чтобы проставить цифровые значения для каждой строки, укажем в терминале:

sudo ufw status numbered

После этого просто указываем номер записи в таблице. Допустим:

sudo ufw delete 7

Перезагрузка не требуется.

Настраиваем UFW в Ubuntu

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

Шаг 1: Изучение синтаксиса

Как известно, UFW — консольная утилита, а это значит, что управление ею осуществляется через стандартный «Терминал» или любой другой пользовательский. Взаимодействие такого рода выполнимо с помощью специально установленных команд. Все они всегда имеются в документации, однако читать огромную кучу материалов не имеет смысла, особенно в случае с сегодняшним инструментом. Принцип ввода выглядит так: sudo ufw опции действие параметры. sudo отвечает за запуск от имени суперпользователя, ufw — стандартный аргумент, обозначающий вызываемую программу, а остальные фразы и определяют устанавливаемые правила. Именно на них мы и хотим остановиться более детально.

  • enable — стандартный параметр, отвечающий за включение брандмауэра. При этом он будет автоматически добавлен в автозагрузку.
  • disable — отключает UFW и убирает его из автозагрузки.
  • reload — используется для перезагрузки Firewall. Особенно актуально после установки новых правил.
  • default — обозначает, что следующая опция установится по умолчанию.
  • logging — активирует создание лог-файлов, в которых будет храниться вся основная информация о действии межсетевого экрана.
  • reset — сбрасывает все настройки до стандартных.
  • status — используется для просмотра текущего состояния.
  • show — быстрый просмотр отчетов о работе фаервола. К этому параметру применимы дополнительные опции, но о них мы поговорим в отдельном шаге.
  • allow — задействован при добавлении разрешающих правил.
  • deny — то же самое, но применяется для запрещения.
  • reject — добавляет отбрасывающее правило.
  • limit — установка лимитирующих правил.
  • delete — удаляет указанное правило.
  • insert — вставляет правило.

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

Шаг 2: Включение/Отключение/Сброс настроек

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

  1. Откройте панель с приложениями и запустите «Терминал». Вы можете открыть консоль и другим удобным для вас способом.
  2. Переход к терминалу для дальнейшей настройки межсетевого экрана UFW в Ubuntu

  3. Прежде чем выполнять активацию, проверьте, возможно, ранее вы или другое приложение уже активировало межсетевой экран. Осуществляется это путем ввода команды sudo ufw status.
  4. Команда для проверки текущего состояния межсетевого экрана UFW в Ubuntu

  5. Введите пароль для получения прав суперпользователя и нажмите Enter. Учтите, что при этом методе ввода символы не отображаются в строке в целях безопасности.
  6. Ввод пароля суперпользователя при взаимодействии с UFW в Ubuntu

  7. В новой строке вы получите информацию о текущем состоянии UFW.
  8. Просмотр информация о текущем состоянии межсетевого экрана UFW в Ubuntu

  9. Активация фаервола выполняется через уже упомянутый выше параметр, а вся команда выглядит так: sudo ufw enable.
  10. Ввод команды для активации межсетевого экрана UFW в Ubuntu

  11. Вас уведомит о том, что брандмауэр включен и будет запускаться вместе с операционной системой.
  12. Информация об успешной активации межсетевого экрана UFW в Ubuntu

  13. Для отключения используйте sudo ufw disable.
  14. Команда для отключения функционирования межсетевого экрана UFW в Ubuntu

  15. О деактивации уведомит практически такое же сообщение.
  16. Уведомление об успешном отключении межсетевого экрана UFW в Ubuntu

  17. В будущем, если потребуется сбросить правила или это нужно сделать уже сейчас, вставьте команду sudo ufw reset и нажмите на клавишу Enter.
  18. Команда для сброса текущих настроек межсетевого экрана UFW в Ubuntu

  19. Подтвердите сброс, выбрав подходящий вариант ответа.
  20. Подтверждение сброса правил при восстановлении стандартных параметров UFW в Ubuntu

  21. Вы увидите шесть различных строк с адресами резервных копий. Можете в любой момент переместиться к этому расположению, чтобы восстановить параметры.
  22. Информация о создании резервных копий UFW в Ubuntu

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

Шаг 3: Установка правил по умолчанию

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

  1. Запустите новую сессию консоли и введите команду sudo ufw default deny incoming. Активируйте ее нажатием на клавишу Enter. Если вы уже ознакомились с указанными выше правилами синтаксиса, то знаете, что это означает блокировку всех входящих соединений.
  2. Ввод команды для установки стандартных правил по умолчанию для входящих соединений UFW в Ubuntu

  3. В обязательном порядке потребуется ввести пароль суперпользователя. Вы будете его указывать каждый раз при запуске нового сеанса консоли.
  4. Ввод пароля суперпользователя при внесении изменений UFW в Ubuntu

  5. После применения команды вы будете уведомлены о том, что правило по умолчанию вступило в силу.
  6. Уведомление об успешном внесении изменений стандартных параметров входящих соединений UFW в Ubuntu

  7. Соответственно, потребуется задать вторую команду, которая будет разрешать исходящие соединения. Выглядит она так: sudo ufw default allow outgoing.
  8. Ввод команды для установки правил по умолчанию для исходящих соединений в UFW в Ubuntu

  9. Еще раз появится сообщение о применении правила.
  10. Информация о применении правил по умолчанию для исходящих соединений в UFW в Ubuntu

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

Шаг 4: Добавление собственных правил межсетевого экрана

Правила брандмауэра — главная настраиваемая опция, ради которой пользователи и задействуют UFW. Мы на примере инструмента OpenSSH сейчас рассмотрим пример разрешения доступа, а также не забудем и про блокировку по портам. Для начала вам необходимо запомнить дополнительные команды синтаксиса, отвечающие за добавление правил:

  • ufw allow имя_службы
  • ufw allow порт
  • ufw allow порт/протокол

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

  1. Используйте sudo ufw allow OpenSSH для открытия доступа к портам службы.
  2. Установка правила соединений для службы через ее название в UFW в Ubuntu

  3. Вы будете уведомлены о том, что правила были обновлены.
  4. Информация о применении введенных изменений в UFW в Ubuntu

  5. Открыть доступ можно и путем указания порта, а не имени службы, что выглядит так: sudo ufw allow 22.
  6. Ввод команды для внесения правил по номеру порта в UFW в Ubuntu

  7. Это же самое происходит и через порт/протокол — sudo ufw allow 22/tcp.
  8. Ввод команды для внесения правил по номеру порта и протоколу в UFW в Ubuntu

  9. После внесения правил проверьте список доступных приложений, введя sudo ufw app list. Если все было применено успешно, необходимая служба отобразится в одной из следующих строк.
  10. Просмотр списка добавленных служб в межсетевой экран UFW в Ubuntu

  11. Что касается разрешений и запрещения передачи трафика по портам, то это осуществляется путем ввода синтаксиса ufw allow направление порт. На скриншоте далее вы видите пример разрешения исходящего трафика по порту (sudo ufw allow out 80/tcp), а также запрещающую политику по этому же направлению во входящую сторону (sudo ufw deny in 80/tcp).
  12. Установка правил для направления трафика в UFW в Ubuntu

  13. Если вас интересует пример добавления политики путем ввода более широкого обозначения синтаксиса, используйте пример ufw allow proto протокол from ip_источника to ip_назначения port порт_назначения.
  14. Установка правил с расширенным синтаксисом в UFW в Ubuntu

Шаг 5: Установка правил limit

Мы вынесли тему установки правил limit в отдельный этап, поскольку об этом необходимо поговорит подробнее. Данное правило ограничивает количество подключенных IP-адресов к одному порту. Наиболее очевидное применение этого параметра — защита от атак, которые подразумевают перебор паролей. Осуществляется установка стандартной политики так:

  1. В консоли пропишите sudo ufw limit ssh/tcp и нажмите на Enter.
  2. Установка ограничений для порта при настройке межсетевого экрана UFW в Ubuntu

  3. Введите пароль от своей учетной записи суперпользователя.
  4. Ввод пароля для установки лимитов для подключения к порту UFW в Ubuntu

  5. Вы будете уведомлены о том, что обновление правил прошло успешно.
  6. Информация об обновлении правил для лимитов в UFW в Ubuntu

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

Шаг 6: Просмотр состояния UFW

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

  1. Пропишите sudo ufw status, чтобы получить стандартные сведения.
  2. Команда для проверки текущего статуса работы экрана UFW в Ubuntu

  3. В новых строках будут отображены все установленные политики по адресам, протоколам и названиям служб. Справа показаны действия и направления.
  4. Отображение основных правил при просмотре состояния экрана UFW в Ubuntu

  5. Более детальные сведения отображаются при использовании дополнительного аргумента, а команда приобретает вид sudo ufw status verbose.
  6. Просмотр подробной информации о существующих правил в UFW в Ubuntu

  7. Список всех правил в непонятном для начинающих юзеров виде выводится через sudo ufw show raw.
  8. Просмотр всех правил в развернутом состоянии в UFW в Ubuntu

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

  • raw — показывает все активные правила, используя формат представления iptables.
  • builtins — включает только правила, добавленные в качестве по умолчанию.
  • before-rules — отображает политики, выполняемые перед принятием пакета из внешнего источника.
  • user-rules — соответственно, показывает добавленные пользователем политики.
  • after-rules — то же самое, что и before-rules, но включает только те правила, которые активируются уже после принятия пакетов.
  • logging-rules — показывает сведения о событиях, которые записываются в журнал.
  • listening — используется для просмотра активных (прослушиваемых) портов.
  • added — задействован при просмотре недавно добавленных правил.

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

Шаг 7: Удаление существующих правил

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

  1. Вставьте команду sudo ufw delete allow out 80/tcp. Она автоматически удалит правило, разрешающее исходящие соединения через порт/протокол 80/tcp.
  2. Удаление правила исходящего соединения в UFW в Ubuntu

  3. Вы будете уведомлены о том, что политика успешно удалена как для протокола IPv4, так и для IPv6.
  4. Информация об успешном удалении правила исходящего соединения UFW в Ubuntu

  5. Это же касается и запрещающих соединений, например, sudo ufw delete deny in 80/tcp.
  6. Удаление правила для блокировки входящих соединений по порту в UFW в Ubuntu

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

Шаг 8: Включение логирования

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

  1. Напишите sudo ufw logging on и нажмите Enter.
  2. Команда для активации сохранения журнала событий UFW в Ubuntu

  3. Дождитесь появления уведомления о том, что журнал теперь будет сохраняться.
  4. Уведомление об успешной активации сохранения журнала событий UFW в Ubuntu

  5. Вы можете применить и другую опцию, например, sudo ufw logging medium. Существует еще low (сохраняет сведения только о заблокированных пакетах) и high (сохраняет всю информацию). Средний вариант записывает в журнал заблокированные и разрешенные пакеты.
  6. Выбор опции для включения журналирования в межсетевом экране UFW в Ubuntu

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

Как просмотреть статус UFW?

По умолчанию UFW в неактивном состоянии т.е. нет правил брандмауэра не настроен и весь трафик разрешен.Чтобы увидеть статус, введите следующую команду:

$ sudo ufw status

Настройка политики по умолчанию

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

$ grep ‘DEFAULT_’ /etc/default/ufw

Пример результата:

DEFAULT_INPUT_POLICY=”DROP” DEFAULT_OUTPUT_POLICY=”ACCEPT” DEFAULT_FORWARD_POLICY=”DROP” DEFAULT_APPLICATION_POLICY=”SKIP”

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

$ sudo ufw default allow outgoing $ sudo ufw default deny incoming

Создание первого правила брандмауэра, чтобы разрешить подключение к SSH (TCP-порт 22)

Введите следующую команду, чтобы разрешить SSH-соединения с сервером:

$ sudo ufw allow ssh

ИЛИ

sudo ufw allow 22/tcp

Скажем, если вы работаете в SSH на порту 2020, введите следующую команду:

$ sudo ufw allow 2020/tcp

Следующие правила открывают доступ к TCP SSH порт 22 только на 10.8.0.1 (т.е. ваш сервер SSH слущает на IP 10.8.0.1 порт 22) из любого места:

$ ufw allow proto tcp from any to 10.86.115.66 port 22

Разрешение соединения в UFW

Вы можете легко разрешить входящие соединения на порт/диапазон, название приложения, IP-адреса/подсети в UFW.
Проверьте приведенные ниже примеры.

а) Предоставление приложений по имени или номеру порта/диапазон

ufw allow service-name

или

ufw allow port/tcp

Например

ufw allow ssh or ufw allow 22/tcp ufw allow ftp or ufw allow 21/tcpsudo ufw allow 1500:2000/tcp

б) Разрешение IP-адреса/подсети

Ниже команда позволяет устанавливать соединение с конкретным IP или подсети, а также мы можем использовать определенные номера портов.
Для того, чтобы разрешить соединения с определенного IP-адреса

ufw allow from 10.200.20.45

Чтобы указать IP-адрес, который разрешен для подключения к определенному порту запуска

ufw allow from 10.200.20.45 to any port 22

Выше позволяет IP-адрес 10.200.20.45 только для подключения через SSH

Чтобы разрешить определенную подсеть IP-адресов для подключения к системе с помощью CIDR обозначения для указания сетевой маски

ufw allow from 192.168.1.0/24

Выше позволяет IP – адрес от 192.168.1 до 192.168.1.254 для подключения к системе
Вы можете также указать порт назначения подсети

ufw allow from 192.168.1.0/24 to any port 22

Это означает, что IP-адрес от 192.168.1 до 192.168.1.254 может подключаться к системе через порт 22, который является SSH.

в) Разрешить именем интерфейса

Если нам нужно разрешить соединения через имя интерфейса его можно указать так:

ufw allow in on eth0 to any port 80

Как запретить соединения в UFW

По умолчанию UFW настроен запрещать все входящие соединения.

а) IP-адрес/подсеть

Если мы хотим заблокировать некоторые конкретные адреса IP-доступа, то мы можем сделать это с помощью следующей команды:

ufw deny from 192.168.1.15

Это будет блокировать все входящие соединения от хоста с IP-адресом 192.168.1.15

Далее заблокируем всю подсеть:

ufw deny from 150.165.125.0/24

Это будет блокировать все соединения, поступающие из этой подсети.

б) Запретить порты и приложения

Запретить порт или услугу

ufw deny 80/tcp

или

ufw deny httpsudo ufw deny 1500:2000/tcp * Запрет диапазонов портов *

Удаление и получение номеров правил

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

ufw status numbered

Вывод

ufw status numbered Status: active To Action From — —— —- [ 1] 22/tcp ALLOW IN Anywhere [ 2] 22 ALLOW IN Anywhere [ 3] 80/tcp ALLOW IN Anywhere [ 4] 53/tcp ALLOW IN Anywhere [ 5] 22/tcp (v6) ALLOW IN Anywhere (v6) [ 6] 22 (v6) ALLOW IN Anywhere (v6) [ 7] 80/tcp (v6) ALLOW IN Anywhere (v6) [ 8] 53/tcp (v6) ALLOW IN Anywhere (v6)

Допустим, мы хотим удалить правила номер 2. Мы делаем это следующей командой:

ufw delete 2

Заметка :

После удаления второго правила в брандмауэре, правило 3 будет теперь новое правило 2. Таким образом, если вы хотите удалить текущее правило 3, вы будете удалять, используя номер 2.

ufw delete allow http

Сброс правил

Если вы недовольны существующим правилам, и вы хотите, чтобы начать все сначала, вы можете сделать это, запустив

ufw reset

Вход и перезагрузка

Чтобы включить использование протоколирования следующей команды:

ufw logging on

Если вы хотите отключить ведение журнала по какой-то причине (не рекомендуется), вы можете использовать следующую команду:

sudo ufw logging off

Журналы по умолчанию находятся в файле /var/log/ufw.log. Чтобы увидеть их в режиме реального времени, используйте -f, как это:

tail -f /var/log/ufw.log /pre> You will see all actions of firewall in that file. If you need to reload firewall for some reason, because you changed some config files manually, use following command. ufw reload

Если вы хотите увидеть правила, которые были недавно добавлены

ufw show added

Файлы конфигурации UFW

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

/etc/ufw/before.rules/etc/ufw/before6.rules

Эти два файла содержат правила, которые вычисляются перед всеми правилами, которые вы добавили в UFW. Так что если вы хотите, чтобы некоторые правила выполнялись первыми. Первый файл для ipv4 и второй один для v6

etc/ufw/after.rules/etc/ufw/after6.rules

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

/etc/default/ufw

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

Избегайте добавления повторяющихся правил

Далее рассмотрим механизм против повторяющихся правил. Сначала мы откроем порт 101

sudo ufw allow 100

Обратите внимание, что команда без протокола, как и выше открывает оба UDP и TCP-порт. Так давайте выполним ту же команду еще раз, чтобы увидеть, что происходит

ufw allow 100

Вывод

Skipping adding existing rule Skipping adding existing rule (v6)

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

ufw allow 101/udp ufw allow 101/tcp

Указав TCP и UDP порт 101, мы все еще можем добавить открытый порт 101 для всех протоколов и это дубликат правила, как порт 101 открыт дважды, один раз для каждого протокола и один раз для всех из них.

ufw allow 101

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

Для закрытия некоторого порта, вы запускаете некоторые команды, просто вместо того, чтобы разрешить, введите deny.

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

 


[spoiler title=”Источники”]

  • https://community.vscale.io/hc/ru/community/posts/208348529-%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D1%84%D0%B0%D0%B5%D1%80%D0%B2%D0%BE%D0%BB%D0%B0-%D0%B2-Ubuntu-%D1%81-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E-%D1%83%D1%82%D0%B8%D0%BB%D0%B8%D1%82%D1%8B-UFW
  • https://serverspace.by/support/help/ispolzovanie-utility-ufw-na-linux/
  • https://lumpics.ru/configuring-ufw-in-ubuntu/
  • https://system-admins.ru/kak-nastroit-brandmauer-ufw-na-ubuntu-16-04-lts/
  • https://andreyex.ru/ubuntu/kak-nastroit-brandmauer-ufw-na-ubuntu-18-04/


[/spoiler]


2020-07-27T15:39:49
Linux

Монтирование диска в Linux – команда mount



























Rate this post

 

Монтирование – это подключение диска, раздела, каталога или файла в корневую систему Linux.

Как уже сказано было выше, в ОС «Линукс» имеется общая корневая система. Именно к ней подключаются все устройства и ресурсы, которыми пользуется владелец ПК. Если углубиться в эту сферу более подробно, Windows выполняет процедуры аналогично, но все процесс скрыты от пользователя.

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

1. Описание утилиты.

Mount — утилита командной строки в UNIX-подобных операционных системах. Применяется для монтирования файловых систем.

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

Например, вы хотите примонтировать флешку. Вы даете системе команду подключить ее в папку /run/media/имя_пользователя/UUID_флешки/. Система определяет файловую систему устройства, а затем, используя драйвера ядра подключает ее к указанной папке. Дальше вам остается работать с той папкой, как с любой другой. Больше ни о чем думать не нужно. Когда надумаете извлечь флешку, ее нужно отмонтировать.

2. Общий синтаксис.

Для монтирования в CentOS 7 используется команда mount.

Рассмотрим ее параметры:

# mount /файл_устройства /папка_назначения

Или расширенный вариант:

# mount опции -t файловая_система -o опции_монтирования /файл_устройства /папка_назначения

Опции задают различные дополнительные особенности работы утилиты. Опция -t необязательна, но она позволяет задать файловую систему, которая будет использована и иногда это очень полезно. С помощью опции -o вы можете задать различные параметры монтирования, например, монтировать только для чтения и так далее. Последних два параметра — это файл устройства, например, /dev/sda1 и папка назначения, например, /mnt.

Перед тем как перейти к рассмотрению примеров работы утилитой, давайте рассмотрим ее основные опции:

  • -V — вывести версию утилиты;
  • -h — вывести справку;
  • -v — подробный режим;
  • -a, –all — примонтировать все устройства, описанные в fstab;
  • -F, –fork — создавать отдельный экземпляр mount для каждого отдельного раздела;
  • -f, –fake — не выполнять никаких действий, а только посмотреть что собирается делать утилита;
  • -n, –no-mtab — не записывать данные о монтировании в /etc/mtab;
  • -l, –show-labels — добавить метку диска к точке монтирования;
  • -c — использовать только абсолютные пути;
  • -r, –read-only — монтировать раздел только для чтения;
  • -w, –rw — монтировать для чтения и записи;
  • -L, –label — монтировать раздел по метке;
  • -U, –uuid — монтировать раздел по UUID;
  • -T, –fstab — использовать альтернативный fstab;
  • -B, –bind — монтировать локальную папку;
  • -R, –rbind — перемонтировать локальную папку.

Вывод списка смонтированных файловых систем(ФС)

При выполнении без аргументов команда mount выведет все подключенные в данный момент ФС:

$ mount

По умолчанию результат будет содержать все ФС, в том числе виртуальные, такие как cgroup, sysfs и т. д. Каждая строка содержит информацию об имени устройства, директории, в которой оно смонтировано, типе и опциях монтирования в следующей форме:

имя_устройства on директория type тип_файловой_системы (опции)

Для отображения только ФС определенного типа используется опция -t. Например, так можно отобразить только разделы ext4:

$mount -t ext4

Монтирование файловой системы

Для подключения файловой системы к конкретному местоположению (точке монтирования) команда mount используется в следующей форме:

mount [опции…] имя_устройства директория

После подключения точка монтирования становится корневой директорией смонтированной ФС. Например, смонтировать жесткий диск /dev/sdb1 в директорию /mnt/media можно следующим образом:

$ sudo mount /dev/sdb1 /mnt/media

Обычно при монтировании устройства с распространенной ФС, например, ext4 или xfs, команда mount автоматически определяет ее тип. Однако, некоторые ФС не распознаются. Их тип нужно указывать в явном виде. Для этого используется опция -t:

mount -t тип имя_устройства директория

Чтобы указать дополнительные опции монтирования, используется флаг -o:

mount -o опции_монтирования имя_устройства директория

Можно указать несколько опций, разделенных запятыми (после запятых не должно быть пробелов). Ниже предоставлены основные опции команды

-V — вывести версию утилиты;
-h — вывести справку;
-v — подробный режим;
-a, —all — примонтировать все устройства, описанные в fstab;
-F, —fork — создавать отдельный экземпляр mount для каждого отдельного раздела;
-f, —fake — не выполнять никаких действий, а только посмотреть что собирается делать утилита;
-n, —no-mtab — не записывать данные о монтировании в /etc/mtab;
-l, —show-labels — добавить метку диска к точке монтирования;
-c — использовать только абсолютные пути;
-r, —read-only — монтировать раздел только для чтения;
-w, —rw — монтировать для чтения и записи;
-L, —label — монтировать раздел по метке;
-U, —uuid — монтировать раздел по UUID;
-T, —fstab — использовать альтернативный fstab;
-B, —bind — монтировать локальную папку;
-R, —rbind — перемонтировать локальную папку.

Полный список опций можно получить, выполнив команду man mount.

Монтирование разделов с помощью mount

Монтирование разделов с помощью mount выполняется очень просто. Фактически в большинстве случаев будет достаточно упрощенной версии команды. Например, смонтируем раздел /dev/sdb6 в папку /mnt:

sudo mount /dev/sdb6 /mnt/

В большинстве случаев вы будете вынуждены выполнять команду mount с правами суперпользователя, если обратное не указано в fstab (опция монтирования users). Вы можете посмотреть информацию о процессе монтирования добавив опцию -v:

sudo mount -v /dev/sdb6 /mnt/

Если нужно, вы можете указать файловую систему с помощью опции -t:

sudo mount -v -t ext4 /dev/sdb6 /mnt

Если необходимо примонтировать файловую систему только для чтения, то вы можете использовать опцию -r или опцию монтирования -o ro, результат будет одинаковым:

sudo mount -t ext4 -r /dev/sdb6 /mnt
$ sudo mount -t ext4 -o ro /dev/sdb6 /mnt

Вы можете использовать и другие опции чтобы выполнить монтирование разделов linux, например, указать, что на этом разделе нельзя выполнять программы:

sudo mount -t ext4 -o noexec /dev/sdb6 /mnt

Обратите внимание, что вы не можете использовать опции uid, gid, fmask для файловых систем ext. Они поддерживаются только в FAT, vFAT, exFAT.

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

sudo mount –uuid=”b386d309-05c1-42c8-8364-8d37270b69e0″ /mnt

Посмотреть uuid для ваших разделов можно с помощью команды:

sudu blkid

Точно так же вы можете использовать метки. Команда монтирования диска linux будет выглядеть так:

sudo mount –label=”home” /mnt/

Вы можете примонтировать одну папку в другую, для этого используйте опцию –bind

sudo mount –bind /mnt/ /media/

Возможно, не только монтирование разделов linux, но и монтирование файлов, если они содержат файловую систему, например, образов дисков. Монтирование образа диска linux работает точно так же:

sudo mount ~/file.iso /mnt

Посмотреть список всех примонтированных устройств можно просто выполнив mount без параметров:

mount

4. Список смонтированного.

Посмотреть список всех примонтированных устройств можно просто выполнив mount без параметров:

# mount

Примеры использования mount

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

  1. Создать точку монтирования
  2. Примонтировать файловую систему

Монтирование USB-накопителя/жесткого диска

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

Создайте точку монтирования

sudo mkdir -p /media/usb

Если USB-накопитель использует устройство /dev/sdd1, его можно смонтировать в директорию /media/usb следующей командой:

sudo mount /dev/sdd1 /media/usb

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

  • fdisk -l
  • ls -l /dev/disk/by-id/usb*
  • dmesg
  • lsblk

Монтирование файлов ISO

Для монтирования файла ISO используется петлевое (loop) устройство — специальное виртуальное устройство, которое позволяет осуществлять доступ к файлу как к блочному устройству.

Сначала нужно создать точку монтирования в любой желаемой директории:

sudo mkdir /media/iso

Смонтируйте файл ISO следующей командой:

sudo mount /path/to/image.iso /mnt/iso -o loop

Не забудьте заменить /path/to/image.iso на путь к вашему файлу ISO.

Монтирование NFS

Для монтирования системы NFS требуется установить клиент NFS. Установка клиента NFS в Ubuntu и Debian:

sudo apt install nfs-common

Установка клиента NFS в CentOS и Fedora:

sudo yum install nfs-utils

Создайте директорию, которая будет точкой монтирования удаленной файловой системы:

sudo mkdir /media/nfs

Обычно требуется автоматическое монтирование удаленной директории NFS при загрузке. Для этого нужно изменить файл конфигурации /etc/fstab. Откройте его в любом текстовом редакторе, например:

sudo nano /etc/fstab

Добавьте в файл следующую строку, заменив сервер:/директория на имя или IP-адрес сервера NFS и экспортируемую директорию:

#       

             сервер:/директория    /media/nfs nfs      defaults    0       0

Смонтируйте ресурс NFS следующей командой:

sudo mount /mnt/nfs

или

sudo mount -a

5. Размонтирование разделов.

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

Например:

# sudo umount /mnt

Теперь ваше устройство не смонтировано, но иногда может возникнуть ошибка размонтирования.

Система сообщит, что устройство занято:

umount: /mnt: target is busy.

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

# lsof -w /mnt
# lsof -w /dev/sdb6

Здесь вы видите всю необходимую информацию, чтобы понять что происходит и что с этим делать. Утилита вывела название программы, ее PID, и даже файл, с которым она работает. Вы можете завершить все программы, а потом снова повторить попытку или используйте опцию -l, файловая система будет отключена немедленно, несмотря на то, что она занята:

# sudo umount -l /mnt

Пользовательские пространства имен

В листинге 1 приведена часть кода модуля PAM (pluggable authentication module, подключаемого модуля авторизации), который предоставляет каждому пользователю, кроме root, обособленное пространство имен. Если директория /tmp/priv/USER существует, то она будет смонтирована с помощью bind на директорию /tmp в пользовательском пространстве имен.

Каждому пользователю – свой root

Настройка системы для организации отдельных каталогов root для каждого пользователя

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

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


[spoiler title=”Источники”]

  • https://www.vseprolinux.ru/mount
  • https://hamsterden.ru/mount-umount/
  • https://ITProffi.ru/podklyuchenie-fajlovyh-sistem-komanda-mount-v-linux/
  • https://losst.ru/montirovanie-diska-v-linux
  • https://www.ibm.com/developerworks/ru/library/l-mount-namespaces/index.html


[/spoiler]


2020-07-27T15:39:49
Linux

Командная строка Linux: краткий курс для начинающих



























3.7/5 — (3 голоса)

Linux – начинающим. Первое знакомство

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

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

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

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

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

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

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

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

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

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

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

Linux-beginners-1-002.jpg
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х иерархична. Она начинается от корня, который обозначается знаком / (слеш), и имеет древовидную структуру. При этом абсолютно не имеет значения, что отдельные части файловой системы могут находиться на других разделах или вообще физических дисках.

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

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

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

Всё есть файл

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

Linux-beginners-1-004.jpg
Что это дает? Не будем вдаваться в подробности, а разберем несколько простых примеров. Скажем, нужно создать образ оптического диска. В 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

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

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

ifconfig > ~/123.txt

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

Linux-beginners-1-006.jpg

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

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

dpkg -l

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

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

dpkg -l | grep squid

Linux-beginners-1-008.jpg
Вот это совсем другое дело!

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

cat /etc/squid3/squid.conf | grep -v ‘^#’ | sed ‘/^$/d’ > ~/mysquid.conf

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

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

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

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.

Требования

  • сервер с Ubuntu 16.04 (см. руководство Vscale: создаём первый сервер).

Для разных операционных систем командную строку можно открывать с помощью приложений:

  • Mac OS X: Terminal (default), iTerm 2;
  • Windows: PuTTY;
  • Linux: Terminal, KDE Konsole, XTerm.

С подробным описанием команд для Ubuntu можно ознакомиться в официальной документации Командная строка Ubuntu.

Вход на сервер через терминал

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

Для работы через консоль следует нажать сочетание клавиш Ctrl+Alt+F1, для возврата в графический интерфейс – сочетание клавиш Ctrl+Alt+F7.

Для запуска терминала нажмите сочетание клавиш Ctrl+Alt+T.

Внизу экрана располагается приглашение командной строки – последовательность символов, извещающая о готовности к обработке команд:

kamilla@kamilla-Aspire-V3-371:~$

, где:

  • kamilla – имя текущего пользователя (суперпользователь/администратор);
  • kamilla-Aspire-V3-37 – имя хоста (сервер);
  • : – разделитель;
  • ~ – текущая директория (в какой папке выполняется команда) пользователя (по умолчанию /home/
  • $ – символ приглашения ввода для пользователей с обычными правами;
  • # – символ приглашения ввода для суперпользователя/администратора root (например, root@cs49647:~#).

Базовые команды, используемые при настройке сервера

После создания нового сервера необходимо предпринять несколько шагов по его базовой настройке (см. руководство Начальная настройка сервера под управлением ОС Ubuntu).

Для того чтобы открыть сервер под учетной записью заведенного пользователя введите команду:

ssh -p №port demo@adress

, где:

  • №port – номер заданного порта при начальной настройке сервера;
  • demo – имя пользователя;
  • adress – ip-адрес сервера.

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

ssh root@SERVER_IP_ADDRESS

Для создания новой учетной записи пользователя введите команду, заменив имя DEMO на любое другое необходимое имя:

adduser DEMO

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

nano /etc/ssh/sshd_config

Для замены строчки в открывшемся конфигурационном файле найдите, например, строчку Port 22 и замените число 22 на любое другое число (от 1025 и до 65536).

После внесения изменений сохраните и закройте файл, нажав сочетание клавиш CTRL-X, затем клавишу Y, затем клавишу ENTER.

Для перезапуска сервиса SSH выполните следующую команду:

service ssh restart

Для выполнения команды с привилегиями root-пользователя, перед ней следует поставить слово sudo:

sudo command_to_run
Для завершения сессии выполните команду:

exit

Обзорное описание команд, аргументов и опций для них

Для запуска команды следует ввести команду и нажать клавишу Enter.

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

Для того чтобы открыть страницу с подробным описанием команды Linux, например ip address, введите команду man с именем команды:

man ip address

Запуск без аргументов и опций

При запуске команд без аргументов:

  • cd – возврат в домашнюю директорию текущего пользователя;
  • ls – вывод списка файлов и директорий в текущем каталоге.

 Пример:

Выполнив команду ls без параметров, получаем список файлов в каталоге:

testk@cs49647:~$ ls
linux.jpg  template  ubuntu.jpg

Запуск с аргументами (параметрами)

Большинство команд рассчитано на запуск с передачей аргументов (параметров).

Наиболее распространенное использование команды cd – это вызов с аргументом, который является путем к директории, в которую следует перейти:

cd /usr/bin

Запуск с опциями

Многие команды также поддерживают опции (флаги, ключи) запуска, позволяющие изменять результат выполнения команды. Опции представляют собой одиночный символ после символа «-», либо в расширенном написании после «–».

 Пример:

Выполнив команду ls с опциями -A, -S, -1, получаем список всех файлов, включая «скрытые», расположенных по одному на каждой строке и отсортированных по размеру:

testk@cs49647:~$ ls -AS1
.gtkrc-2.0
linux.jpg
ubuntu.jpg
template
.filter

Запуск с аргументами и опциями (одновременно)

Структура записи команды с опциями и аргументами: 

команда -опции аргументы

 Пример:

Команда ls -la /home выведет подробный (-l) листинг директории /home, включая скрытые файлы (-a):

testk@cs49647:~$ ls -la /home
total 12
drwxr-xr-x  3 root  root  4096 Oct 14 16:13 .
drwxr-xr-x 22 root  root  4096 Oct 20 10:25 ..
drwxr-xr-x  4 testk testk 4096 Oct 19 10:52 testk

Переменные окружения

Окружение/среда (environment) – это набор пар ПЕРЕМЕННАЯ=ЗНАЧЕНИЕ, которые могут использоваться запускаемыми процессами.

Просмотр переменных окружения

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

env

В зависимости от конфигурации системы, вывод списка переменных окружения может занять несколько экранов, поэтому лучше использовать команду:

env | more

Просмотр значения переменной

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

Чтобы вывести на экран значение какой-нибудь переменной окружения, достаточно набрать echo $ИМЯ_ПЕРЕМЕННОЙ, например, просмотр домашней директории пользователя, хранящийся в переменной окружения $HOME:

echo $HOME

Для перехода в домашнюю директорию следует использовать команду:

cd $HOME

Установка переменных окружения

Для установки значений переменной окружения введите команду:

VAR=value

, где

VAR – название переменной;

value – значение переменной.

Пример:

Выполнив команду var=value, после вывода на просмотр получаем результат value:

testk@cs49647:~$ var=value
testk@cs49647:~$ echo $var
value

Использование встроенной консоли VScale

Для работы с командной строкой также можно использовать встроенную консоль VScale, нажав в меню справа кнопку “Открыть консоль”.


Откроется консоль следующего вида.

Для работы с сервером следует использовать логин и пароль, например, root и пароль, выданный при создании сервера.

Шпаргалка по работе в командной строке Linux

Включение/выключение

Перезагрузить компьютер:rebootили shutdown -r nowВыключить компьютер:shutdown -h nowВыключить компьютер через заданное время:shutdown -h hh:mmили shutdown -h +mОкончание сеанса работы в терминале:exit

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

Включить корневую учетную запись:sudo passwd rootЗаблокировать корневую учетную запись:sudo passwd -l rootДобавить пользователя:adduser имя_пользователяУдалить пользователя:deluser имя_пользователяУдалить пользователя вместе с домашним каталогом:deluser имя_пользователя -remove-homeИзменить имя пользователя и название его домашнего каталога:usermod -l новое_имя_пользователя -d /home/новое_имя_пользователя -m старое_имя_пользователяИзменить пароль пользователя:passwd имя_пользователяВосстановить пароль к учетной записи в режиме восстановления системы (нажать Esc в процессе загрузки GRUB):passwd имя_записи

Управление каталогами

Показать информацию о файловых системах:sudo mountПоказать список разделов:dfПоказать содержание текущего каталога:du -hПоказать объем указанного каталога:du -S имя_каталогаОтобразить путь к текущему каталогу:pwdСоздать каталог:mkdir имя_каталогаСкопировать каталог:cp каталог_1 каталог_2Переместить каталог_1 в каталог_2:mv каталог_1 каталог_2Войти в каталог:cd /имя_каталогаПоказать содержание каталога:ls /имя_каталогаПоказать содержание каталога, включая скрытые файлы и каталоги:ls -a /имя_каталогаПоказать полную информацию о содержании каталога:ls -l /имя_каталогаУдалить пустой каталог:rmdir имя_каталогаУдалить каталог с содержанием:rm -r имя_каталога

Работа с файлами

Создать файл в текущем каталоге:touch имя_файла.txtНайти файл:locate имя_файлаОбновить базу поиска файлов:updatedbПросмотреть текстовый файл:cat /путь/имя_файлаПросмотреть текстовый файл в обратном порядке — от последней строки к первой:tac /путь/имя_файлаСкопировать файл_1 в файл_2:cp файл_1 файл_2Переместить файл_1 в файл_2:mv файл_1 файл_2Переместить файл с сохранением оригинала (в конец имени файла дописывается символ ~):mv -b файл целевой_каталогУдалить файл:rm имя_файлаЗаписать информацию в файл, перезаписав его:echo текст > имя_файла.txtДобавить информацию в файл без его перезаписи:echo текст >> имя_файла.txtСлить несколько текстовых файлов в один:cat файл_1 файл_2 > итоговый_файл

Работа с архивами

Создать архив из содержимого каталога:tar -cvf имя_архива.tar имя_каталога/Сжать файлы:bzip2 имя_файлаgzip имя_файлаzip имя_файлаРаспаковать архив:gunzip имя_архива.tar.gzbunzip имя_архива.tar.bzbunzip2 имя_архива. ar.bz2tar xvf имя_архива.tartar xzf имя_архива.tgz

Управление правами доступа

Пример:-r–r—–dr–r—–Дефис вначале означает обычный файл, d — каталог (директорию). Дальше три группы по три символа означают права доступа для владельца, членов группы, в которую входит владелец, и для всех остальных пользователей соответственно.дефис означает отсутствие прав,
r — означает право на чтение,
w — право на запись,
x — право на выполнение.Просмотреть права доступа:ls -l имя_файла_или_каталогаЗадать права доступа:chmod *** имя_файла_или_каталога где *** — права доступа, указанные абсолютным способом, или:
chmod группа=/+/-тип доступа имя_файла_или_каталога где группа: u (user, владелец), g (group, группа), o (other, другие), a (all, все), например: chmod a+rw имя_файлаИзменить владельца:chown имя_пользователя имя_файлаРаспространенные права доступа:644 = rw-r–r–
666 = rw-rw-rw-
777 = rwxrwxrwx

Порядок цифр соответствует порядку пользователей (ugo), цифра в каждой позиции складывается из значений 4, 2 и 1 для прав r, w и x, соответственно. Так право полного доступа для владельца и отсуствие каких-либо прав для группы и прочих пользователей будет 700 (4+2+1.0.0).

Управление программами

Обновить список программного обеспечения:apt-get updateОбновить систему:apt-get upgradeНайти программу в репозитарии по ключевому слову:apt-cache search ключевое_словоПоказать информацию о пакете:apt-cache show название_пакетаУстановить программу из репозитария:apt-get install имя_пакетаУдалить установленную программу:apt-get remove имя_пакетаУдалить программу вместе с файлами настройки:apt-get remove purge имя_пакетаУстановить программу из скомпилированного пакета:dpkg -i имя_пакета.debУдалить программу:dpkg -r имя_пакета.debОчистить локальное хранилище полученных файлов пакетов:apt-get cleanПросмотреть список установленных пакетов:dpkg -lДобавить частный источник программного обеспечения PPA (Personal Package Archive):add-apt-repository ppa:user/ppa-nameУстановить программу из бинарного файла (предварительно необходимо перейти в каталог с файлом программы):./имя_файла.binРазрешить исполнение файла (если необходимо):chmod a+x имя_файла.bin /> Установить программу из исходных файлов (предварительно необходимо перейти в каталог с файлом программы):./configure
make
make installУдалить программу, установленную из исходных файлов:make uninstallЗапустить графическую программу с правами root:gksudo имя_программы

Управление системой

Отобразить список зарегистрированных в системе пользователей:whoПоказать информацию об использовании оперативной памяти:freeПоказать список запущенных процессов:psЗавершить процесс:killall имя_процессаПоказать список процессов в реальном времени:topВнести изменения в файл конфигурацииgedit /путь/к_файлуСнизить скорость чтения диска в приводе:hdparm -E 4 /dev/dvdrom

Диагностика системы

Проверить жесткий диск на «битые» секторы:badblocksПоказать состояние сетевых интерфейсов:ifconfigПоказать состояние беспроводных сетевых устройств:iwconfigПроверить таблицу маршрутизации:routeПроверить доступность компьютера в сети:ping имя_сайта_или_ip_адрес Остановить процесс: Ctrl+CПроверить маршрут следования пакета:traceroute имя_сайта_или_ip_адресПоказать информацию о подключенных USB-устройствах:lsusbОтобразить список PCI-шин и подключенных к ним устройств:lspciОтобразить список оборудования системы:lshw

Получение помощи

Показать Введение в пользовательские команды:man introОтобразить краткое описание команды:whatis имя_командыВывести информацию о команде:man имя_командыinfo имя_командыимя_команды –helpНайти информацию по ключевым словам:man -k ключевое_словоПоиск по странице:/ключевое_словоПродолжить поиск:NВывести историю команд:historyВыполнить команду из списка истории команд:!номер_команды!первые_буквы_командыОчистить экран консоли:clear

Объединение команд

Последовательное выполнение команд:команда1 ; команда2Последовательное выполнение команд при условии успешного выполнения предыдущей команды:команда1 && команда2Последовательное выполнение команд при условии неудачного выполнения предыдущей команды:команда1 || команда2Последовательное выполнение команд с передачей результатов выполнения предыдущей команды последующей:команда1 | команда2Запуск команды в фоновом режиме:команда &

Символы подстановки

  • Текущий каталог: .
  • Родительский каталог: ..
  • Домашний каталог пользователя: ~
  • Один произвольный символ: ?
  • Любое количество произвольных символов: *
  • Символ из указанного диапазона: [a,b,x-z], например, [a,b].rar
  • Любые символы, кроме указанных: [!ab], например, [!ab].rar
  • Подстановка с помощью фигурных скобок: например, {a,b}{1,2} создаст строку a1 a2 b1 b2
  • Указание специального символа: или апостроф, например, ’имя файла’, или имя файла

Основные команды Linux

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

ls — вывод имен файлов

Утилита ls предназначена, для вывода списка файлов и каталогов в текущем каталоге. Рассмотрим некоторые полезные свойства команды ls.

-A — включить в список «скрытые» файлы («скрытые» файлы в Linux имеют в своем названии точку в начале имени файла, например, .gtkrc-2.0). -S — отсортировать файлы по размеру. -t — отсортировать по дате изменения. -1 — выводить имена в столбик, по одному на каждой строке. -l — вывести подробную информацию о каждом файле, размер файла, владелец файла, права доступа, дата изменения.

Теперь приведу несколько примеров. Выполнив команду ls без параметров, вы получите просто список файлов в каталоге.

admin@pingvinus:~/information$ ls fonts.tar.gz linux.jpg report.odt template ubuntu.jpg

Теперь выполним команду с опциями -A, -S, -1. В результате получим список всех файлов, включая «скрытые», расположенных по одному на каждой строке и отсортированных по размеру.

admin@pingvinus:~/information$ ls -AS1 fonts.tar.gz .gtkrc-2.0 linux.jpg report.odt ubuntu.jpg template .filter

Выполним команду ls с опцией -l. Получим подробную информацию о каждом файле.

admin@pingvinus:~/information$ ls -l -rw-r–r– 1 admin admin 217589 2009-02-12 13:35 fonts.tar.gz -rw-r–r– 1 admin admin 162348 2009-02-03 20:50 linux.jpg -rw-r–r– 1 admin admin 155847 2009-02-15 12:54 report.odt -rw-r–r– 1 root root 120736 2009-02-12 12:55 template -rw-r–r– 1 admin admin 134404 2009-02-12 12:24 ubuntu.jpg

mkdir — создание каталога

Команда mkdir предназначена для создания новой директории. Чтобы создать новую директорию, выполните mkdir <имя директории=””>. Для того, чтобы создать сразу несколько директорий, укажите их имена через пробел, например:mkdir mydir1 mydir2 mydir3

cp — копирование файла

Утилита cp используется для создания копии файла. Для обычного копирования используется следующий синтаксис cp <имя файла=”” источника=””> <имя файла=”” назначения=””>.

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

admin@pingvinus:~/information$ cp -i linux.jpg windows.jpg cp: переписать `windows.jpg’? y

Опция -r (или -R) используется для копирования одной директории в другую.

mv — перемещение, переименование файла

Утилита mv предназначена для перемещения, переименования файла. Для переименования файла используется синтаксис mv <имя файла=””> <новое имя=”” файла=””>. Для перемещения файла в другую директорию используется синтаксис mv <имя файла=””> <директория>. С mv можно также использовать опцию -i, чтобы случайно не перезаписать существующий файл.

rm — удаление файла

Команда rm предназначена для удаления файлов. Основные опции команды:

-i — выводить запрос перед удалением каждого файла. -r (или -R) — удалить директории и их содержимое.

cd — смена текущего каталога

Команда cd предназначена для смены каталога, в котором вы сейчас находитесь. Например, вы сейчас находитесь в своем домашнем каталоге ~ и хотите перейти в каталог ~/information, тогда нужно просто выполнить команду cd information.

admin@pingvinus:~$ cd information/ admin@pingvinus:~/information$

Если выполнить команду cd без параметров, то вы перейдете в свой домашний каталог ~.

admin@pingvinus:~/information$ cd admin@pingvinus:~$

Чтобы перейти в каталог на уровень выше (в родительский каталог) можно использовать синоним «две точки» — .., которые в Linux служат синонимом пути родительского каталога. Например, находясь в каталоге ~/information мы можем перейти в каталог ~ следующим образом:

admin@pingvinus:~/information$ cd .. admin@pingvinus:~$

cat — вывод содержимого файла

Утилита cat выводит содержимое текстового файла. Простейший синтаксис команды cat <имя файла=””>. Утилита cat может использоваться для соединения конкатенации двух текстовых файлов, собственно от этого и происходит название утилиты (catenation, concatenation). Например, у нас есть два файла download и ubuntu и в каждом по две строки. Сначала мы выведем содержимое файлов по отдельности, а затем сделаем конкатенацию двух файлов.admin@pingvinus:~/information$ cat download first line of file download second line of file download admin@pingvinus:~/information$ cat ubuntu first line of file ubuntu second line of file ubuntu admin@pingvinus:~/information$ cat download ubuntu first line of file download second line of file download first line of file ubuntu second line of file ubuntu

pwd — вывод полного пути текущего каталога

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

admin@pingvinus:~/information$ pwd /home/admin/information

man — получение руководства

Системная утилита man выводит страницы системной документации. С ее помощью можно получить информацию по любым командам Linux. Для этого используется синтаксис man <имя утилиты=””>. Например, чтобы вывести руководство по утилите ls, используйте команду man ls. Войдите, чтобы ставить лайкимне нравитсяЛайков: +1 войдите, чтобы ставить лайки

Промежуточные команды

1. echo – команда “echo” помогает нам перемещать некоторые данные, обычно текст, в файл. Например, если вы хотите создать новый текстовый файл или добавить в уже созданный текстовый файл, вам просто нужно ввести «echo hello, меня зовут hich >> new.txt». Вам не нужно разделять пробелы с помощью обратной косой черты здесь, потому что мы заключаем в две треугольные скобки, когда мы заканчиваем то, что нам нужно написать.


результат команды echo в linux

2. cat – Используйте команду cat для отображения содержимого файла. Обычно используется для удобного просмотра программ.


результат команды echo в linux

3. nano, vi, jed – nano и vi уже установлены текстовые редакторы в командной строке Linux. Команда nano – хороший текстовый редактор, который помечает ключевые слова цветом и может распознавать большинство языков. И vi проще, чем nano. Вы можете создать новый файл или изменить файл с помощью этого редактора. Например, если вам нужно создать новый файл с именем «check.txt», вы можете создать его с помощью команды «nano check.txt». Вы можете сохранить ваши файлы после редактирования, используя последовательность Ctrl + X, затем Y (или N для no). По моему опыту, использование nano для редактирования HTML выглядит не очень хорошо из-за его цвета, поэтому я рекомендую jed текстовый редактор. Мы скоро приступим к установке пакетов.

4. sudo – широко используемая команда в командной строке Linux, sudo означает «SuperUser Do». Поэтому, если вы хотите, чтобы любая команда выполнялась с правами администратора или root, вы можете использовать команду sudo. Например, если вы хотите отредактировать файл, такой как viz. alsa-base.conf, для которого требуются права root, вы можете использовать команду – sudo nano alsa-base.conf. Вы можете ввести корневую командную строку с помощью команды «sudo bash», а затем ввести свой пароль пользователя. Вы также можете использовать команду «su», но перед этим вам нужно установить пароль root. Для этого вы можете использовать команду «sudo passwd» (не с орфографической ошибкой, это passwd). Затем введите новый пароль root.

5. df – используйте команду df, чтобы увидеть доступное дисковое пространство в каждом из разделов вашей системы. Вы можете просто ввести df в командной строке и увидеть каждый смонтированный раздел и его использованное / доступное пространство в % и в килобайтах. Если вы хотите, чтобы оно отображалось в мегабайтах, вы можете использовать команду «df -m».


результат команды df -m в linux

6. du – Используйте du, чтобы узнать, как файл используется в вашей системе. Если вы хотите узнать размер занимаемого места на диске для конкретной папки или файла в Linux, вы можете ввести команду df и имя папки или файла. Например, если вы хотите узнать размер дискового пространства, используемое папкой документов в Linux, вы можете использовать команду «du Documents». Вы также можете использовать команду «ls -lah», чтобы просмотреть размеры всех файлов в папке.

7. tar – Используйте tar для работы с tarballs (или файлами, сжатыми в архиве tarball) в командной строке Linux. У него длинный список применений. Он может использоваться для сжатия и распаковки различных типов архивов tar, таких как .tar, .tar.gz, .tar.bz2 и т. д. Это работает на основе аргументов, данных ему. К примеру, “tar -cvf” для создания .tar архива, –xvf для распаковки .tar архива, –tvf для просмотра содержимого архива и т.д.

8. zip, unzip – используйте zip для сжатия файлов в zip-архив и unzip для извлечения файлов из zip-архива.

9. uname – используйте uname, чтобы показать информацию о системе, в которой работает ваш дистрибутив Linux. Использование команды «uname -a» выводит большую часть информации о системе: дату выпуска ядра, версию, тип процессора и т. д.


результат команды uname -a в linux

10. apt-get – используйте apt для работы с пакетами в командной строке Linux. Используйте apt-get для установки пакетов. Это команда требует прав суперпользователя, поэтому используйте команду sudo с ним. Например, если вы хотите установить текстовый редактор jed (как я упоминал ранее), мы можем ввести команду «sudo apt-get install jed». Точно так же любые пакеты могут быть установлены следующим образом. Рекомендуется обновлять ваш репозиторий каждый раз, когда вы пытаетесь установить новый пакет. Вы можете сделать это, набрав «sudo apt-get update». Вы можете обновить систему, набрав «sudo apt-get upgrade». Мы также можем обновить дистрибутив, набрав «sudo apt-get dist-upgrade». Команда «apt-cache search» используется для поиска пакета. Если вы хотите найти его, вы можете ввести «apt-cache search jed» (для этого не требуется root).

11. chmod – используйте chmod, чтобы сделать файл исполняемым и изменить разрешения, предоставленные ему в Linux. Представьте, что на вашем компьютере есть код Python с именем numbers.py. Вам нужно будет запускать «python numbers.py» каждый раз, когда вам нужно его запустить. Вместо этого, когда вы делаете его исполняемым, вам просто нужно запустить «numbers.py» в терминале, чтобы запустить файл. Чтобы сделать файл исполняемым, вы можете использовать команду «chmod + x numbers.py» в этом случае. Вы можете использовать «chmod 755 numbers.py», чтобы дать ему права root, или «sudo chmod + x numbers.py» для исполняемого файла root. Вот еще немного информации о команде chmod.

12. hostname – Используйте команду hostname, чтобы узнать ваше имя в вашем хосте или сети. По сути, он отображает ваше имя хоста и IP-адрес. Просто набрав «hostname», вы получите имя хоста. Набрав «hostname -I», вы получите свой IP-адрес в сети.

13. ping – используйте ping для проверки вашего соединения с сервером. Википедия говорит: «Ping – это утилита для администрирования компьютерной сети, используемая для проверки доступности хоста в сети Интернет-протокола (IP)». Например, когда вы набираете, , «ping google.com», он проверяет, может ли он подключиться к серверу и вернуться обратно. Он измеряет это время в оба конца и дает вам подробную информацию о нем. Использовать эту команду можно и для проверки интернет-соединения. Если он пингует сервер Google (в данном случае) – интернет-соединение активно!


результат команды ping в linux

Советы и рекомендации по использованию командной строки Linux

  • Вы можете использовать команду clear, чтобы очистить терминал, если он там скопилось слишком много команд.
  • TAB можно использовать для заполнения в терминале. Например, вам просто нужно набрать «cd Doc», а затем TAB, и терминал заполняет все остальное и делает его «cd Documents».
  • Ctrl + C может использоваться для безопасной остановки любой команды в терминале. Если Crtl+C не сработал, то можно использовать Ctrl + Z чтобы остановить процесс, запущенный в терминале.
  • Вы можете выйти из терминала, используя команду exit.
    Выключить или перезагрузить компьютер можно с помощью команд sudo halt и sudo reboot.

<хедер class=”read-next-card-хедер”>

5 инструментов, чтобы запомнить команды Linux навсегда

  • Semen Lobachevskiy

Semen Lobachevskiy 7 янв. 2019• 3 мин. чтенияchmod в Linux

Команда chmod используется для изменения прав доступа к файлам или каталогам.

<хедер class=”post-card-хедер”> Инструкции

[spoiler title=”Источники”]

  • https://interface31.ru/tech_it/2014/09/linux-nachinayuschim-chast-1-pervoe-znakomstvo.html
  • https://community.vscale.io/hc/ru/community/posts/209004205-%D0%9A%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%B0%D1%8F-%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B0-Linux-%D0%BA%D1%80%D0%B0%D1%82%D0%BA%D0%B8%D0%B9-%D0%BA%D1%83%D1%80%D1%81-%D0%B4%D0%BB%D1%8F-%D0%BD%D0%B0%D1%87%D0%B8%D0%BD%D0%B0%D1%8E%D1%89%D0%B8%D1%85
  • https://vasilevsky.net/linux-commands
  • https://pingvinus.ru/note/command-line-fundamentals
  • https://omgubuntu.ru/basic-linux-commands-for-beginners/


[/spoiler]


2020-07-27T15:39:49
Linux

Как взломать пароль на телефоне или компьютере с windows



























4.9/5 — (78 голосов)

Что представляет собой процесс взлома пароля?

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

  1. Когда необходимо восстановить забытый пароль;
  2. Когда нужно узнать пароль другого пользователя системы без его ведома для незаконных действий с его учетными данными.

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

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

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

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

Далее детально поговорим о 10 наиболее популярных веб-инструментах для тестирования паролей, которые актуальны в 2019 году.

Методы взлома паролей

Как взломать пароль

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

Любой пароль можно взломать?

Пароль – этот набор символов. Любую комбинацию можно подобрать, отличие состоит только в том, сколько времени на этот понадобится. Но, конечно, это очень весомое отличие. Как взломать пароль, который содержит 10 символов? Из 10 символов можно составить такое количество комбинаций, которые не переберет за день даже супермощный компьютер, которого у вас, конечно же, нет. Да что там день. Порой комбинации не переберёшь и за недели, месяцы.

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

Приступим к теории.

Как взломать пароль на компьютере с windows

Как взломать пароль на компьютере с windows

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

Но не все так страшно. Взлом пароля windows самом деле один из самых простых.

Все, что вам нужно – этот зайти в систему в безопасном режиме. Тут же у вас откроется доступ к учетной записи Администратора. Это самая главная учетная запись, из-под которой можно делать все, что угодно. Поменять или удалить пароль в частности.

Перезагружаем компьютер, нажимаем клавишу в зависимости от вашей системы. Чаще всего это F8, иногда — F12. Дальше заходим в пользователя Admin, в панель управления, в зависимости от версии вашей системы – проходим в меню установки паролей, находим вашу учетную запись, выполняем привычные действия по смене пароля, как будто вы сами у себя меняете пароль и оп-ля – доступ к вашей учетной записи у вас в руках.

Постарайтесь только не забыть новый пароль, пока будете перезагружать систему!

Как взломать пароль на телефоне

За пальму первенства в рейтинге наиболее часто забываемых паролей борются и мобильные устройства.

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

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

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

Взламываем пароль на android

Первый способ – попроще. Если у вас есть учетная запись Google (и вы помните от нее пароль), то разблокировать телефон будет проще простого. Сначала вводите комбинации графического ключа, можно наобум, можно попытаться вспомнить свою (вдруг угадаете). Если не угадали, то экран заблокируется и появится надпись: «Попробуйте немного позже». А внизу другая – «Забыли графический ключ?». Вот на эту надпись и нажимаем. Вас перебросит на вход в гугл аккаунт, а после ввода имени и пароля даст возможность установить новый графический ключ.

Важно! Этот способ работает только тогда, когда ваш аккаунт привязан к устройству.

Второй способ — посложнее. Зайдите в гугл плей через компьютер (под именем и паролем со своего устройства). Установите приложение «Screen Lock Bypass» через веб-интерфейс. Затем установите еще одно приложение, абсолютно любое. Установка вызовет Screen Lock Bypass автоматически и экран блокировки будет сброшен. Не забудьте до следующей блокировки поменять пароль!

Третий способ, простой, но не желательный. Вы можете сбросить состояние устройства до заводского. На каждом устройстве свой механизм сброса (почитайте инструкцию), но обычно нужно выключить телефон, затем одновременно зажать клавишу громкости и клавишу “домой” (а иногда и 3ю клавишу). После чего на экране появится системное меню в котором нужно выбрать пункт — Wipe data / factory reset, а затем согласится с рисками. Далее начнется удаление всех данных с телефона (возврат к заводским настройкам). Затем, после окончания сброса, выберите пункт Reboot System (перезагрузка устройства).

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

Взламываем пароль на ios (iphone)

Для сброса экрана блокировки в яблоке, вам потребуется подключить устройство к компьютеру и войти в режим Recovery Mode. Запустите iTunes, и выберите пункт «восстановить», а затем – настроить, как новый. Тут вам будет предложено установить новый пароль или оставить устройство без пароля. Решать вам.

Взламываем пароль на ios (iphone)

Как взломать пароль на ноутбуке

Процесс восстановления пароля на ноутбуке ничем не отличается от процесса восстановления пароля на персональном компьютере. Поэтому смело вернитесь на два пункта назад и внимательно прочитайте инструкцию по восстановлению пароля в wndows.

Что сделать, чтобы ваш пароль не взломали?

Как видите, взломать пароль несложно только в том случае, если он находится на вашем устройстве и у вас есть доступ к другим учетным записям. Чужой человек не может зайти в iTunes или Google Play, поэтому все, что вам нужно – поставить не элементарный пароль, которые легко подбирается перебором. Не записывать и не оставлять пароль на видном месте, а так же ежемесячно менять ваши пароли.

Как взломать пароль администратора

Первый способ: Для того, что б взломать пароль администратора, зайдите из-под другой учетной записи в командную строку. Введите команду «control userpasswords2» и нажмите ввод. Откроется окошко с учетными пользователями – выберите нужную и снимите галочку с пункта «требовать ввод пароля». Вот и все – учетная запись администратора теперь без пароля.

Второй способ: Перезагружаете компьютер в безопасном режиме (нужно нажать F8 или F12 во время загрузки ПК и выбрать пункт меню – загрузка с поддержкой командной строки.

Как только появится командная строка — пишем: “CD WINDOWS” и Жмём “Еnter”.

Затем набираем : “rename *.pwl *.abc” и жмём “Enter” или “rename *.pwd *.abc” и жмём “Enter” в зависимости от вашей версии windows.

После перезагрузки компьютера пароль администратора будет сброшен.