воскресенье, 9 октября 2016 г.

Как скачать сайт целиком при помощи WebHTTrack?

А Linux предлагает нам для этого прекрасную бесплатную программу, которая называется WebHTTrack Website Copier. Установить программу мы можем через Synaptic, введя в окно поиска слово "webhttrack" или установить её через терминал командой:
sudo apt-get install webhttrack
Попутно установится ещё одна программа, которая является спутником WebHTTrack Website Copier и представляет из себя менеджер скачанных сайтов. Вам не нужно будет постоянно лезть в папку со скачанными сайтами и искать индексные страницы. Достаточно будет запустить Browse Websites Mirrored by WebHTTrack и в открывшемся браузере вы увидите список всех скачанных вами сайтов.
Что нужно сделать, чтобы скачать хороший веб проект полностью в Linux при помощи WebHTTrack Website Copier? Заходим в меню программ, в раздел ИНТЕРНЕТ, и запускам программу.
После того как вы запустите программу из меню, у вас откроется страница в браузере. Именно через веб интерфейс предоставляются все настройки программы. Можно ничего не настраивать, просто в строке "Имя нового проекта" написать название проекта, который вы будете закачивать и ниже указать путь к той папке, в которую будут закачиваться файлы.
После нажмите кнопку "Далее" и появившейся форме впишите адрес сайта, который вы планируете сохранить:
После этого нажмите кнопку "Вперёд" и дальше "Начать". Ну вот, процесс пошёл, закачка вебсайта целиком на компьютер началась!
Вот таким способом загрузить любой web ресурс в Linux можно просто и главное бесплатно!
Но можно сделать всё это одной командой при помощи консольной программы!

Скачиваем сайты целиком - утилита wget

wget — это утилита, которая предназначена для загрузки файлов по сети (из интернета). Я расскажу, как использовать wget, чтобы скачивать сайты из интернета целиком и затем просматривать их в автономном режиме.
С помощью wget можно скачивать сайты, включая картинки, всего лишь указав адрес сайта и определенные параметры. wget будет автоматически переходить по ссылкам на сайте и скачивать страницу за страницей. Рассмотрим несколько примеров от простых к более сложным использования wget для скачивания сайтов.
Чтобы скачать сайт целиком с помощью wget нужно выполнить команду:
wget -r -k -l 7 -p -E -nc http://site.com/
После выполнения данной команды в директорию site.com будет загружена локальная копия сайта http://site.com. Чтобы открыть главную страницу сайта нужно открыть файл index.html.
Рассмотрим используемые параметры:
-rуказывает на то, что нужно рекурсивно переходить по ссылкам на сайте, чтобы скачивать страницы.
-kиспользуется для того, чтобы wget преобразовал все ссылки в скаченных файлах таким образом, чтобы по ним можно было переходить на локальном компьютере (в автономном режиме).
-pуказывает на то, что нужно загрузить все файлы, которые требуются для отображения страниц (изображения, css и т.д.).
-lопределяет максимальную глубину вложенности страниц, которые wget должен скачать (по умолчанию значение равно 5, в примере мы установили 7). В большинстве случаев сайты имеют страницы с большой степенью вложенности и wget может просто «закопаться», скачивая новые страницы. Чтобы этого не произошло можно использовать параметр -l.
-Eдобавлять к загруженным файлам расширение .html.
-ncпри использовании данного параметра существующие файлы не будут перезаписаны. Это удобно, когда нужно продолжить загрузку сайта, прерванную в предыдущий раз.

Мы рассмотрели лишь одно из возможных применений утилиты wget. На самом деле область применения wget значительно шире и wget обладает большим числом дополнительных параметров. За более подробной информацией обращайтесь к руководству, выполнив в командной строке: man wget.

пятница, 7 октября 2016 г.

Права доступа к файлам в Linux

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

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

Изначально каждый файл имел три параметра доступа. Вот они:
  • Чтение - разрешает получать содержимое файла, но на запись нет. Для каталога позволяет получить список файлов и каталогов, расположенных в нем;
  • Запись - разрешает записывать новые данные в файл или изменять существующие, а также позволяет создавать и изменять файлы и каталоги;
  • Выполнение - вы не можете выполнить программу, если у нее нет флага выполнения. Этот атрибут устанавливается для всех программ и скриптов, именно с помощью него система может понять, что этот файл нужно запускать как программу.
Но все эти права были бы бессмысленными, если бы применялись сразу для всех пользователей. Поэтому каждый файл имеет три категории пользователей, для которых можно устанавливать различные сочетания прав доступа:
  • Владелец - набор прав для владельца файла, пользователя, который его создал или сейчас установлен его владельцем. Обычно владелец имеет все права, чтение, запись и выполнение.
  • Группа - любая группа пользователей, существующая в системе и привязанная к файлу. Но это может быть только одна группа и обычно это группа владельца, хотя для файла можно назначить и другую группу.
  • Остальные - все пользователи, кроме владельца и пользователей, входящих в группу файла.
Именно с помощью этих наборов полномочий устанавливаются права файлов в linux. Каждый пользователь может получить полный доступ только к файлам, владельцем которых он является или к тем, доступ к которым ему разрешен. Только пользователь Root может работать со всеми файлами независимо от их набора их полномочий.
Но со временем такой системы стало не хватать и было добавлено еще несколько флагов, которые позволяют делать файлы не изменяемыми или же выполнять от имени суперпользователя, их мы рассмотрим ниже:

Специальные права доступа к файлам в Linux

Для того, чтобы позволить обычным пользователям выполнять программы от имени суперпользователя без знания его пароля была придумана такая вещь, как SUID и SGID биты. Рассмотрим эти полномочия подробнее.
  • SUID - если этот бит установлен, то при выполнении программы, id пользователя, от которого она запущена заменяется на id владельца файла. Фактически, это позволяет обычным пользователям запускать программы от имени суперпользователя;
  • SGID - этот флаг работает аналогичным образом, только разница в том, что пользователь считается членом группы, с которой связан файл, а не групп, к которым он действительно принадлежит. Если SGID флаг установлен на каталог, все файлы, созданные в нем, будут связаны с группой каталога, а не пользователя. Такое поведение используется для организации общих папок;
  • Sticky-bit - этот бит тоже используется для создания общих папок. Если он установлен, то пользователи могут только создавать, читать и выполнять файлы, но не могут удалять файлы, принадлежащие другим пользователям.
Теперь давайте рассмотрим как посмотреть и изменить права на файлы в linux.

Как посмотреть права доступа к файлам в Linux

Конечно, вы можете посмотреть права доступа к файлам в Linux с помощью файлового менеджера. Все они поддерживают эту функцию, но так вы получите неполную информацию. Для максимально подробной информации обо всех флагах, в том числе специальных, нужно использовать команду ls с параметром -l. Все файлы из каталога будут выведены в виде списка, и там будут показаны все атрибуты и биты.
Чтобы узнать права на файл linux выполните такую команду, в папке где находится этот файл:
$ ls -l
За права файлов в linux тут отвечают черточки. Первая это тип файла, который рассмотрен в отдельной статье. Дальше же идут группы прав сначала для владельца, для группы и для всех остальных. Всего девять черточек на права и одна на тип.
Рассмотрим подробнее, что значат условные значения флагов прав:
  • --- - нет прав, совсем;
  • --x - разрешено только выполнение файла, как программы но не изменение и не чтение;
  • -w- - разрешена только запись и изменение файла;
  • -wx - разрешено изменение и выполнение, но в случае с каталогом, вы не можете посмотреть его содержимое;
  • r-- - права только на чтение;
  • r-x - только чтение и выполнение, без права на запись;
  • rw- - права на чтение и запись, но без выполнения;
  • rwx - все права;
  • --s - установлен SUID или SGID бит, первый отображается в поле для владельца, второй для группы;
  • --t - установлен sticky-bit, а значит пользователи не могут удалить этот файл.
В нашем примере, файл test1 имеет типичные разрешения для программ, владелец может все, группа только чтение и выполнение, а все остальные - только выполнение. Для test2 дополнительно установлен флаг SUID и SGID. А для папки test3 установлен Sticky-bit. Файл test4 доступный всем. Теперь вы знаете как посмотреть права на файл linux.

Как изменить права файла в Linux

Чтобы изменить права на файл в linux вы можете использовать утилиту chmod. Она позволяет менять все флаги, включая специальные. Рассмотрим ее синтаксис:
$ chmod опции категориядействиефлаг файл
Опции сейчас нас интересовать не будут, разве что только одна. С помощью опции -R вы можете заставить программу применять изменения ко всем файлам и каталогам рекурсивно.
Категория указывает для какой группы пользователей нужно применять права, как вы помните доступно только три категории:
  • u - владелец файла;
  • g - группа файла;
  • o - другие пользователи.
Действие может быть одно из двух, либо добавить флаг "+", либо убрать флаг - "-". Что касается самих прав доступа, то они аналогичны выводу утилиты ls: r - чтение, w - запись, x - выполнение, s - suid/sgid, в зависимости от категории, для которой вы его устанавливаете, t - устанавливает sticky-bit. Например, всем пользователям полный доступ к файлу test5:
$ chmod ugo+rwx test5
Или заберем все права у группы и остальных пользователей:
$ chmod go-rwx test5
Дадим группе право на чтение и выполнение:
$ chmod g+rx test5
Остальным пользователям только чтение:
$ chmod o+r test5
Для файла test6 установим SUID:
$ chmod u+s test6
А для test7 - SGID:
$ chmod g+s test7
Посмотрим что получилось:
$ ls -l
Как видите, изменить права на файл в linux очень просто. К тому же вы можете изменить основные права с помощью файлового менеджера.

Выводы

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

вторник, 27 сентября 2016 г.

Менеджеры буфера обмена

Зачастую вы сильно разочаровывались, скопировав что-то в буфер обмена, а затем очистив его, когда отвлеклись на кого-то или что-то другое. И когда такое происходит, это может вызывать сильное раздражение.
Но как избавиться от подобного разочарования? На данный вопрос мы собираемся ответить в этой статье. Ниже мы рассмотрим менеджеры буфера обмена linux, которые помогут вам управлять и отслеживать содержимое буфера обмена.

Что такое менеджер буфера обмена?

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

Зачем же на самом деле вам нужен менеджер буфера обмена?

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

1. CopyQ

copyq-clipboard-manager
Это расширенный менеджер буфера обмена, который доступен на большинстве, если не на всех платформах. Он имеет функции редактирования и создания сценариев, включая некоторые из следующих действий:
  • Контроль командной строкой и использование сценариев;
  • Возможность поиска;
  • Поддержка формата изображений;
  • Редактирование истории;
  • Настройка меню утилиты в трее;
  • Полностью настраиваемый внешний вид;
  • Разнообразие общесистемных ярлыков и многое другое.

2. GPaste

Это мощный и большой менеджер буфера обмена для дистрибутивов на базе GNOME, однако он также может работать и на других дистрибутивах.
gpaste-clipboard-manager
Он имеет такие функции, как:
  • Интеграция с оболочкой GNOME;
  • Управление историей буфера обмена;
  • Ярлыки быстрого доступа;
  • Копирование изображений;
  • Графический интерфейс GTK+ 3.

3. Klipper

Klipper - это менеджер буфера обмена для дистрибутива KDE. Он обладает основными функциями, аналогичными тем, что предлагаются в Gpaste, но также имеет некоторые свои особенности, например, команды в буфер обмена linux.
klipper-clipboard-manager
Некоторые из особенностей включают в себя:
  • Управление историей;
  • Ярлыки быстрого доступа;
  • Копирование изображений;
  • Создание пользовательских команд.

4. Clipman

Это облегченный вариант плагина буфера обмена для дистрибутива XFCE, кроме того, он хорошо работает на схожих с XFCE дистрибутивах, таких как Xubuntu.
clipman-clipboard-manager
Богатый функционал включает следующее:
  • Управление историей;
  • Ярлыки быстрого доступа;
  • Игнорирование закрытия приложений;
  • Поддержка твиков и многое другое.

5. Diodon

Это легкий, но одновременно мощный менеджер буфера обмена, предназначенный для работы с дистрибутивами, построенными на Unity и GNOME.
diodon-clipboard-manager
Он имеет следующие особенности, аналогичные другим утилитам управления буфером обмена:
  • Интеграция с рабочим столом;
  • Управление историей, включая ее размер и так далее;
  • Ярлыки быстрого доступа;
  • Копирование изображений.

6. Pastie

pastie-clipboard-manager
Это простой менеджер буфера обмена для Ubuntu, также он может использоваться с AppIndicator. В него включены несколько классных функций, которые выделяются среди прочего:
  • Поддержка копирования изображений;
  • Настраиваемый интерфейс;
  • Ярлыки быстрого доступа и многое другое.

7. Parcellite

Это урезанная, облегченный GTK+ 2, обладает основными функциями менеджера буфера обмена для Linux.
parcellite-clipboard-manager
Он имеет следующие функции:
  • Управление историей;
  • Режим демона;
  • Быстрое копирование содержимого экрана в буфер обмена linux с использованием горячих клавиш;
  • Выполнение пользовательских команд, используя содержимое буфера обмена.

8. Glipper

Это инструмент управления буфером обмена для дистрибутива GNOME, пользователи могут расширить его функциональные возможности с помощью плагинов. В настоящее время он используется с AppIndicator, для поддержки Unity и Gnome Classic в среде Ubuntu.
glipper-clipboard-manager
Glipper обладает большинством основных функций, в том числе управлением историей буфера обмена.

9. Clipit

Это легкий GTK+ менеджер буфера обмена. У него богатый функционал и он практически является копией Parcellite, но включает в себя некоторые дополнительные функции и исправления ошибок.
clipit-clipboard-manager
Он имеет следующие особенности:
  • Сохранение истории последней скопированной области;
  • Глобальные горячие клавиши для наиболее часто используемых функций;
  • Захват статических элементов;
  • Исключение определенных элементов из истории;
  • Возможность поиска в истории и многое другое;

10. Keepboard

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

Выводы

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

Источник

пятница, 23 сентября 2016 г.

Программы слежения за компьютером Linux

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

1. Top - просмотр активных процессов

Программа показывает запущенные процессы и их характеристики в реальном времени. По умолчанию отображаются процессы, использующие больше всего ресурсов процессора. Кроме этого, вы можете увидеть в программе сколько она использует памяти, ядер процессора, и время работы процесса. Список обновляется каждые несколько секунд.
monitoring
Давайте рассмотрим несколько горячих клавиш, которые будут вам полезны при работе с утилитой:
  • t - отобразить общую информацию по всей системе;
  • m - отобразить информацию о памяти;
  • A - создает на одном экране несколько топов процессов по максимального потребления ресурсов. Может быть полезным для быстрого выявления самых ресурсоемких процессов;
  • f - выводит интерактивный экран настройки, позволяет быстро найти определенную задачу;
  • o - фильтры процессов;
  • r - выполнить утилиту renice для текущего процесса, позволяет изменить приоритет процесса;
  • k - выполнить утилиту kill для этого процесса;
  • z - отключить цветной вывод.
Эта утилита будет незаменимой при отслеживании перегрузок системы, с помощью нее вы сможете очень быстро и просто выявить какая программа потребляет все ресурсы.

2. vmstat

Эта команда показывает подробную информацию о памяти, процессах, страницах памяти, операциях ввода/вывода и нагрузке на процессор.
$ vmstat 3
monitoring1

Цифра три, значит, что информация будет выводиться каждые три секунды. В первом отчете содержится вся информация, накопленная с момента запуска системы, во всех последующих за интервал между вызовами утилиты. С полем memory и swap все понятно, они отображают состояние памяти, куда интереснее следующие поля.
Колонка bi показывает количество операций чтения с диска, а bo - вывода на диск. Колонки us и sy показывают загрузку процессора пользовательскими процессами и процессами системы соответственно, id отображает время простоя в процентах, во время ожидания работы диска. Колонки  si и so отображают количество запросов записи и выгрузки страниц из swap.
Сокращение wa обозначает количество операций ввода/вывода, которые ждут своей очереди. В разделе procs, колонка r показывает количество процессов, ждущих своей очереди для выполнения на процессоре, а колонка b показывает процессы ждущие окончания дисковых операций. В колонке system, in - число выполненных прерываний, cs - число переключения контекста процессора в секунду.

3. w - просмотр пользователей

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

Здесь первая запись, тот терминал, в котором мы выполнили w, а вторая - другой терминал, в котором просто открыта оболочка bash.

4. uptime

С помощью команды uptime вы можете посмотреть сколько уже работает компьютер или сервер. Кроме того, команда показывает количество вошедших пользователей, а также загрузку системы за 1, 5 и пятнадцать минут до вызова команды:
$ uptime
monitoring3
Значение загрузки системы чем меньше тем лучше.

5. ps - отображение процессов

Не всем подходит интерактивная утилита top, для некоторых случаев необходимо использовать ps. Чтобы вывести все процессы используйте опцию -A или -e
$ ps -A
monitoring5
Для получения большего количества информации используйте опцию -l:
$ ps -Al
monitoring6
Для максимально полного вывода используйте такую команду:
$ ps -AlF
monitoring7
Отображаем еще и потоки процессов:
$ ps -AlFH
monitoring8
Вывести потоки сразу после процессов:
$ ps -AlLm
monitoring9
Список процессов с потоками в виде дерева:
$ ps -ejH
monitoring10
Отобразить информацию о безопасности:
$ ps -eM
monitoring11
Вывести только нужный процесс:
$ pgrep chromium
monitoring12
Или отобразить только процессы нужного пользователя:
$ pgrep -u user
monitoring13

6. free - использование памяти

Эта утилита позволяет увидеть информацию о свободной, использованной и кэшированной памяти. а также пространстве подкачки:
$ free
monitoring14
Или в более понятном формате:
$ free -h
monitoring15

7. iostat -активность диска

Утилита iostat показывает немного другую информацию. Здесь вы можете увидеть скорость чтения и записи с диска, а также общее количество прочитанных и записанных данных:
$ iostat
monitoring16

8. sar - активность системы

Утилита sar позволяет собирать и сохранять информацию о работе системы в любое время. Вы можете сохранить такие параметры, как загрузка системы, нагрузка на процессор, скорость работы с диском и другое.
Чтобы посмотреть сохраненную в логах информацию за все время используйте:
$ sar -n DEV | more
Также вы можете вывести только данные за последние 24 часа:
$ sar -n DEV -f /var/log/sa/sa24 | more
Или смотреть статистику в реальном времени:
$ sar 4 5
monitoring17

9. mpstat - статистика ядер процессора

Эта утилита показывает нагрузку на каждое ядро процессора отдельно. Просто выполните:
$ mpstat -P ALL
monitoring18

10. pmap - память процесса

Утилита позволяет узнать по какому адресу в памяти загружены компоненты процесса, различные библиотеки и т д. Для работы нужно передать программе PID:
$ pmap -d PID
monitoring19
Рассмотрим несколько колонок:
  • mapped - количество памяти, в которую загружены файлы;
  • writeable/private - размер защищенного адресного пространства;
  • shared - общее пространство, для нескольких процессов.

11. ss - монитор сетевых подключений

Утилита позволяет отобразить активные сетевые соединения, таблицу маршрутизации, замаскированные соединения, а также участие в широковещательных передачах. Также вы можете посмотреть информацию об открытых сокетах и портах. Как пользоваться утилитой читайте в статье команда ss в linux.

12. iptraf - сетевая статистика в реальном времени

Команда iptraf позволяет отслеживать работу локальной сети. Она основана на Ncurses, а это значит, что вы будете иметь интерактивный доступ ко всем данным. Это информация о передаваемых данных по протоколах TCP, UDP, ICMP и OSPF, нагрузка на Ethernet, статистика узлов, ошибки контрольных сумм IP и многое другое.

13. tcpdump - анализ сетевого трафика

В отличие от предыдущей утилиты tcpdump позволяет анализировать содержимое всех пакетов, проходящих через определенный порт. Например, вы можете отслеживать всю информацию о запросах к DNS с помощью следующей команды:
$ tcpdump -i eth0 'udp port 53'
Также вы можете вывести все пакеты только протокола http, только без служебных пакетов FIN, SYN, ASC:
$ tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
Теперь выведем все HTTP запросы на ip 192.168.1.8:
$ tcpdump -ni eth0 'dst 192.168.1.5 and tcp and port http'

15. starce - системные вызовы

Эта утилита позволяет выполнять трассировку системных вызовов и сигналов. Мониторинг linux может быть полезен для отладки веб-сервера или других проблем в системе.

16. nethogs - анализ нагрузки на сеть

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

Выводы

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