Архив метки: Linux

Как настроить и использовать порт SSH?

Что такое SSH и зачем он нам вообще нужен?

SSH (англ. Secure SHell — защищенная оболочка) — сетевой протокол прикладного уровня, предназначеный для безопасного удаленного доступа к UNIX-системам. Данный протокол эффективен тем, что шифрует всю передаваемую информацию по сети, в отличие от протокола telnet.

 

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

 

SSH клиенты для windows

 

Что такое клиент SSH и сервер SSH

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

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

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

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

 

Стандарт SSH включает в себя три протокола:

    • Протокол транспортного уровня – гарантирует аутентификацию сервера, секретность и целостность. Обеспечивает сжатие данных. Работает поверх TCP/IP.
    • Протокол аутентификации — исполняет аутентификацию клиента для сервера. Действует поверх уровня транспортного протокола.
    • Протокол соединения — представляет зашифрованный канал в виде мультиплексированного канала из нескольких логических, используемых для разных служб. Работает поверх канала аутентификации.

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

 

клиент ssh

 

Клиент шлет запрос в первый раз, когда устанавливается безопасное соединение транспортного уровня. Второй запрос направляется после завершения аутентификации SSH-клиента.

 

Что такое SSH-протокол

SSH-протокол (от англ. Secure Shell) — криптографический сетевой протокол, предназначенный для удаленного доступа к операционной системе и осуществления безопасного удаленного управления в рамках незащищенной сети (например, через интернет).

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

Основные функции, доступные при использовании SSH-протокола:

    • Передача любых данных через защищенное SSH-соединение, включая сжатие данных для последующего шифрования.
    • X11 Forwarding — механизм, позволяющий запускать программы UNIX/Linux-сервера в виде графической оболочки, как в Windows (использовать X Window System).
    • Переадресация портов — передача шифрованного трафика между портами разных машин.

Безопасность SSH-соединения обеспечивается:

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

 

Аутентификация сервера дает защиту от:

    • взлома путем подмены IP-адресов (IP-spoofing), когда один удаленный хост посылает пакеты от имени другого удаленного хоста
    • подмены DNS-записей (DNS-spoofing), когда подменяется запись на DNS-сервере, в результате чего соединение устанавливается с хостом, который указан в подмененной записи, вместо необходимого
    • перехвата открытых паролей и других данных, передаваемых в открытом виде через установленное соединение

 

На сегодняшний день существуют две версии протокола SSH (SSH-1 и SSH-2), причем вторая версия усовершенствована и расширена по сравнению с первой. Например, вторая версия устойчива к атакам вида MITM («человек посередине», атака посредника). Также существуют две редакции данного протокола: открытая версия (бесплатная) и коммерческая (платная). Бесплатная версия — OpenSSH — встроена во все UNIX-подобные операционные системы в виде стандартных утилит SSH-клиента и SSH-сервера.

Коммерческая реализация SSH-протокола — SSH Communications Security — разработана одноименной организацией. Имеет небольшие отличия от бесплатной версии, такие как доступность коммерческой технической поддержки, наличие инструментов веб-управления и др. Основной набор команд и возможностей практически одинаковый у обоих продуктов.

Для ОС Windows выпущены различные SSH-клиенты и оболочки, самые распространенные из них — это бесплатные PuTTY и WinSCP. Для других операционных систем также существуют свои SSH-клиенты.

Передача данных по SSH-протоколу через небезопасную сеть
Передача данных по SSH-протоколу через небезопасную сеть

 

Что такое SFTP-протокол

SFTP-протокол (от англ. SSH File Transfer Protocol) – сетевой протокол прикладного уровня, предназначенный для передачи файлов и других действий с ними через имеющееся надежное соединение. Протокол был разработан как расширение SSH-2, предназначенное для операций с файлами по защищенному каналу, однако может работать и с другими протоколами, обеспечивающими безопасное соединение сервера с клиентом. Иными словами, для надежной работы через SFTP-протокол необходимо иметь установленное защищенное соединение (например, SSH), которое проводит аутентификацию клиента и сервера и устанавливает факт их надежности, поскольку сам SFTP-протокол не проводит аутентификацию и не обеспечивает безопасность.

SFTP имеет ряд преимуществ перед своими предшественниками — FTP и SCP — таких, как прерывание передачи файла, удаление, возобновление передачи, связь переданных файлов с основными атрибутами, например, меткой даты/времени, а также более высокая платформонезависимость.

SFTP-протокол реализуется через SFTP-сервер и SFTP-клиент, которые являются подсистемами OpenSSH.

 

Для чего используются SSH и SFTP протоколы

Чаще всего протоколы SSH и SFTP используются для удаленной работы с операционной системой или переноса большого количества файлов.

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

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

 

Как работает SSH

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

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

 

Настройка SSH

Настройка будет происходить под выделенный сервер, VDS, VPS на Debian, Ubuntu. Конфигурационный файл располагается тут: /etc/ssh/sshd_config.
Если у вас обычный хостинг, всё и так должно быть настроено как надо, переходите к разделу авторизации по ключам.

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

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

Где найти доступы к серверу

Для подключения по SSH потребуется указать IP-адрес, пароль и логин администратора сервера. Эти данные можно найти на почте, привязанной к аккаунту (после активации VDS приходит письмо с инструкцией) или в Личном кабинете — в разделе «Товары» откройте подраздел «Виртуальные серверы» — выберите сервер в списке, сверху «Инструкция».

В новой вкладке откроется страница с необходимой информацией.

 

Как подключиться по SSH с компьютера на ОС Windows

Если на вашем компьютере установлена ОС Windows, а на сервере — UNIX-подобная система (например, Ubuntu, Debian, CentOS и др.), то для установки SSH-соединения можно использовать PuTTY. Это бесплатная программа под Windows состоит из одного запускаемого файла и не требует установки.

Чтобы установить соединение при помощи PuTTY, необходимо проделать следующие действия:

0. Скачайте нужную версию PuTTY по ссылке
1. Запустите файл putty.exe. Откроется окно программы:

По умолчанию никаких настроек программы менять не нужно. Достаточно убедиться, что указан порт Port 22 и тип соединения Connection type — SSH.

2. В поле Host Name (or IP address) введите IP-адрес сервера. Нажмите кнопку Open.

Может появиться предупреждение системы безопасности PuTTY — оно срабатывает при подключении к новому серверу.  Нажмите Да — и соединение продолжится.

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

4. В следующей строке введите пароль пользователя. При вводе пароля символы в командной строке не отображаются: можно набрать пароль вслепую или вставить кликом правой кнопки мыши, предварительно скопировав (Ctrl+C) его из инструкции. После ввода нажмите клавишу Enter. Если имя пользователя или пароль указаны неправильно, выведется ошибка «Access denied». В случае успешного подключения откроется командная строка виртуального сервера.

Как подключиться к серверу по SSH с компьютера на Linux/MacOS

Подключиться по SSH к виртуальному серверу можно через терминал — в обоих случаях это приложение предустановлено.

 

В операционных системах семейства Linux (Ubuntu и др.) его можно открыть сочетанием клавиш Ctrl+Alt+T.

В MacOS приложение Терминал можно найти через Spotlight (иконка поиска в правом верхнем углу экрана).

Подключиться к виртуальному серверу по SSH можно одной командой:

ssh username@ip_adress

где вместо username нужно указать логин пользователя, вместо ip-adress — IP-адрес сервера, к которому вы подключаетесь. Если на сервере используется нестандартный порт SSH, команда изменится:

ssh username@ip_adress -p 22

где 22 — порт, по которому будет произведено подключение по SSH.

После ввода команды система запросит подтверждение подключения (необходимо ввести yes и нажать Enter) и пароль пользователя. После ввода нажмите клавишу Enter — откроется SSH-соединение:

Как ограничить доступ по SSH

Все изменения вносятся в /etc/ssh/sshd_config
Чтобы изменения вступили в силу, необходимо перезагрузить SSH

Сменить порт

Port 9724

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

 

Запретить связь по старому протоколу

 

Здесь мы определяем, что связь возможна только по протоколу v2

 

Protocol 2

 

Запретить авторизацию под root

 

PermitRootLogin no

 

По умолчанию no. Если yes, можно авторизовываться под рутом. Под root работать небезопасно, лучше создать своего пользователя и работать под ним.

 

 

Если вы авторизованы не под root, перед всеми консольными командами нужно добавлять sudo — расшифровывается как Substitute User and DO — подмени юзера и делай (под ним). Например, позволяет исполнять команды от имени суперпользователя root.

 

 

Уменьшить число попыток авторизации

 

MaxAuthTries 2

 

Количество попыток ввода пароля. По умолчанию 6. При неудачном переборе сеанс связи обрывается.

 

Уменьшить время ожидания авторизации

 

LoginGraceTime 30s

 

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

 

Закрыть доступ по IP

 

 

Прежде чем настраивать ограничения по IP, убедитесь, что в случае ошибки в настройке и последующего бана собственного IP у вас останется альтернативный способ вернуть доступ к серверу

 

 

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

 

    1. Открываем /etc/hosts.allow и добавляем туда SSHD: 192.168.1.1где 192.168.1.1 — ваш IP. Если у вас динамический IP, определите IP с маской подсети и запишите Вашу подсеть вместо IP, например:

       

      SSHD: 192.168.0.0/16

 

    1. Открываем /etc/hosts.deny и добавляем туда: SSHD: ALL

 

 

Теперь никто, кроме вас, не сможет авторизоваться на сервере по SSH.

 

Ещё один способ ограничения доступа по IP

 

Можно воспользоваться следующей директивой:

 

AllowUsers = *@1.2.3.4

 

Здесь мы разрешаем доступ только для IP 1.2.3.4

 

Как подключиться по SSH из Windows

 

Для подключения к серверу по SSH в операционных системах семейства Windows не предусмотрены штатные средства, поэтому перед работой по SSH необходимо выбрать и установить SSH клиент.

 

На вашем компьютере установлена ОС Windows

 

Для подключения по SSH в ОС Windows мы рекомендуем использовать SSH-клиент PuTTy. Скачать клиент можно на официальном сайте (англоязычная версия).

 

Подключение по SSH Windows:

 

    1. 1.Запустите программу PuTTY;

 

    1. 2.

      На странице с основными настройками сеанса PuTTY, в поле «Host Name» введите IP-адрес сервера.

       

      Как узнать IP-адрес сервера

       

      IP-адрес сервера указан в информационном письме, отправленном на контактный e-mail после заказа хостинга. Также данная информация продублирована в Личном кабинете. Авторизуйтесь на сайте REG.RU и кликните по нужной услуге хостинга. IP-сервера указан на вкладке «Доступы»:

       

      подключение по ssh шаг

       

      подключение по ssh шаг 2

       

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

       

 

    1. 3.

      При первом подключении к серверу появится окно «Предупреждение безопасности PuTTY». Нажмите Да:

       

      подключение по ssh шаг 3

       

 

    1. 4.

      В открывшемся окне PuTTY введите ваш логин услуги хостинга вида «u1234567». Нажмите Enter. Затем введите ваш пароль от услуги хостинга и нажмите Enter. В целях безопасности вводимый пароль не отображается на экране в виде символов. Набирая пароль, вы не увидите на экране ни самого пароля, ни звёздочек.

       

      Чтобы вставить скопированный логин и пароль в окно PuTTy, нажмите Shift + Insert.

       

      Как узнать логин и пароль услуги хостинга

       

      Логин и пароль услуги хостинга указаны в информационном письме, отправленном на контактный e-mail после заказа хостинга. Также данная информация продублирована в Личном кабинете. Авторизуйтесь на сайте REG.RU и кликните по нужной услуге хостинга. Логин и пароль указаны на вкладке «Доступы»:

       

       

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

       

      подключение по ssh шаг 4

       

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

 

Как подключиться к серверу по SSH

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

    • Если на вашем компьютере установлена ОС Windows, то подключение происходит через Putty.
    • Для ОС Linux на компьютере доступно подключение к SSH через терминал.

На вашем компьютере установлена Linux-подобная ОС (как подключиться по SSH Ubuntu, Kubuntu, Fedora, …)

Для ОС Linux доступ по SSH осуществляется через терминал, который уже предустановлен в самой системе.

 

    1. 1.

      Запустите терминал:

       

        • в Unity (Ubuntu): «Главное меню» — в поисковой строке введите слово «Терминал». Либо просто нажмите комбинацию клавиш: Ctrl+Alt+T;

       

        • в Xfce (Xubuntu): «Главное меню» — «Приложения» — «Система» — «Терминал»;

       

        • в KDE (Kubuntu): «Главное меню» — «Приложения» — «Система» — «Терминал».

       

       

 

    1. 2.

      Введите команду:

       

      ssh u1234567@123.123.123.123

      Где u1234567 — логин учётной записи хостинга (Как узнать логин и пароль услуги хостинга?; 123.123.123.123 — IP-адрес сервера (Как узнать IP-адрес сервера?).

    1. 3.Нажмите «Enter», введите пароль услуги хостинга.

 

Готово, вы успешно завершили ssh-подключение через терминал.

Можно ли создать дополнительного SSH-пользователя

На Hosting Linux подключение по SSH возможно только под основным логином хостинга (вида u1234567). Создать дополнительного пользователя SSH нельзя.

 

Как создать архив по SSH

Создание архива tar.gz

Подключитесь к серверу по SSH и выполните команду:

tar -czvf name.tar.gz path/folder-name/

    • Данная команда создаст архив папки path/folder-name/. Название архива — name.tar.gz.
    • Все файлы будут сжаты при помощи gzip.
    • В процессе создания архива будет показан процесс архивации. Если данная информация вам не нужна, уберите ключ «v» из команды.

 

Разархивация происходит при помощи команды:

tar -xzvf name.tar.gz

Создание архива zip

Подключитесь к серверу по SSH и выполните команду:

zip -r имя-архива.zip /путь-к-папке # пример zip -r log.zip /var/log

В результате команды из примера будет создан архив папки /var/log со всем её содержимым. Имя созданного архива: log.zip. Разархивировать можно будет при помощи команды:

unzip имя-архива.zip

 

Полезные команды для SSH клиентов

Рассказать о всех командах Unix будет сложно, поэтому напишем лишь несколько полезных команд:

man [имя команды] — выдаст подробную информацию по команде, например: man mv
Для выхода из man, т.е. из руководства по команде, нажмите q (Quit — Выход).
[имя команды] —help — также позволит посмотреть описание команды.

ls — вывести список файлов;
ls -la — покажет все файлы (включая скрытые), размер файлов, владельца и группу владельца, права на них, дату последнего изменения;
ls -lha — то же, что предыдущая команда, только размер файлов будет показан в удобном виде;
ls -lha | less — позволит просматривать файлы постранично (если их много);

cd [имя директории] — переход в выбранную директорию;
cd ../ — переход на директорию выше;
cd ~ — переход в корневую директорию;

mv — переименовать и/или переместить;

rm — удалить;

cp — копировать;

> — очистка файла. Например, можно применить к файлам логов ( > access.log, > error.log, > combined.log);

mc — запуск Midnight Commander — что-то вроде Norton Commander, в котором удобно работать с файлами, а также возможно работать с ними по sftp (ftp внутри ssh);

chmod — установка прав на файл или директорию;

cat -объединяет файл или несколько файлов, либо ввод со стандартного устройства ввода и выводит результат на стандартное устройство вывода;
cat [имя файла] — выведет на экран содержимое файла;
cat [имя файла] | grep [искомая строка] — выведет на экран строки файла, включающие искомую строку;

mkdir [имя директории] — создание директории (папки).

    • https://x-inside.ru/ssh-klienty-dlya-windows/
    • https://FB.ru/article/269605/klient-ssh-nastroyka-luchshiy-ssh-klient
    • https://FirstVDS.ru/technology/ssh-connection
    • https://sheensay.ru/ssh
    • https://FirstVDS.ru/technology/how-to-connect-to-the-server-via-ssh
    • https://www.REG.ru/support/hosting-i-servery/nachalo-raboty-i-dostupy/kak-podklyuchitsya-po-ssh

Знакомство с Virtualbox



























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

Зачем это нужно?

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

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

VirtualBox

VirtualBox (Oracle VM VirtualBox)  – система виртуализации предназначенная для создания виртуальной машины с параметрами железа реального компьютера, на которой можно запускать любую операционную систему. Последняя версия 5.2.

Сайт компании www.virt…
Автоматический перехват порта USB VirtualBox

Выбор оперативной памяти

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

Итак, сколько RAM вы должны выделить VM? Это зависит от ряда факторов. Если вы планируете использовать только виртуальную машину во время ее работы, вы можете позволить себе предоставить ей больше ОЗУ, потому что вы не будете просить хост-систему выполнять многозадачность. Если, с другой стороны, вы будете использовать ее одновременно с выполнением множества других функций на ОС хоста, вам следует лучше рассчитать это значение. Хорошим общим правилом является выделение половины ОЗУ вашего компьютера. Итак, если ваш ПК имеет 4 ГБ RAM, дайте 2 ГБ VM, оставив хост с остальным объемом. Если выбрать это значение с грубой ошибкой, вы столкнетесь с тем, что VirtualBox не запускается.

Место для хранения данных

Следующим шагом будет создание «виртуального жесткого диска» (VHD). Это создает файл на вашем HDD, который может использоваться VirtualBox, чтобы действовать как отдельный жесткий диск. Это позволяет вам установить операционную систему, не беспокоясь о том, что могут пострадать ваши существующие данные.

Убедитесь, что выбраны Boot Hard Disk и «Создать новый жесткий диск», затем нажмите «Продолжить». Это запустит «Создать новый мастер виртуального диска». Нажмите «Продолжить» еще раз, чтобы выполнить действие до конца.

oracle virtualbox

Затем вас спросят, хотите ли вы создать «динамически расширяющийся» или диск с фиксированным размером. У каждого есть свои преимущества. Самое замечательное в динамическом диске состоит в том, что он занимает ровно такой объем, сколько на нем содержится данных. Он также намного быстрее создается, чем фиксированный любого значительного размера.

Однако вам нужно следить за этим, потому что его гибкость также может быть его негативной чертой. Итак, вы создаете динамический диск и назначаете ему 50 ГБ, а затем размещаете на нем около 20 ГБ данных. Его файл будет отображаться как вмещающий только 20 ГБ места на жестком диске, в соответствии с вашей ОС хоста. Поэтому вы можете занять это место другими данными и не заметить этого.

Дело в том, что, если вы запустили виртуальную машину и попытаетесь добавить больше данных на динамический диск, у вас возникнут проблемы – на виртуальном диске говорится, что у него все еще есть 30 ГБ, но на самом деле их может уже не быть.

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

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

windows для virtualbox

Размер, который вы должны указать, зависит от того, сколько материала вы планируете использовать. Если вы просто хотите применить его для запуска нескольких программ, предлагаемого размера в 10 ГБ должно вполне хватить. Удостоверьтесь, что настройки верны, затем нажмите «Продолжить» и «Готово».

На этом этапе вам нужно всего лишь проверить все и убедиться, что все настройки установлены так, как вы ожидаете. Затем вам нужно просто щелкнуть «Готово», и виртуальная машина будет создана, чтобы вы могли установить Windows.

Загрузка гостевой ОС в VirtualBox

Как пользоваться сервисом дальше? Теперь пришло время запустить виртуальную машину в первый раз. Убедитесь, что новый виртуальный ПК, который вы только что создали, выбран в окне диспетчера VirtualBox, затем нажмите кнопку «Пуск» в верхней части окна. Когда сервис запускается, вы будете встречать окно First Run Wizard, которое поможет вам подготовиться к установке Windows XP. Нажмите «Продолжить». Затем откроется вопрос, что вы хотите использовать в качестве установочных носителей – компакт-диск или образ на вашем жестком диске (обычно в виде файла .iso). После того, как вы выбрали свой вариант, нажмите «Продолжить», затем «Готово».

Если вам не удалось открыть виртуальную машину VirtualBox после вышеуказанных настроек, вероятно, вы неправильно выделили место под RAM либо HDD. В случае, если перезагрузка не решает проблему, повторите предыдущие шаги заново.

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

После этого вы должны настроить XP, поэтому нажмите Enter. Появится вопрос, как вы хотите отформатировать привод. Вам нужно выбрать вариант «Отформатировать раздел с помощью файловой системы NTFS (Quick)». Убедитесь, что вы выбрали опцию «Быстрое», или вы будете ждать очень долгое время!

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

Когда ПК перезагрузится, он попытается включиться с компакт-диска с помощью окна «Нажмите любую клавишу для загрузки с компакт-диска …». Игнорируйте это! Если вы это сделаете, вы снова повторите предыдущий шаг без причин.

Вы можете предотвратить этот системный вопрос, щелкнув правой кнопкой мыши по значку компакт-диска в нижней части окна виртуальной машины и нажав «Удалить диск с виртуального диска». Как только это окно закроется, вы увидите знакомый экран загрузки Windows XP, прежде чем он переключится на второй этап установки.

Как только отобразится «Мастер установки Windows XP», нажмите «Далее», чтобы начать ее. Сначала вам будет предложено задать региональные и языковые параметры, которые в основном связаны с нажатием «Настроить …» (чтобы выбрать страну), а затем «Детали», если нужно изменить раскладку клавиатуры.

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

После нажатия «Далее» вы увидите настройки даты и времени, которые вам не нужно менять. При повторном нажатии этой кнопки окно исчезнет некоторое время, Windows применит все настройки и продолжит установку. Теперь вы можете использовать в VirtualBox гостевые дополнения.

Через минуту или две появится другое окно, на этот раз для сетевых настроек. Удобнее выбрать первый вариант (сеть, у которой нет домена). Для этого требуется ввести имя рабочей группы – по умолчанию Rward, и все значения по умолчанию. Однако вам может потребоваться выбрать «Поддержку Direct3D», когда вас попросят определить компоненты.

Как работать с сетью?

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

Oracle VM VirtualBox 5.1 позволяет настроить до 8 виртуальных сетевых адаптеров (контроллеров сетевого интерфейса) для каждого гостевого виртуального устройства (хотя в GUI только 4).

что такое virtualbox

Основные режимы:

  • Трансляция сетевых адресов (NAT).
  • Мостовые сети.
  • Внутренняя сеть.
  • Сеть только для хостинга.
  • NAT с переадресацией портов.

Oracle VirtualBox предлагает их как основанные на гостевом типе ОС, который вы указываете при создании виртуальной машины, и вам редко нужно их модифицировать. Но выбор сетевого режима зависит от того, как вы хотите использовать устройство (клиент или сервер) и хотите ли вы, чтобы другие компьютеры в вашей сети видели его. Итак, следует посмотреть на каждый режим настройки сети VirtualBox немного подробнее.

Трансляция сетевых адресов (NAT)

Это режим по умолчанию для новых виртуальных машин, который отлично работает в большинстве ситуаций, когда гостевая ОС является «клиентским» типом (т. е. большинство сетевых подключений являются исходящими). Вот как это работает.

Когда гостевая ОС загружается, она обычно использует DHCP для получения IP-адреса. Oracle VirtualBox отправит этот запрос DHCP и сообщит операционной системе о назначенном IP-адресе и адресе шлюза для маршрутизации исходящих соединений. В этом режиме каждой виртуальной машине присваивается один и тот же IP-адрес (10.0.2.15), потому что каждая из них считает, что она находится в своей изолированной сети. И когда они отправляют свой трафик через шлюз (10.0.2.2), VirtualBox перезаписывает пакеты, чтобы они отображались так, как если бы они исходили от хоста, а не от «гостя» (работающего внутри хоста).

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

Однако как другой компьютер инициирует соединение с ней? Например, вам требуется подключение к веб-серверу, запущенному на гостевом компьютере. Это невозможно (обычно) с использованием режима NAT, поскольку в гостевую ОС нет маршрута. Таким образом, для работающих серверов виртуальной машины вам нужен другой сетевой режим и иная настройка сети VirtualBox.

Подключение NAT (сетевые характеристики):

  • Гостевые ОС находятся в собственной частной сети.
  • VirtualBox действует как DHCP-сервер.
  • Механизм NAT VirtualBox переводит адреса.
  • Целевые серверы отображают трафик, исходящий от хоста VirtualBox.
  • Конфигурация не требуется для хоста или гостевой ОС.
  • Отлично работает, когда «гости» являются клиентами, но не серверами.

1. Настройка сети NAT

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

Перейти на вкладку “Сеть”:

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

На вкладке “Дополнительно” вы можете настроить марку устройства адаптера и MAC адрес:

Если вы собираетесь устанавливать туда в Windows, то лучше будет работать Intel PRO/1000 MT Desktop, а для Linux можно оставить AMD PCNet FAST III, так как он поддерживается всеми операционными системами.

2. Настройка сети NAT

В версии Virtualbox, начиная с 4.3 была добавлена поддержка сетей NAT, это работает очень похоже на виртуальный адаптер хоста, все машины, подключенные к одной сети могут получить доступ друг к другу, а доступ в интернет выполняется через NAT, но основная система доступа к гостевым не имеет. Чтобы настроить такое подключение нужно сначала создать сеть NAT. Для этого откройте “Файл” -> “Настройки”, “Сеть”. Здесь перейдите на вкладку “Сети NAT”. Дальше нажмите кнопку с зеленым плюсом, чтобы создать новую сеть:

Нажмите “Ok” и закройте это окно. Дальше откройте настройки для виртуальной машины, перейдите на вкладку “Сеть” -> “Адаптер 1”:

Выберите “Тип подключения”“Сеть NAT”, а “Имя” – только что созданную сеть.

Теперь все машины, подключенные к этой сети, будут доступны друг другу, как в VMWare.

Мостовые сети

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

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

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

Что делать, если вы хотите запускать серверы в виртуальной машине, но не хотите привлекать сетевой администратор? Может быть, один из следующих двух режимов подойдет для вас, или же вам потребуется комбинация дополнительных параметров, например NAT vNIC + 1 Host-only vNIC.

запуск virtualbox

Мостовые сетевые характеристики:

  • мосты VirtualBox предназначены для хост-сети;
  • хороши для любой гостевой ОС (как клиента, так и сервера);
  • используют IP-адреса;
  • могут включать конфигурацию гостя;
  • лучше всего подходят для производственных сред.

Что такое сетевой мост, и для чего он нужен

Как известно, для создания сетевых подключений и доступа в интернет может использоваться два типа соединения – проводное и беспроводное. Первый тип обеспечивает более стабильную связь для каждого терминала, подключенного к сети. Зато второй предполагает подключение сразу нескольких машин посредством объединения компьютеров в сеть через Wi-Fi (можно даже создать виртуальную сеть через интернет).

Сетевой мост (Network Bridge), по сути, является инструментом, позволяющим объединить оба подключения в одно целое. Для чего это нужно? Предположим, пользовательский компьютер к одной сети подключен через сетевую карту Ethernet, а ко второй – через Wi-Fi. Понятное дело, что между собой сети не соприкасаются (в проводной сети при попытке идентификации терминала с беспроводным подключением можно будет увидеть разве что только роутер). При создании моста эта проблема устраняется совершенно элементарно, плюс – повышается стабильность подключения.

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

4. Настройка сетевого моста VirtualBox

Режим сетевого моста позволяет виртуальной машине выступать в роли реального сетевого устройства с отдельным ip адресом. Чтобы это настроить откройте это же меню – настойки виртуальной машины, затем “Сеть”. Здесь выберите “Тип подключения”“Сетевой мост”:

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

Внутренняя сеть

внутренняя сеть

В VirtualBox возможно настроить сетевой интерфейс внутри гостевой машины. Так как куча гостевых машин делят между собой этот единственный интерфейс, они соединяются на манер коммутатора (свитча) и способны между собой общаться. Характеристиками такой сети являются быстрая настройка, возможность гостевых систем общаться между собой. При этом доступа из хозяйской ни в одну гостевую не будет. Равно как и никакая из гостевых машин не увидит хозяйскую ОС. Кроме того, гостевая система в интернет не выйдет. Сервер DHCP внутренней сети опять же нельзя настроить с помощью графического интерфейса – только командами из консоли.

внутренняя сеть virtualbox

5. Внутренняя сеть VirtualBox

Режим внутренняя сеть Virtualbox похож на “Виртуальный адаптер хоста”, за тем лишь исключением, что из хостовой системы доступа к гостевым не будет, и настроить все немного проще. Достаточно выбрать “Тип подключения” “внутренняя сеть”, а затем просто выбрать нужную сеть в поле “Имя”, или создать новую, просто изменив имя текущей.

Как видите, существует тип подключения NAT – где только интернет, Мост – где машина становится членом внешней сети, а все остальные – это настройка виртуальной сети virtualbox, где машины могут видеть друг друга.

Виртуальный адаптер хоста

виртуальный адаптер хоста

Виртуальный адаптер хоста – это такой тип сетевого соединения VirtualBox, когда VB создаёт хозяйский интерфейс, который может быть разделён между гостевыми машинами. Гости могут между собой разговаривать, при этом можно использовать отдельные гостевые сети. Фиксация IP адреса для каждой гостевой машины также возможна. Запросы по протоколу DHCP получают ответы с IP адреса гостевой ОС виртуального адаптера. Здесь DHCP-сервер можно настроить, используя интерфейс VirtualBox GUI. Однако для доступа из хозяйской ОС в гостевую необходим проброс портов, а также возможно придётся прибегнуть к редактированию hosts-файла хозяйки. И выхода в интернет из гостевой ОС также не будет.

3. Настройка адаптера виртуального хоста

Теперь задача немного интереснее – нам нужна локальная сеть virtualbox между несколькими виртуальными машинами и хостом. Для того чтобы все это заработало в Linux, нам нужно чтобы были загружены модули ядра vboxnetadp и vboxnetflt:

lsmod | grep vbox

Возможно, для их правильной работы вам придется установить пакет net-tools. Дальше нужно создать сам виртуальный адаптер. Для этого откройте меню “Файл”, затем “Настройки” -> “Сеть”. Затем нажмите кнопку с зеленым значком плюс, а затем “Ok”, все параметры можно оставить по умолчанию. В VirtualBox 5.2 и выше интерфейс был изменен. Теперь вам нужно открыть меню “Инструменты” -> “Менеджер сетей хоста”:

Нажмите кнопку “Создать”, затем, в появившемся адаптере, напротив пункта DHCP установите галочку “Включен”.

Теперь вернитесь к списку виртуальных машин, зайдите в настройки машины, “Сеть”:

Выберите “Тип подключения”“Виртуальный адаптер хоста”, а имя vboxnet0, тот, который вы создали раньше.

Для всех машин, которые вы хотите объединить в одну сеть нужно выбирать один и тот же адаптер хоста. Если вы захотите добавить машинам также доступ в интернет, просто перейдите на вкладку “Адаптер 2”, включите его и настройте NAT, как описано в первом пункте.

Сеть только для хостинга

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

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

Характеристики сети:

  • VirtualBox создает частную внутреннюю сеть для гостевых ОС, а хост видит новое программное обеспечение NIC.
  • VirtualBox предоставляет сервер DHCP.
  • Гостевые ОС не могут выйти во внешнюю сеть.

Универсальный драйвер

Этот тип подключения сети VirtualBox стоит особняком, “Window”-возы им пользуются отчасти. Смысл этого типа сетевого подключения – совместная работа разных гостевых машин на разных хозяйских ОС. Единственный вариант виртуальной сети, где без дополнительных свитчей и кабелей часто не обойтись. В составе Oracle VB эта сетевая настройка идёт лишь опционально. Для указанного режима существуют две настройки, которые имеют разный акцент:

  • UDP-туннель
  • Децентрализованная виртуальная сеть Ethernet (она же VDE-сеть)

Туннеллирование позволяет создавать виртуальную сеть между гостевыми ОС, которые находятся на различных хозяйских машинах. Технически это реализуется в виде выделения сетевых блоков данных (пересылаемых или получаемых гостевой машиной) в самостоятельный, выделенный модуль UDP-пакетов. Такие пакеты способны “гулять” по любой сети, на которую настроена хозяйская машина. Режим UDP туннеля имеет такие характеристики как

  • адресный UDP-порт (порт слушается “хозяйкой” и принимает данные со всех адресов, пересылая на сетевую карту гостевой машины)
  • IP адрес назначения хозяйской ОС
  • принимающий UDP порт

При этом гостевые ОС, сидящих на разных “хозяйках”, обмениваются IP адресами в прямом смысле этого слова. Если же хост один, это происходит с номерами UDP-портов.

VDE-сеть доступна только на ОС Linux и FreeBSD. Требует подключения специальных библиотек на хозяйской машине, по умолчанию VirtualBox идёт без них. Суть схемы – работа гостевых ОС, сидящих на разных хостах в защищённом режиме благодаря эмуляции интернета, дополнительной виртуализации VLAN, специальных связующих сетевых протоколов. В этой части настроек я, честно говоря, уже плаваю (на практике его использовать никогда не приходилось), и подробнее, чем эта Wiki-справка, мануала не обнаружил.

Успехов.

Рубрика Полезные программы внешний IP адрес через VBS скрипт
Как узнать внешний IP адрес из консоли команд Windows? Бездействие системы загружает процессор?

NAT с переадресацией портов

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

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

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

Настройте виртуальную машину для использования NAT-сети, добавьте правила переадресации портов, а внешние компьютеры подключите к «хосту». Номер порта и соединения будут перенаправлены VirtualBox на номер гостевой ОС.

Например, если ваша виртуальная машина запускает веб-сервер на порту 80, вы можете настроить вышеуказанные правила. Это обеспечивает мобильную демонстрационную систему, которая не нуждается в повторной настройке при каждом подключении вашего ноутбука к другой сети LAN/Network.

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

Добавить комментарийВыйти

  • 🙂
  • 🙁
  • :p
  • :]
  • 😮
  • 😀
  • :-/
  • :-$

×Войти через соцсети:×Вы действительно хотите удалить комментарий?Удалить×Причина жалобы Нежелательная реклама или спам Материалы сексуального или порнографического характера Дискриминационные высказывания или натуралистичный контент Оскорбления или угрозыСообщитьКомментироватьтекстареа>

Общие сетевые настройки

Выберите раздел Сеть в окне настроек виртуальной машины.

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

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

virtualbox настройки
Тип адаптера
– настройка позволяющая выбрать эмуляцию сетевой карты определенного вида. По умолчанию создается адаптер с эмуляцией сетевой карты – Intel PRO/1000 MT Desktop

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

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

MAC-адрес (Media Access Control) – уникальный идентификатор устройства в сети, один из главных параметров по которому может определяться тот или иной компьютер. MAC-адрес вшивается в каждую сетевую карту в процессе создания, то же что и imei в мобильных телефонах. В железных картах MAC изменить нельзя, но можно подменить программно. В Virtualbox изменить можно, нажав на синий кружочек в виде двух стрелочек. Генерируется автоматически при создании адаптера.

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


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

  • https://www.syl.ru/article/332005/virtualbox—nastroyka-seti-instruktsiya-oracle-vm-virtualbox
  • https://comphome.ru/virtualbox-virtualnaja-mashina/nastrojka-seti-virtualbox.html
  • https://losst.ru/nastrojka-seti-virtualbox
  • https://FB.ru/article/65396/aktiviruem-setevoy-most
  • https://computer76.ru/2019/05/02/%D1%82%D0%B8%D0%BF-%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D1%8F-%D1%81%D0%B5%D1%82%D0%B8-virtualbox/
  • https://techlist.top/virtualbox-network-settings-part-1/


[/spoiler]


2020-07-27T15:39:49
Linux

Резервное копирование в Linux – команда tar



























Rate this post

Аббревиатура tar предназначена для иллюстрации того, что отдельные файлы GZIP были сжаты настолько широко и максимально плотно, насколько это возможно. Упакованный файл может заканчиваться на .tar.gz и .tar.bz2. Иногда используется двойное окончание – .tar.gz. ZIP, который был разработан для слияния и сжатия, но оказался более мощным и поэтому в значительной степени подавляет файл .tar.

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

Расширения в формате .tar в основном предназначены для операционной системы Linux. В мире Windows они довольно необычны и редко встречаются. По этой причине система не может открыть эти файлы без дополнительного программного обеспечения.

Синтаксис командной строки

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

tar [OPERATION_AND_OPTIONS] [ARCHIVE_NAME] [FILE_NAME(s)]

  • OPERATION– Разрешается и требуется только один аргумент. Наиболее часто используемые операции:

    • –create( -c) – Создание нового tar-архива.
    • –extract( -x) – Извлечь весь архив или один или несколько файлов из архива.
    • –list( -t) – отобразить список файлов, включенных в архив

  • OPTIONS – Наиболее часто используемые операции:

    • –verbose( -v) – Показать файлы, обрабатываемые командой tar.
    • –file=archive=name( -f archive-name) – Указывает имя файла архива.

  • ARCHIVE_NAME – Название архива.
  • FILE_NAME(s)– список имен файлов, разделенных пробелами, которые нужно извлечь. Если не предусмотрено, весь архив будет извлечен.

При выполнении команды tar вы можете использовать длинную или краткую форму операций и параметров tar. Длинные формы более читабельны, а короткие формы – быстрее. Опции длинной формы имеют префикс двойной тире ( –). Параметры короткой формы имеют префикс с одним тире ( -), который можно опустить.

1. Создание архива tar

С помощью следующей команды создается архив archive.tar с подробным выводом информации, включающий файлы file1, file2 и file3:

tar –totals –create –verbose –file archive.tar file1 file2 file3

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

tar –totals -cvf archive.tar file1 file2 file3

Создание архива tar

Создание архива Tar Gz

Gzip – самый популярный алгоритм сжатия tar-файлов. При сжатии архивов tar с gzip имя архива должно заканчиваться либо tar.gzили tgz.

Чтобы создать архив tar.gz из заданных файлов, вы можете использовать следующую команду:

tar -czf archive.tar.gz file1 file2

Опция  -zсообщает tar сжать архив, используя алгоритм  gzip.

Создание архива Tar Bz2

Другим популярным алгоритмом сжатия tar-файлов является bzip2. При сжатии архивов tar с bzip2 имя архива должно заканчиваться либо tar.bz2 либо tbz.

Когда указана опция  -j , tar будет использовать алгоритм bzip2 сжатия архива.

Следующая команда создаст архив tar.bz2 из заданных файлов:

tar -cjf archive.tar.bz2 file1 file2

2. Просмотр содержимого архива

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

tar -tf archive.tar

Отображение архива

Листинг архива Tar

Чтобы перечислить содержимое tar-архива, используйте операцию –list( -t).

tar -tf archive.tarfile1 file2 file3

Если вы укажете содержимое архива с помощью параметра –verbose( -v), tar будет печатать больше информации, например, владельца, размера файла, метки времени и т.д.:

tar -tvf archive.tar-rw-r–r– linuxize/users 0 2018-09-08 20:15 file1 -rw-r–r– linuxize/users 0 2018-09-08 20:15 file2 -rw-r–r– linuxize/users 0 2018-09-08 20:15 file3

Извлечение архивов Tar Gz и Tar Bz2

При извлечении сжатых архивов, например, tar.gzили tar.bz2 вам не нужно указывать параметр декомпрессии. Команда такая же, как при извлечении архива tar:

tar -xf archive.tar.gztar -xf archive.tar.bz2

Извлечение определенных файлов из tar-архива

Чтобы извлечь определенные файлы из архива tar, добавьте список имен файлов, разделенных пробелами, которые будут извлечены после имени архива:

tar -xf archive.tar file1 file2

При извлечении файлов вы должны указать свои точные имена, включая путь, как напечатано –list( -t).

Извлечение одной или нескольких каталогов из архива аналогично извлечению файлов:

tar -xf archive.tar dir1 dir2

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

tar -xf archive.tar READMEtar: README: Not found in archive tar: Exiting with failure status due to previous errors

Извлечение файлов из архива Tar с помощью подстановочного знака

Чтобы извлечь файлы из архива на основе шаблона подстановочных знаков, используйте переключатель –wildcards и укажите шаблон, чтобы предотвратить интерпретацию оболочки.

Например, чтобы извлечь файлы, имена которых заканчиваются на .js(файлы Javascript), вы можете использовать:

tar -xf archive.tar –wildcards ‘*.js’

Добавление файлов в существующий архив

Чтобы добавить файлы или каталоги в существующий архив tar, используйте операцию –append( -r).

Например, чтобы добавить файл с именем newfile в archive.tar, вы можете использовать:

tar -rvf archive.tar newfile

Удаление файлов из tar-архива

Используйте операцию –delete для удаления файлов из архива.

Например, чтобы удалить файл с именем file1 из archive.tar, вы можете использовать:

tar –delete -f archive.tar file1

Общая информация по работе с Tar

  1. tar —help — вызов справки по командам и параметрам
  2. man tar  — вызов расширенной документации
  3. официальная документация по команде tar — ссылка

Архивация Zip в Linux

Архиватор zip — это звезда в мире ПО (ну не считая rar) этот формат очень популярен для windows систем и он по умолчанию уже встроен в чистую сборку операционной системы, поэтому только установив виндовус вы уже можете разархивировать файлы в формате zip

но давайте перейдем к делу, в Linux и Unix системах дела обстоят по другому, это формат Tar идет по умолчанию, а вот для zip надо  поставить пакет unzip

Установка:

  1. sudo apt-get update && apt-get upgrade
  2. sudo apt-get install unzip

Создание ZIP архива

Для начала запомним шаблон или синтаксис команды для создания архива zip в linux:

zip [опции] <имя файла.zip=””> [файлы или папки которые будем упаковывать]

Опции для создания архива tar:

  • r (recurse) — рекурсивное создание архива
  • s (size) — разбивка архива на определенный размер k (kB), m (MB), g (GB) или t (TB)
    пример: zip -s 300m <файл 1=”” гб=””>
    на выходе получим:
    file.zip (300 mb, master file)
    file.001.zip (300 mb)
    file.002.zip (300 mb)
    file.003.zip (100 mb)
  • P (password) — запаролировать архив  (можно использовать ключ e тогда пароль будете вводить в отдельной строке со звездочками )
    пример: zip -P мойпароль -r file.zip ./home/nibbl/foto
    пример2: zip -er file.zip ./home/nibbl/foto
  • x — исключаем файлы или каталоги из архива
  • 1-9 — степень сжатия (где 1 без сжатия, а 9 лучшее сжатие)

zip –r  -9 -P 123 — archive.zip /home/nibbl/desktop/myfile 

— данной командой мы заархивировали с сжатием папку myfile создали архив с именем archive.zip и установили пароль на архив 123

Творение tar-архива без сжатия в Linux

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

tar -cf filename.tar file1 file2 fileN

Метеопараметр —cf отвечает за создание архива filename.tar, в который войдут указанные файлы. Вместо файлов смогут быть указаны и директории.

Создание архива с использованием сжатия в Linux

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

Образчик сжатия Gzip:

tar -cvzf filename.tar.gz dir_name

В данном случае мы попытались запаковать папку dir_name в картотека filename.tar.gz. Из указанных параметров -z указывает на использование метода Gzip, а -v выводит результаты процесса творения архива с указанием упакованных файлов или папок.

Читайте также:  Настройка Iptables (примеры) Часть 2

Распаковать zip архив

рассмотрим синтаксис команды что бы распаковать или разархивировать tar архив :

unzip <имя файла.zip=””>

Опции для создания архива tar:

  • d (directory) — указать директорию для разархивации
  • l — вывести список файлов в архиве
  • d — удалить определенный файл или каталог из уже сделанного архива
  • v — показывает детальную информацию по файлам в архиве  ()

unzip <имя файла.zip=””> —  распаковываем архив в категорию в которой находимся
unzip <имя файла.zip=””> -d /home/nibbl/desktop — распаковываем архив на рабочий стол

Общая информация по работе с Zip

  1. zip —help или unzip —help   —  вызов справки по командам и параметрам
  2. man zip или man unzip  — вызов расширенной документации
  3. официальная документация по команде zip — ссылка

 

Прочие возможности tar в Linux

tar предоставляет множество полезных возможностей. Например, возможно указать файлы и каталоги, которые не будут включены в архив, добавить файлы (именованная область данных на носителе информации) в имеющийся архив (1) учреждение или структурное подразделение организации, осуществляющее хранение, комплектование, учёт и использование архивных документов; 2) собрание письменных памятников (рукописей, писем и т), взять список объектов для запаковки из текстового файла и много что ещё. Во всем обилии опций как всегда поможет разобраться

man tar

или же

tar –help

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

Программа для открытия файлов TAR в системе Windows

Особенно популярным и удобным программным обеспечением для распаковки и открытия файлов .tar.gz и .tar.bz2 в Windows является WinRAR.

Winrar признана классикой среди упаковочного ПО и может быть загружена в тестовой версии с сайта производителя WindowsRAR.ru. С ней файлы в системах Windows могут сжиматься намного эффективнее, чем с форматами ZIP. Лучшая и самая важная функция WinRAR понятна и отлично выполняется упаковщиком: экономит место на диске, время передачи. В дополнение к основной задаче, программное обеспечение предлагает множество других инструментов при архивировании файлов.

Главное преимущество WinRaR заключается в том, что она распознает двойные файлы и распаковывает их непосредственно за один шаг. Даже если вы дважды откроете .tar.gz и .tar.bz2, вы сможете напрямую просмотреть отдельные папки, упакованные в него с помощью архиватора. Это особенно удобно и стоит запомнить, поскольку на самом деле в формате .bz есть только один файл .TAR. Только в нем находятся отдельные оригинальные файлы.

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

Как распаковать TAR файл?

Уже во время установки ПО можно задать параметры, чтобы файлы .tar распаковывались с помощью WinRAR.

Если на жестком диске есть папка в формате .tar.gz, вы можете просто распаковать ее, дважды щелкнув, как и любой другой архив, поддерживаемый WinRAR.

Если вы не отметили TAR во время установки, файлы этого формата все еще можно извлечь, используя WinRAR.

Если архиватор уже открыт, перейдите в «Файл», чтобы найти путь, по которому находится папка .tar, и два раза кликните по маркеру.

Теперь содержимое архива должно отображаться в программе для открытия TAR файлов.

Как открыть и разархивировать файл TAR?

Если вы часто работаете с архивами .TAR, WindowsRAR следует установить в качестве стандартной для распаковки форматов .tar.gz и .tar.bz2. Если формат папки еще не связан с другим ПО сжатия, два раза нажмите папку TAR. Во втором случае кликните правой клавишей по маркеру упакованного файла TAR, выберите параметр “Открыть с помощью”. В новом окне теперь представлены программы, открывающие файлы в формате TAR.

Если WinRAR отсутствует в списке, выберите «Поиск» в нижней области. Теперь проследите путь, по которому расположен архиватор, и установите его как стандартную программу для открытия расширения TAR. Прежде чем подтвердить настройку нажатием «ОК», убедитесь, что в левой части флажок “Всегда открывать тип файла с выбранной программой”.

Примеры

gz

Распаковка .gz файла:

tar -xvf archive.tar.gz 

* при возникновении ошибки This does not look like a tar archive, можно воспользоваться командой gzip -d archive.tar.gz.

bz2

tar -xvjf archive.tar.bz2

* ключ j отвечает за работу с bz2.

Если система ругается на bzip2, значит нужно его установить:

yum install bzip2

apt-get install bzip2

pkg install bzip2

* соответственно, для CentOS (RPM based), Ubuntu (deb based), FreeBSD (BSD based).

Если видим ошибку tar: Unrecognized archive format, воспользуемся следующей командой:

bzip2 -d archive.tar.bz2

gzip

tar -xvzf archive.tar.gzip

* ключ z отвечает за работу с gzip.

tgz

Распаковывается, как gzip:

tar -xvzf archive.tgz

Распаковать в определенную папку

tar -C /home/user -xvf archive.tar.gz

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

Распаковка без вложенной папки

Такой способ можно использовать для распаковки в заранее подготовленный каталог. Будет некий эффект переименовывания каталога или аналог «Распаковать здесь»:

tar -C /home/admin/mytar -xvf admin.tar.gz –strip-components 1

* каталог /home/admin/mytar заранее должен быть создан; –strip-components 1 пропустит одну вложенную папку внутри архива.

Исключение файлов по маске

Если необходимо пропустить некоторые файлы, вводим команду с ключом –exclude:

tar -czvf archive.tar.gz /wwwsite –exclude=’sess_*’

* в данном примере мы создадим архив archive.tar.gz, в котором не будет файлов, начинающихся на sess_.


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

  • https://windowsrar.ru/tar
  • https://andreyex.ru/operacionnaya-sistema-linux/sozdanie-i-izvlechenie-arhivov-s-pomoshhyu-komandy-tar-v-linux/
  • https://losst.ru/komanda-tar-v-linux
  • https://www.nibbl.ru/ubuntu/komanda-tar-i-zip-v-linux.html
  • https://www.linux16.ru/articles/kak-v-linux-raspakovat-tar-gz.html
  • https://www.dmosk.ru/miniinstruktions.php?mini=tar-unix


[/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

Руководство по использованию команды “useradd” в Linux



























Rate this post

 

В этом руководстве показано, как создавать пользователей в Linux с помощью командной строки.

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

Создание

Синтаксис:

useradd <имя пользователя=””> [опции]

* опции не являются обязательными при создании пользователя.

Пример:

useradd dmosk

* в данном примере создается учетная запись dmosk.

Для учетной записи стоит сразу создать пароль:

passwd dmosk

* после ввода, система попросит ввести пароль дважды.

1. Как добавить нового пользователя в Linux

Для создания/добавления нового пользователя используется команда “useradd” с аргументом “username”, где username – это имя нового пользователя, которое будет использоваться для входа в систему.
За один раз можно добавить только одного пользователя, и его имя должно быть уникальным (то есть отличаться от имен других пользователей, уже существующих в системе).

Например, добавляем пользователя “techmint”:


[root@tecmint ~]# useradd tecmint

После выполнения данной команды, новый пользователь будет создан в заблокированном состоянии. Чтобы разблокировать пользовательский аккаунт, необходимо задать его пароль с помощью команды “passwd”.


[root@tecmint ~]# passwd tecmint Changing password for user tecmint. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.

После создания нового пользователя его запись автоматически добавляется в пароль “/etc/passwd” и имеет следующий вид:

tecmint:x:504:504:tecmint:/home/tecmint:/bin/bash

Она состоит из семи разделенных двоеточием полей, каждое из которых имеет свое назначение:

Username: имя пользователя, используемое для входа в систему. Может иметь длинц от 1 до 32 символов.
Password: пользовательский пароль (или символ x), который хранится в зашифрованном виде в файле /etc/shadow.
User ID (UID): каждый пользователь должен иметь User ID (UID) – идентификатор пользователя. По умолчанию UID 0 зарезервирован для root, а UID в диапазоне 1-99 для других предопределенных аккаунтов. UID в диапазоне 100-999 предназначены для пользовательских аккаунтов и групп.
Group ID (GID): идентификатор группы – Group ID (GID), хранится в файле /etc/group file.
User Info: это опциональное поле и оно позволяет вам задать дополнительную информацию о пользователе, например полное имя. Это поле заполняется с помощью команды “finger”.
Home Directory: абсолютный путь к домашней директории пользователя.
Shell: абсолютный путь к командной оболочке пользователя, например /bin/bash.

2. Создание пользователя с нестандартным размещением домашней директории

По умолчанию команда “useradd” создает домашнюю директорию пользователя в /home и называет ее именем пользователя. Поэтому, например, для приведенного выше примера, мы увидим домашнюю директорию созданного нами пользователя “tecmint” в “/home/tecmint”.
Однако это действие можно изменить с помощью опции “-d”, указав после нее расположение новой домашней директории. Например, приведенная ниже команда создаст пользователя “anusha” с домашней директорией “/data/projects”.


[root@tecmint ~]# useradd -d /data/projects anusha

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


[root@tecmint ~]# cat /etc/passwd | grep anusha anusha:x:505:505::/data/projects:/bin/bash

3. Создание пользователя с заданным User ID

В Linux каждый пользователь имеет свой собственный UID (Unique Identification Number). По умолчанию при создании нового пользователя ему присваивается userid 500, 501, 502 и т.д.
Но мы можем создать пользователя с заданным userid с помощью опции “-u”. Например, приведенная ниже команда создает пользователя “navin” с userid “999”.


[root@tecmint ~]# useradd -u 999 navin

Теперь мы можем проверить, что пользователь создан действительно с этим идентификатором.


[root@tecmint ~]# cat /etc/passwd | grep tecmint navin:x:999:999::/home/navin:/bin/bash

Замечание: Обратите внимание, что user ID должен отличаться от user ID пользователей, уже существующих в системе.

4. Создание пользователя с заданным Group ID

Аналогично, каждый пользователь имеет свой GID (Group Identification Number). Мы можем создавать пользователей с заданным group ID с помощью опции -g.

В этом примере мы добавим пользователя “tarunika” с заданными UID и GID:


[root@tecmint ~]# useradd -u 1000 -g 500 tarunika

Проверим, правильно ли сработала команда:


[root@tecmint ~]# cat /etc/passwd | grep tarunika tarunika:x:1000:500::/home/tarunika:/bin/bash

5. Добавление пользователя в несколько групп

Опция “-G” используется для добавления пользователя в дополнительные группы. Названия групп разделяются запятой без пробелов.
В приведенном ниже примере мы добавляем пользователя “tecmint” в группы admins, webadmin и developer.


[root@tecmint ~]# useradd -G admins,webadmin,developers tecmint

Теперь проверим, в каких группах числится пользователь, с помощью команды id.


[root@tecmint ~]# id tecmint uid=1001(tecmint) gid=1001(tecmint) groups=1001(tecmint),500(admins),501(webadmin),502(developers) context=root:system_r:unconfined_t:SystemLow-SystemHigh

6. Добавление пользователя без домашней директории

В некоторых ситуациях мы не хотим, по соображениям безопасности, давать пользователям домашние директории. В таком случае, когда пользователь авторизуется в системе сразу после ее запуска, его домашней директорией будет root. Если такой пользователь использует команду su, то он авторизуется в домашней директории предыдущего пользователя.
Для создания пользователя без домашней директории используется опция “-M”. Например, создадим пользователя “shilpi” без домашней директории.


[root@tecmint ~]# useradd -M shilpi

Давайте проверим, что пользователь создан без домашней директории, с помощью команды ls:


[root@tecmint ~]# ls -l /home/shilpi ls: cannot access /home/shilpi: No such file or directory

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

По умолчанию, когда мы добавляем пользователя с помощью команды “useradd”, его аккаунт не имеет сроков действия, то есть дата истечения сроков его жизни установена в 0 (никогда не истекает).
Однако мы можем установить дату истечения с помощью опции “-e”, задав дату в формате YYYY-MM-DD. Это полезно при создании временных аккаунтов для каких-то конкретных задач.
В приведенном ниже примере мы создаем пользователя “aparna” со сроком жизни его аккаунта до 27 апреля 2015 года в формате YYYY-MM-DD.


[root@tecmint ~]# useradd -e 2015-03-27 aparna

Далее, проверяем сроки действия аккаунта и пароля с помощью команды “chage”.


[root@tecmint ~]# chage -l aparna Last password change : Mar 28, 2014 Password expires : never Password inactive : never Account expires : Mar 27, 2015 Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7

8. Создание пользователя с ограниченным временем действия пароля

Аргумент “-f” используется для того, чтобы задать количество дней, через которое пароль перестанет действовать. По умолчанию его значение равно -1, при этом время действия пароля не ограничивается.
В примере мы задаем для пользователя “tecmint” время действия пароля 45 дней с помощью опций “-e” и “-f”.


[root@tecmint ~]# useradd -e 2014-04-27 -f 45 tecmint

Ключи (опции)

КлючОписание и примеры
























-bЗадает базовый каталог для домашнего каталога
useradd dmosk -b /var/home
-cСоздает комментарий для описания учетной записи
useradd dmosk -c “Пользователя для управления системой”
-dПолный путь к домашнему каталогу пользователя
useradd dmosk -d /home/newuser
-DПозволяет показать или изменить настройки по умолчанию, которые будут применяться при последующем создании пользователей
useradd dmosk -Ds /bin/bash
-eДата, после которой учетная запись устареет.
useradd dmosk -e 2017-12-31
-fЧисло дней, после которого учетная запись с устаревшим паролем будет заблокирована
useradd dmosk -f 0
-gЗадает основную группу
useradd dmosk -g altternativegroup
-GЗадает дополнительные группы
useradd dmosk -G wheel
-kПуть к источнику скелета (файлы с шаблонами для нового пользователя)
useradd dmosk -k /var/skel
-mПри создании пользователя создать домашний каталог
useradd dmosk -m
-MНе создавать домашний каталог
useradd dmosk -M
-NНе создавать основную группу с таким же именем, как у пользователя
useradd dmosk -N
-oРазрешает создание учетной записи с повторяющимся UID
useradd dmosk -u 15 -o
-pЗадает пароль
useradd dmosk -p pass
-rСистемная учетная запись (без домашнего каталога и с идентификаторами в диапазоне SYS_UID_MIN – SYS_UID_MAX из файла /etc/login.defs)
useradd dmosk -r
-RКаталог, в который выполняется chroot
useradd dmosk -R /var/chroot/home
-sПуть до оболочки командной строки
useradd dmosk -s /bin/csh
-uЗадает UID
useradd dmosk -u 666
-UИмя группы будет таким же, как у пользователя
useradd dmosk -U

Актуальный список ключей можно получить командой useradd -h.

Редактирование

Синтаксис:

usermod <имя пользователя=””> [опции]

Пример:

usermod dmosk -G wheel

* эта команда добавит пользователя dmosk в группу wheel

Удаление

Синтаксис:

userdel <имя пользователя=””> [опции]

Пример:

userdel dmosk

Блокировка

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

usermod -L <имя пользователя=””>

Пример:

usermod -L dmosk

Чтобы разблокировать пользователя, вводим:

usermod -U <имя пользователя=””>

Работа с группами

Добавление:

groupadd <группа> [опции]

Редактирование:

groupmod <группа> [опции]

Удаление:

groupdel <группа> [опции]

Примеры работы с учетными записями

Команда useradd

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

useradd NewUser

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

Например, в нашей системе указанная выше команда добавила следующую запись в файл /etc/passwd.

Команда useradd в Linux

Если вы читали статью о перечислении пользователей в Linux, вы, вероятно, уже знакомы с содержанием файла /etc/passwd. Сначала это выглядит хорошо, но если вы начнете копать, вы скоро заметите, что некоторые вещи не совсем правильные.

Во-первых, второе поле содержит «х». Это означает, что заполнитель для информации о пароле находится в /etc/shadow. Но мы не установили пароль. Это означает, что тестовый пользователь не сможет войти в систему.

Во-вторых, домашний каталог. Дело в том, что /home/test не существует. Даже после того, как вы установили пароль, произойдет ошибка, если пользователь войдет в систему. В зависимости от другой конфигурации ваша система Linux может запретить пользователю входить без действительного домашнего каталога. Скорее всего, пользователь test позволит войти в систему, по крайней мере, в текстовом режиме. Но пользователь test не сможет создать свой домашний каталог.

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

В то время как useradd-х поведение можно немного изменить, отредактировав /etc/login.defs, существует мало шансов, что приведенная выше команда создаст полную учетную запись пользователя. Useradd является низкоуровневая утилита. Тем не менее, просмотр настроек в /etc/login.defs может быть полезен.

Синтаксис команды useradd

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

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

useradd опцииимяпользователя

Создание нового пользователя

Чтобы просто создать пользователя используется команда useradd без каких-либо опций. Указывается только имя пользователя.

sudo useradd pupkin

Данная команда создает нового пользователя с системными параметрами по умолчанию, которые прописаны в файле /etc/default/useradd

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

sudo passwd pupkin

Создание нового пользователя с домашней директорией в /home

Создадим пользователя и его домашнюю директорию.

sudo useradd -m pupkin

Домашняя директория создается по умолчанию в каталоге /home. Имя директории совпадает с именем пользователя.

Создание нового пользователя с произвольной домашней директорией

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

Создаем домашнюю директорию для будущего пользователя:

sudo mkdir -p /users/pupkin

Копируем файлы и директории, которые по умолчанию создаются в домашней директории пользователя в данной системе. Данные файлы находятся в директории /etc/skel

sudo cp -rT /etc/skel /users/pupkin

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

sudo useradd -d /users/pupkin pupkin

Меняем права доступа у домашней директории:

sudo chown -R pupkin:pupkin /users/pupkin

Задаем пароль для пользователя:

sudo passwd pupkin

Можно просмотреть информацию о пользователе, которая сохранена в файле /etc/passwd

cat /etc/passwd | grep pupkin pupkin:x:1001:1001::/users/pupkin:/bin/sh

Команда useradd. Создание пользователя с произвольной домашней директорией

Создание нового пользователя с произвольными UID, GID

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

При создании пользователя можно задать произвольные номера UID и/или GID. При указании номера группы, группа с этим номером должна быть создана заранее.

useradd -u 1234 -g 1222 pupkin

Создание пользователя с указанием оболочки (shell)

По умолчанию новые пользователи создаются с оболочкой /bin/sh Чтобы задать другую оболочку, используется опция -s /путь/до/оболочки

sudo useradd -m -s /bin/bash pupkin

Смотрите также: Как определить и изменить командную оболочку (shell) в Linux

Создать пользователя и добавить его в группы

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

sudo useradd -m -G adm,cdrom,wheel -s /bin/bash pupkin

Смотрите также: «Добавление пользователя в группу. Списки пользователей и групп в Linux»

В чем отличия adduser и useradd?

useradd — это низкоуровневая утилита для создания пользователей в Linux.

adduser — представляет собой более простое решение для создания пользователей и по факту является надстройкой над useradd, groupadd и usermod.

Утилита adduser доступна не во всех дистрибутивах Linux. Реализация adduser также может отличаться. Если в дистрибутиве присутствует утилита adduser, то для создания пользователей рекомендуется использовать именно ее.

Команда Adduser

Adduser недоступен. в некоторых дистрибутивах Linux. На других это мягкая ссылка на useradd. В то время как на некоторых других, это сценарий Perl.

Adduser – это интерактивная утилита высокого уровня. В качестве бэкэнда используется утилита низкого уровня useradd. Настройки в /etc/login.defs будут использоваться при использовании adduser. На дистрибутивах, основанных на Debian, даже страница man рекомендует использовать его с помощью команды useradd.

Вызов adduser только с именем пользователя проведет вас через ряд вопросов.

Команда Adduser

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

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

sudo useradd -d /home/test -m -s/bin/bash -c FullName,Phone,OtherInfo test && passwd test

В опции -с могут быть удалены без проблем, то разделенный запятыми список, который следует будут добавлены комментарии к /etc/passwd. Но даже тогда adduser сохраняет две дополнительные команды.

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

  • –system: добавить системного пользователя. По умолчанию системные пользователи помещаются в группу nogroup. Чтобы добавить системного пользователя в существующую группу, укажите параметр –gid или –ingroup.
  • –home DIR: использовать DIR в качестве домашнего каталога вместо стандартного. При необходимости будет создан каталог и скопированы файлы скелета.
  • –shell SHELL: используйте SHELL вместо значения по умолчанию.
  • –ingroup GROUP: установить первичную группу пользователя на GROUP
  • –add_extra_groups: добавить нового пользователя в дополнительную группу, определенную в файле конфигурации.

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

  • Оболочка по умолчанию
  • Домашний каталог
  • Дополнительные группы
  • Добавить дополнительные группы


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

  • https://linuxinsider.ru/kak-sozdat-polzovatelya-linux/
  • https://www.dmosk.ru/miniinstruktions.php?mini=linux-users
  • http://rus-linux.net/MyLDP/consol/15-primerov-po-useradd.html
  • https://andreyex.ru/linux/komandy-linux-i-komandy-shell/useradd-protiv-adduser-v-chem-raznitsa/
  • https://pingvinus.ru/note/useradd


[/spoiler]


2020-07-27T15:39:49
Linux

Samba-сервер в локальной сети с Linux и Windows



























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

 

Файловый сервер работает по протоколу SMB/CIFS и позволяет предоставить доступ к общим ресурсам в локальной сети, например, текстовым файлам или сетевым принтерам. Для его развертывания на Windows используются штатные средства ОС, на Linux используется файловый сервер Samba.

В инструкции рассмотрена настройка файлового сервера на серверах с операционными системами Linux и Windows. На сервере будет находиться 2 каталога – публичный и приватный. К файловому серверу подключение будет происходить как с операционной системы Windows, так и с Linux, т.к. в виртуальной или физической локальной сети могут находиться серверы с разными ОС.

Схема Samba

Создание и настройка частной сети

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

После создания необходимо объединить все машины в единую локальную сеть через панель управления в разделе Сети. В результате серверы получат локальные IP-адреса.

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

  1. Настройка сетевого адаптера в Ubuntu и Debian
  2. Настройка сетевого адаптера в CentOS
  3. Настройка сетевого адаптера в Windows

Настройка файлового сервера

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

Подготовка системы

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

Противоположность им “горячие данные” – это данные которые интенсивно используются и изменяются, для файлового сервера примером таких данных может служить файловая информационная база 1С:Предприятия. Между ними находятся обычные данные, характер доступа к которым не имеет каких-либо особенностей.

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

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

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

samba-debian-001.png

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

После установки ОС следует изменить настройку лимита на количество одновременно открытых файлов, в Linux это 1024, а в Windows 16384. Для этого откройте файл /etc/security/limits.conf и добавьте в конце две строки:

* – nofile 16384
root – nofile 16384

После чего сервер следует перезагрузить.

Настройка файлового сервера на Linux (Debian/Ubuntu)

Для развертывания файлового сервера на системах Linux используется инструмент SAMBA. Ниже перечислены действия по его установке и настройке.

Прежде всего следует обновить локальную базу пакетов:

apt-get update

Далее установите пакеты из главного репозитория:

apt-get install -y samba samba-client

Создайте резервную копию файла конфигурации Samba:

cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

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

mkdir -p /samba/public

Перейдите к этому каталогу и измените режим доступа и владельца:

cd /samba
chmod -R 0755 public

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

mkdir /samba/private

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

groupadd smbgrp

Создайте нужных пользователей с помощью команды useradd:

useradd user1

Добавьте созданных пользователей в группу:

usermod -aG smbgrp user1

Измените группу, которой принадлежит приватная директория:

chgrp smbgrp /samba/private

Задайте пароль, с помощью которого пользователь будет подключаться к каталогу:

smbpasswd -a user1

Откройте файл конфигурации на редактирование с помощью текстового редактора, например nano:

nano /etc/samba/smb.conf

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


[global]workgroup = WORKGROUP
security = user
map to guest = bad user
wins support = no
dns proxy = no
[public]path = /samba/public
guest ok = yes
force user = nobody
browsable = yes
writable = yes
[private]path = /samba/private
valid users = @smbgrp
guest ok = no
browsable = yes
writable = yes

Сохраните внесенные изменения, нажав CTRL+X, затем Enter и Y.

Значения параметров выше:

  • global – раздел с общими настройками для Samba сервера
  • workgroup – рабочая группа Windows, WORKGROUP – значение по умолчанию для всех Windows машин, если вы не меняли самостоятельно
  • security – режим безопасности, значение user означает аутентификацию по логину и паролю
  • map to guest – задает способ обработки запросов, bad user – запросы с неправильным паролем будут отклонены, если такое имя пользователя существует
  • wins support – включить или выключить поддержку WINS
  • dns proxy – возможность запросов к DNS
  • public – название общего каталога, которое будут видеть пользователи сети, может быть произвольным и не совпадать с именем директории
  • path – полный путь до общего каталога
  • browsable – отображение каталога в сетевом окружении
  • writable – использование каталога на запись, инверсия read only
  • guest ok – авторизация без пароля
  • force user – пользователь по умолчанию
  • valid users – список пользователей, у которых есть доступ к каталогу, через @ указывается unix-группа пользователей

Проверить настройки в smb.conf можно с помощью команды:

testparm -s

Чтобы изменения вступили в силу, перезапустите сервис:

service smbd restart

Далее нужно настроить firewall, открыв порты, которые использует SAMBA. Настоятельно рекомендуем разрешить только подключения из локального диапазона IP-адресов или виртуальной частной сети. Адресное пространство вашей частной сети вы можете увидеть в панели управления 1cloud.

Замените значение параметра –s в правилах ниже для соответствия адресному пространству вашей частной сети. Как правило префикс сети /24, если вы явно не подразумеваете иного:

iptables -A INPUT -p tcp -m tcp –dport 445 –s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -p tcp -m tcp –dport 139 –s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -p udp -m udp –dport 137 –s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -p udp -m udp –dport 138 –s 10.0.0.0/24 -j ACCEPT

Теперь необходимо сделать так, чтобы указанные выше правила фаервола iptables были сохранены после перезагрузки машины. Для это установим пакет iptables-persistent:

apt-get install iptables-persistent

После установки откроется окно с предложением последовать запомнить текущие правила iptables для IPv4 и IPv6. Подтвердите это действие.

Проверить актуальные правила iptables можно командой:

iptables -L

В выводе команды вы должны увидеть ранее добавленные разрешающие политики (Accept).

Настройка общего ресурса с гостевым доступом

Начнем с самого простого варианта – создадим общий ресурс, доступ к которому может иметь любой пользователь. Для этого добавим в конец файла /etc/samba/smb.conf следующие строки.


[public]comment = Shared for all
path = /samba/public
read only = no
guest ok = yes

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

  • comment – описание ресурса, необязательный параметр;
  • path – путь к директории;
  • read only – режим только чтения, указываем no>;
  • guest ok – разрешен ли гостевой доступ, указываем yes>;

Теперь создадим саму директорию:

mkdir /samba/public

и установим на нее необходимые права, для гостевого ресурса это 777:

chmod 777 /samba/public

Перезапускаем Samba и пробуем получить доступ с любого Windows-клиента.

samba-debian-002.png
Если все сделано правильно, то сервер появится в сетевом окружении, и вы без проблем получите доступ к созданной нами общей папке.

Настройка корзины для общего ресурса

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

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

vfs objects = recycle
recycle:repository = .recycle
recycle:versions = yes
recycle:keeptree = yes

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

Перезапустим Samba и попробуем что-нибудь удалить.

samba-debian-005.png
Несмотря на грозное предупреждение Проводника удаляемые файлы перемещаются в корзину, откуда мы их можем восстановить.

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

Настройка общего публичного каталога на Windows