Если у вас установлено несколько версий php в системе, то при вызове команды php в консоли, будет использоваться одна из них. Иногда необходимо для каких-то скриптов или сервисов управлять версией php в консоли. Я расскажу, как ее изменить.
Если у вас установлено несколько версий php в системе, то при вызове команды php в консоли, будет использоваться одна из них. Иногда необходимо для каких-то скриптов или сервисов управлять версией php в консоли. Я расскажу, как ее изменить.
В современных операционных системах не обойтись без взаимодействия программ с внешней средой и интернетом. Для этого используется специальные механизмы — порты.
Но порты представляют определённую угрозу. Если в программе есть какая-либо уязвимость, то любой пользователь локальной сети сможет получить доступ к вашему компьютеру, а в некоторых случаях даже к вашей информации. Поэтому нужно быть очень осторожным с открытыми портами. В этой статье мы разберёмся, как посмотреть открытые порты Ubuntu.
Порты — это более широкое понятие, чем просто возможность подключится к удалённому компьютеру через сеть. Когда процесс хочет обратиться к серверу, ему нужно каким-либо образом идентифицировать, к какому серверу он хочет подключиться. Если мы знаем 32 битный IP-адрес сервера, то мы можем без проблем к нему подключиться.
Но как указать программу, к которой нужно обратиться? Для решения этой проблемы оба протокола UDP и TCP поддерживают систему портов. Порт — это целое число от 1024 до 65535. Все номера до 1024 зарезервированы и используются только определёнными службами, например, 22 — ssh, http — 80, FTP — 21 и так далее.
Таким образом, процесс прослушивает определённый порт на сервере, а клиент, который хочет к нему обратиться, должен знать этот порт. Вся обработка прав доступа к портам в большинстве случаев ложится на процесс, поэтому если в его коде есть уязвимости, то это может стать серьёзной проблемой безопасности.
Существуют не только порты, к которым программы подключаются удалённо, но и локальные порты, используемые программами для общения между собой. В качестве локальных также могут использоваться удалённые.
В Linux существует несколько утилит, которые можно использовать, чтобы посмотреть открытые порты. Одни из них полноценные сетевые сканеры, другие — локальные утилиты, отображающие всю доступную информацию. Рассмотрим основные из них.
Это одна из самых старых и популярных утилит для просмотра открытых портов. Мы описывали её в отдельной статье, а сейчас просто кратко рассмотрим, как с ней работать. Чтобы посмотреть открытые порты, выполните такую команду:
netstat -ntlp | grep LISTEN
Опция -l сообщает, что нужно посмотреть прослушиваемые порты, -p показывает имя программы, -t и -u — отображают TCP и UDP порты, а -n показывает ip адреса в числовом виде. Дальше нужно выбрать только те строки, где встречается слово LISTEN, чтобы найти только прослушиваемые порты.
Здесь в первом столбце отображается протокол, затем два столбца — это данные, которые нам ничего полезного не говорят, а за ними уже идут локальный и внешний адреса. Если локальный адрес — 127.0.0.1, то это значит, что сервис доступен только на этом компьютере, а значение 0.0.0.0 или :: означает любой адрес, к таким сервисам могут подключаться из сети. В нашем примере это Apache и systemd-resolvd.
Утилита lsof тоже предназначена для просмотра открытых соединений. Основная ее функция — просмотр открытых файлов, но с её помощью можно посмотреть открытые порты Ubuntu. Используйте такие параметры:
sudo lsof -nP -i | grep LISTEN
Опции -n и -P указывают, что необходимо отображать не только цифровые имена портов и ip-адреса, но и имена доменов и сервисов. Опция -i отображает все сетевые подключения, а с помощью grep мы фильтруем только те, которые находятся в состоянии прослушивания.
Представление информации немного отличается, но в общем и целом мы видим всё ту же информацию. Кроме неё, здесь ещё отображается имя пользователя, от которого запущен процесс. Вы можете не ограничиваться фильтрами и посмотреть все доступные соединения:
sudo lsof -nP -i
Команда ss — это улучшенная версия netstat. Точно так, как для замены ifconfig была придумана утилита ip, ss разработали для замены netstat. Команда будет выглядеть следующим образом:
ss -ltupn
Все данные здесь выводятся почти так же, как и в netstat, поэтому вы легко во всём разберётесь. В дополнение к выше перечисленным командам: возможно, вам нужно будет посмотреть на правила брандмауэра iptables, чтобы понять, какие порты закрыты с его помощью:
iptables -L
В нашем примере нет никаких ограничений. Политика по умолчанию — ACCEPT. На промышленных серверах может применяться политика DENY, а нужные порты будут разрешены с помощью правил.
Сетевой сканер nmap позволяет проверить список портов Ubuntu так, как бы это делал злоумышленник при попытке атаки на вашу систему. Здесь вы будете видеть все порты, которые видны снаружи. Но для сканирования нужно использовать внешний ip-адрес. Не сетевой ip-адрес провайдера, а адрес вашего компьютера, например, в локальной сети чаще всего используется 192.168.1.2. Посмотреть ip вашего сетевого интерфейса можно с помощью команды ifconfig:
ifconfig
Чтобы просто просканировать открытые порты Ubuntu, будет достаточно выполнить:
nmap -sT 192.168.1.3
Также можно выполнить комплексное сканирование всех уязвимостей. Важно отметить, что команда не находит все уязвимости, а проверяет только самые простые. Для активации этого режима используется опция -A:
sudo nmap -A 192.168.1.3

Как пользоваться nmap, читайте в отдельной статье.
В этой статье мы рассмотрели, как проверить порты Ubuntu с помощью нескольких утилит. Все они выводят подробную информацию, но для каждого отдельного случая может лучше подойти только одна из них. Например, проверять, какие порты видят другие компьютеры извне, лучше с помощью nmap. А чтобы посмотреть, какие службы или сокеты доступны локально, лучше применять netstat или ss.
Проверяйте, какие порты открыты, и если они не нужны, то закройте их в брандмауэре или просто отключите сервис. Иначе они ставят под угрозу безопасность вашей системы. Например, у меня на ноутбуке открыт порт SSH, и я не раз наблюдал в логах попытки перебрать пароль от каких-то роутеров из локальной сети. И если даже вас некому ломать, это могут сделать вирусы. Так что будьте осторожны, и не оставляйте открытые порты, если в этом нет необходимости.
Все мы привыкли пользоваться программами в любой операционной системе для решения своих задач. Но за функциональностью программ стоит еще одна вещь, с которой мы редко встречаемся при обычной работе с компьютером. Это библиотеки, которые содержат общий набор функций и возможностей, используемых программами. Например, большинство программ, написанных на Си, используют стандартную библиотеку Си, в которой содержатся все основные возможности взаимодействия с системой.
У каждой программы есть свой набор библиотек, которые должны быть в системе чтобы она смогла работать. Иначе бы программистам пришлось заново изобретать различные алгоритмы, писать много кода и разработка программ занимала бы в разы больше времени. В этой статье мы собрали основные библиотеки Linux, а также их предназначение. Эта информация поможет вам лучше освоиться в системе.
Как я уже говорил выше — библиотеки реализуют общие возможности, которые потом используются программами. Если говорить просто, то библиотека — это набор функций, каждую из которых можно использовать в любой программе. Например, если программе нужно вывести строку на экран, она не будет лезть прямо в буфер видеокарты, а использует функцию из стандартной библиотеки.
Библиотеки делятся на два типа — динамические и статические. Статические библиотеки linux подключаются на этапе сборки программы, а динамические — во время выполнения и они общие для нескольких программ. Нас будут интересовать именно динамические библиотеки linux. Они находятся в папках /lib, /lib64, /usr/lib, /usr/lib/x86_64-linux-gnu. Каждая библиотека имеет расширение .so, за которым следует номер версии. Этот номер увеличивается каждый раз, когда разработчики вносят серьезные изменения. Такой подход необходим для того, чтобы сохранить совместимость для программ, использующих старые версии. Например, в системе может быть две библиотеки libfuse.so.0 и libfuse.so.1. Далее мы рассмотрим основные библиотеки и их предназначение.
Перед тем как перейти к рассмотрению самих библиотек, вам, наверное, будет интересно, как получить информацию о них и узнать где они находятся в вашей системе. Библиотеки Linux могут быть размещены в различных каталогах, в зависимости от дистрибутива, но посмотреть эти каталоги можно, выполнив:
cat /etc/ld.so.conf.d/*

Во всех перечисленных здесь каталогах находятся статические и динамически библиотеки Linux:
ls -l /lib/x86_64-linux-gnu/
Информацию о зависимостях каждой библиотеки вы можете посмотреть командой ldd:
ldd /lib/x86_64-linux-gnu/ld-2.24.so
А еще можно узнать какому пакету принадлежит библиотека в Ubuntu:
dpkg -S /lib/x86_64-linux-gnu/ld-2.24.so
Как видите, библиотека ld.so принадлежит пакету libc6, точнее она входит в набор инструментов Си. Более подробно, о том, как устанавливать новые библиотеки и решать проблемы с ними, описано в статье библиотеки Ubuntu.
Это библиотеки основных языков программирования, которые содержат базовую функциональность для взаимодействия с системой.
Эти библиотеки содержат наборы кодеков для воспроизведения различных медиа данных. Некоторые из них имеют несвободную лицензию или закрытый исходный код:
В этой статье мы собрали основные библиотеки Linux, которые имеют наибольшее значение для работы операционной системы. Конечно, невозможно перечислить здесь абсолютно все библиотеки, потому что их очень много. Надеюсь эта информация была полезной для вас.
На завершение урок про библиотеки Linux:
https://youtu.be/qZEQ1gIvDVo
Сегодня сложно представить мир без компьютеризированных устройств. Лет этак 20 назад почти все бытовые приборы были электро-механические, об использовании компьютерных схем повсеместно не было даже и речи. Самые первые компьютеры занимали значительные объемы пространства, и могли относительно не много. Компьютерно-вычислительные комплексы за последнее время прошли достаточно большой путь развития. Хотя, принципиально компьютеры ничем не изменились, но вычислительные мощности стремительно возросли. Наличие компьютера в простой семье теперь не является чем-то особенным.
В данный момент, зачастую большое количество компьютерной техники в помещениях может доставлять значительно неудобств. По этой причине стали появляться централизованные системы. Но централизованные системы зачастую не могут решить тех проблем, которые решает сеть из компьютеров. По этой причине и была предложена концепция виртуализации, когда один центральный компьютер выполняет роль сети компьютеров.
Роберт Лав стоит у истоков создания операционной системы Linux. Он внес существенный вклад в создание ядра Linux и настольной среды GNOME. . .
Эта книга представляет собой руководство по системному программированию для Linux, справочник по системным вызовам Linux, а также подробный рассказ о том, как писать более быстрый и умный код.
Роберт Лав четко разграничивает стандартные функции POSIX и специальные службы, которые предлагаются лишь в Linux. Читать
Это больше не является Windows, Linux против мира. Это для Windows и Linux мир. И когда дело доходит до облака, правила Linux.
Это создает уникальную проблему для Microsoft. Windows не имеет инструментов и утилит для управления серверами Linux. Это означает, что разработчики работающие под управлением Windows на своих локальных машинах пришлось использовать бы либо двойную загрузку с Linux или запускать Linux в виртуальной машине (VM), это не идеальная ситуация.
Microsoft пыталась принести возможности Linux в PowerShell, но это является сложной задачей, поэтому они придумали умное решение. Они создали подсистему для Linux чтобы администраторы и разработчики могли запускать утилиты Linux изначально на Windows, не имея накладных расходов VM и не выходя из среды Windows, что означает, что они могут разрабатывать и развертывать для обеих платформ.
Как и ожидалось, Microsoft выбрала Ubuntu в качестве основы для своего Linux. Причина была чисто технической и рынком. Ubuntu является самой популярной ОС по понятным причинам. Ubuntu доступна бесплатно, в отличие от RHEL и SUSE, так что вы можете запускать тысячи экземпляров Ubuntu, не заплатив ни копейки, и если вам нужна коммерческая поддержка, вы можете легко получить ее через Canonical.
Но что, если вы являетесь пользователем OpenSUSE или собираетесь запускать SUSE Linux Enterprise Server на Azure? Как вы получите доступ к конкретным инструментам и командам SLES/OpenSUSE?
Существует хорошая новость для таких пользователей: инженеры OpenSUSE/SUSE придумали решение, которое позволяет пользователям заменить Ubuntu на OpenSUSE Leap в Windows 10.
Если вы хотите запустить OpenSUSE на вашей системе Windows 10, вот что вы можете сделать:
Вам нужен Windows Insider, чтобы получить ранний доступ к экспериментальной Windows Subsystem для Linux (бета). Перейдите в раздел Настройки и в разделе «Обновление и безопасность», найти опцию «Для разработчиков» и включите «режим разработчика». Затем перейдите к установке обновления Windows и нажмите Дополнительные параметры, нажмите на кнопку «Get Started» чтобы получить вариант Insider Preview Builds. Вам нужно будет войти в свою учетную запись Microsoft. После входа в систему, выберите уровень «Быстрый» для программы Insider. Теперь Windows может установить некоторые обновления. Если обновления доступны, найдите ‘turn windows features on or off’ в строке поиска настроек. После того как откроется новое окно, прокрутите вниз и включите ‘Windows для Linux Subsystem (бета-версия)’. Нажмите ОК и закройте настройки.
Откройте командную строку из меню Пуск и введите ‘bash’. Windows, начнет загрузку Ubuntu для Windows. Я знаю, это Ubuntu а не OpenSUSE. Не паникуйте. Нам нужен базовый слой Ubuntu, как только он у нас есть, что мы можем использовать любой дистрибутив Linux на нем. После успешной установки он попросит вас создать имя пользователя и пароль. После этого откройте оболочку Bash Ubuntu в Windows, введя ‘bash’ в меню Пуск Windows, и он откроет терминал Linux.
Теперь пришло время, превратить Ubuntu против себя. Первые обновления системы запуска, чтобы убедиться, что все пакеты в Ubuntu в актуальном состоянии.
sudo apt-get update
sudo apt-get dist-upgrade
После того, как он полностью обновлен, скачайте образ OpenSUSE Docker:
wget -O openSUSE-42.2.tar.xz https://github.com/openSUSE/docker-containers-build/blob/openSUSE-42.2/docker/openSUSE-42.2.tar.xz?raw=true
Теперь создаем каталог ‘rootfs’, извлекаем образ OpenSUSE и выйдем, следуем выполнением следующих команд, один за другим:
sudo mkdir rootfs
sudo tar -C rootfs -Jxf openSUSE-42.2.tar.xz
exit
Откройте окно командной строки и сделайте резервную копию Ubuntu, выполнив эти команды, одну за другой:
cd %localappdata%lxss
rename rootfs rootfs.ubuntu
move .home<ubuntu_user>rootfs .
(Примечание: замена ‘ubuntu_user’ на имя пользователя, созданного для Ubuntu).
На данный момент, мы будем просто использовать «root» в качестве пользователя на нашей установке OpenSUSE, теперь установить корневой пользователь по умолчанию, из командной строки в Windows 10:
lxrun /setdefaultuser root
Закройте командную строку и откройте «Bash» из стартового меню. Для того, чтобы проверить, что вы работаете в OpenSUSE а не в Ubuntu, выполните следующую команду:
cat /etc/os-release
Вы почувствуете огромную радость, увидев «openSUSE Leap. Eureka!» У вас есть OpenSUSE, работающие на ОС Windows 10. Идите вперед и наберите ‘zypper up’ для запуска обновления системы, а затем начните использовать OpenSUSE Leap на Windows 10.