Файлы в linux

Доступ к файлам

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

Как запустить скрипт в Linux

Мы уже говорили, что программы делятся на бинарные и интерпретируемые. Раньше мы говорили только про бинарные программы. Для запуска интерпретируемых нужен непосредственно интерпретатор, к таким программам относятся написанные на таких языках, как Java, Python, Perl, Ruby, PHP, NodeJS и многих других. Синтаксис запуска такой программы отличается:

интерпретатор /путь/к/файлу/программы параметры

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

А Java программы нужно запускать так:

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

Или же просто набрать путь к скрипту:

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

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

Что означает исполняемость?

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

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

Для понимания системой, какие файлы должны быть выполнены по инструкции, а какие выполнять не нужно, и были придуманы флаги исполняемости. Фактически содержимое файла никак не изменяется в зависимости от установленного флага исполняемости – отличие сводится только к нескольким строчкам. Со скриптами все работает точно так же, только команды из файла выполняет не процессор, а интерпретатор, например, в bash скриптах — сама оболочка bash. Да и в обычных программ тоже есть свой загрузчик — это ld-linux.so.2.

Что такое исполняемость?

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

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

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

Чтобы система могла определить какие файлы нужно выполнять, а какие лучше не надо и был придуман флаг исполняемости. По сути, флаг исполяемости — это несколько байт в файловой системе, которые говорят нужно выполнять файл или нет, само содержимое файла никак не изменяется. Со скриптами все работает точно так же, только команды из файла выполняет не процессор, а интерпретатор, например, в bash скриптах — сама оболочка bash. Да и в обычных программ тоже есть свой загрузчик — это ld-linux.so.2.

Компиляция программ Linux

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

Получение исходников

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

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

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

Настройка configure

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

Если configure нет в папке с исходниками, вы можете попытаться выполнить такие скрипты чтобы его создать:

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

Утилита automake и другие из ее набора генерируют необходимые файлы на основе файла Mackefile.am. Этот файл обязательно есть в большинстве проектов.

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

Рассмотрим наиболее часто используемые, стандартные для всех программ опции:

  • —prefix=PREFIX — папка для установки программы, вместо /, например, может быть /usr/local/, тогда все файлы будут распространены не по основной файловой системе, а в /usr/local;
  • —bindir=DIR — папка для размещения исполняемых файлов, должна находится в PREFIX;
  • —libdir=DIR — папка для размещения и поиска библиотек по умолчанию, тоже в PREFIX;
  • —includedir=DIR — папка для размещения man страниц;
  • —disable-возможность — отключить указанную возможность;
  • —enable-возможность — включить возможность;
  • —with-библиотека — подобно enable активирует указанную библиотеку или заголовочный файл;
  • —without-библиотека — подобное disable отключает использование библиотеки.

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

Во время настройки утилита будет проверять, есть ли все необходимые библиотеки в системе, и если нет, вам придется их установить или отключить эту функцию, если это возможно. Например, может возникнуть такая ошибка: no terminal library found checking for tgetent()… configure: error: NOT FOUND!

В таком случае нам необходимо установить требуемую библиотеку. Например, программа предлагает ncurses, поэтому ставим:

Приставка lib всегда добавляется перед библиотеками, а -dev — означает, что нам нужна библиотека со всеми заголовочными файлами. После удовлетворения всех зависимостей настройка пройдет успешно.

Сборка программы

Когда настройка будет завершена и Makefile будет готов, вы сможете перейти непосредственно к сборке программы. На этом этапе выполняется непосредственно преобразование исходного кода в машинный. Утилита make на основе Makefile сделает все необходимые действия:

Дальше осталось установить саму программу, если вы использовали опцию prefix, чтобы не устанавливать программу в основную файловую систему, то можно применить стандартную опцию make:

После этого программа будет установлена в указанную вами папку, и вы сможете ее использовать. Но более правильный путь — создавать пакет для установки программы, это делается с помощью утилиты checkinstall, она позволяет создавать как deb, так и rpm пакеты, поэтому может использоваться не только в Ubuntu. Вместо make install выполните:

Затем просто установите получившийся пакет с помощью dpkg:

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

Если вы устанавливали программу с помощью make install, то удалить ее можно выполнив в той же папке обратную команду:

Команда удалит все файлы, которые были скопированы в файловую систему.

Исполняемые файлы в Linux

В вопросах исполняемых файлов, то есть, когда по простому, обычных программ, Ubuntu кардинально отличается от Windows. В Windows исполняемые компданные имеют расширение exe (в основном), а внутри представляют из себя нечитаемый набор байтов. А в Ubuntu выполняемым может быть даже текстовый файл. Сразу скажу, что exe — это программы для Windows и в Ubuntu они не трудятся без Wine (приложения для запуска исполняемых файлов Windows в Linux), но вообще говоря и в Wine они трудятся далеко не всегда.

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

1.1. Установка

Файловый менеджер fly-fm и пакет офисных программ LibreOffice включены в состав установочного диска операционных систем «Astra Linux» и устанавливаются в соответствии с сопроводительной (эксплуатационной) документацией. СКЗИ устанавливается в соответствии с правилами пользования СКЗИ и указаниями, определенными в формуляре (или иных эксплуатационных документах).

Для использования СЭП необходимо в обязательном порядке установить следующие программные компоненты из состава операционных систем «Astra Linux»:

  • программный модуль, реализующий функцию создания и проверки ЭП – fly-csp-cryptopro;
  • расширение офисных программ LibreOffice – libreoffice-astracsp-plugin.
  • в составе оперативных обновлений – для операционной системы специального назначения «Astra Linux Special Edition» очередное обновление 1.6;
  • в составе публичного репозитория операционной системы общего назначения «Astra Linux Common Edition» версии 2.12.32 и новее;
  • путем загрузки программных модулей с официального информационного ресурса – для операционной системы специального назначения «Astra Linux Special Edition  РУСБ.10015-01» очередное обновление 1.5 (см. статью КриптоПро и сервис электронной подписи fly-csp).

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

  • для операционных систем специального назначения «Astra Linux Special Edition  РУСБ.10015-01» очередное обновление 1.6 и общего назначения «Astra Linux Common Edition» версии 2.12:
  • для операционной системы специального назначения «Astra Linux Special Edition  РУСБ.10015-01» очередное обновление 1.5:

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

Программный модуль, реализующий функцию создания и проверки ЭП, fly-csp-cryptopro разработан на языке программирования Python (версия 3) и включает в свой состав:

  • основной файл программы /usr/bin/fly-csp-cryptopro;
  • дополнительные файлы и библиотеки в каталогах /usr/lib/python3/dist-packages/astra_csp_cryptopro и /usr/lib/python3/dist-packages/astra_csp_cryptopro-0.1.0.egg-info;
  • конфигурационный файл /etc/astra-csp-cryptopro/fly-csp-cryptopro.conf;
  • ярлык для запуска /usr/share/flyfm/actions/fly-csp-cryptopro.desktop.

При установке программного модуля fly-csp-cryptopro проводится проверка наличия в информационной системе установленного программного обеспечения СКЗИ и офисного пакета LibreOffice.

Расширение libreoffice-astracsp-plugin обеспечивает предоставление СЭП из графического интерфейса пакета офисных программ LibreOffice в процессе работы с электронными документами.

После установки расширением libreoffice-astracsp-plugin проводится проверка наличия в информационной системе установленного программного модуля fly-csp-cryptopro.

Конфигурационный файл /etc/astra-csp-cryptopro/fly-csp-cryptopro.conf содержит следующие параметры:

  1. Максимально допустимый для предоставления СЭП уровень конфиденциальности:

    MaxMacLevel=1
  2. Адрес источника получения доверенного времени:

    TimeAddress=http://testca2012.cryptopro.ru/tsp/tsp.srf
  3. Максимальное время ожидания выполнения запросов к криптопровайдеру:

    MaxCspTimeWaiting=30000
  4. Перечень расширений файлов электронных документов, для которых разрешено предоставление СЭП:

    FileExtensionsEnabledForSigning=.pdf, .png, .jpg, .html, .xml, .txt, .odt, .ods, .odp, .odg, .doc, .xls, .ppt, .docx, .xlsx, .pptx
  5. Отключение (off) или включение (on) действия перечня, заданного в п. 4).

    EnableFileExtensionFilterForSigning=off
  6. Перечень mime-типов файлов электронных документов, для просмотра которых будет проведена предварительная конвертация во временный файл формата PDF:

    PdfConversionMimeTypes=application/vnd.oasis.opendocument.text,\
    application/vnd.oasis.opendocument.spreadsheet,\
    application/vnd.oasis.opendocument.presentation,\
    application/vnd.oasis.opendocument.graphics,\
    application/msword,\
    application/vnd.ms-word,\
    application/vnd.ms-excel,\
    application/vnd.ms-powerpoint,\
    application/vnd.openxmlformats-officedocument.wordprocessingml.document,\
    application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,\
    application/vnd.openxmlformats-officedocument.presentationml.presentation,\
    text/plain

Указанные параметры могут быть изменены администратором при установке программы fly-csp-cryptopro в соответствии с требованиями к информационной системе в которой будет функционировать СЭП.

Обзор операционных систем Windows XP, Windows 7, Windows 8.1, Windows 10

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

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

Проводя обзор операционных систем Windows, стоит отметить — на сервера Microsoft отправляются все сведения о вашей деятельности за компьютером.

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

Также стоит отметить что далеко не сразу можно попасть в привычную нам Панель управления, она запрятана глубоко в Параметрах. Более подробно про 10 винду и ее обновления читайте тут — обзор крупных обновлений Wundows 10 за всю историю.

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

Бесплатные операционные системы Linux

Linux — семейство Unix подобных ОС на базе ядра Linux, объединяющих тот или иной пакет программ проекта GNU . Это обобщенное название всех Unix похожих систем, это не какая то единая редакция, это общее понятие.

Главное преимущество Linux подобных ОС — это бесплатное ПО, в отличие от Windows. В 2010 году Линукс лидировала среди установленных ОС среди серверов. Среди пользователей не получила широкого распространения, т.к многие программы и игры просто не поддерживают Линукс, только Windows.

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

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

На самом деле у ОС целая куча функций и заданий, которые она выполняет.

Прежде всего это:

  1. обработка команд и запросов пользователей.
  2. Это и различные команды ввода вывода, и отправка заданий процессору, выгрузка данных в оперативную память, мониторинг самых разных процессов в системе.
  3. Также обеспечивается взаимосвязь устройств, контроль работы драйверов и много других функций. Если все перечислять, какие выполняет система — то места тут не хватит точно).
Разновидности операционных систем

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

Самая популярная — конечно же всеми любимая Windows. Многие даже и не догадываются о том что существуют и другие системы.

Были проведены исследования, по которым видно сколько процентов людей используют определенные операционные системы (исследования согласно сайту statcounter.com, показали следующие результаты:

На октябрь месяц 2001 г. Linux и др. бесплатные ОС используют лишь 0.84% пользователей. MacOS (ос от Apple) предпочитают 7,18%. А Windows используют большинство — 90,13%. Также читайте про плюсы и минусы Windows XP.

https://pc-reanimator.ru/

Что такое Windows?

Windows — это лицензируемая операционная система с закрытым исходным кодом, разработанная компанией Microsoft.

Первая версия Windows, известная как Windows 1.0, появилась в 1985 году и была основана на ядре MS-DOS. После стартового запуска системы компания Microsoft начала разрабатывать новые версии Windows, включая первое крупное обновление и Windows версии 3.0.

В 1995 году появилась, пожалуй, самая распространенная версия — Windows 95. Она работала на 16-битном ядре DOS и 32-битном пользовательском окружении. На данный момент, самыми свежими версиями данной системы являются:

Для настольных ПК — Windows 10 (2015 г.).

Для серверов — Windows Server 2019.

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

Почему не китайский Deepin

Huawei отказалась от красивого Deepin в пользу Astra. Она надежнее

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

Китайские разработчики имеют очень неплохой, красивый и удобный Deepin Linux, так же основанном на Debian с собственной средой Deepin Desktop Environment и набором утилит.

Однако в апреле 2018 Deepin Linux версии 15.5 был скомпрометирован шпионским программным обеспечением, замаскированным под стандартную утилиту из ядра системы.

Поэтому Россия стала для Huawei «третьей стороной», гарантом безопасности со стороны операционной системы.

Ядро операционной системы

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

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

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

Windows имеет кардинально другой вид ядра. Оно состоит из множества небольших частей библиотек dll, каждая из которых отвечает за свою функцию. Системные вызовы вообще не применяются. В замену этому пользовательские программы обращаются к библиотекам user32.dll, gdi32.dll, kenel32.dll, advapi32.dll, которые вызывают функции из ntdll.dll (напрямую имеет отношение к ядру).

Библиотека hal.dll управляет драйверами, которые подключаются к ядру отдельно. Пользовательский режим ядра дает возможность просто адаптировать систему к любому ПО. Но за это приходится жертвовать производительностью системы.

Как сделать файл исполняемым

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

И здесь необходимо учитывать следующее:

  • Флаг — один из доступных флагов — r (чтение), w (запись), x (выполнение).
  • Категория — флаги могут устанавливаться для трех категорий: владельца файла, группы файла и всех остальных пользователей. В команде они указываются символами u (user) g (group) o (other) соответственно.
  • Действие — может быть + (плюс), что будет значить установить флаг или — (минус) снять флаг.

Таким образом, чтобы сделать исполняемым скрипт в Linux, пользователю необходимо выполнить:

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

Чтобы посмотреть флаги в терминале достаточно воспользоваться утилитой ls:

Флаги включены для всех категорий. Первое rwx — флаги владельца, второе — группы, а третье — для всех остальных. Если флаг не установлен, на его месте будет прочерк.

Снять флаг исполняемого файла очень просто. Используется та же команда только со знаком минус:

Дальше рассмотрим вопрос установки управляемости в GUI.

Запуск программ Linux в графическом интерфейсе

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

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

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

Но важно заметить, что лучше указывать полный путь в таких местах, как ярлыки, скрипты, cron и так далее это уменьшит количество ошибок, поскольку вы не можете знать проверяет ли система в этом случае PATH или ищет программу только в текущем каталоге. Теперь вы знаете все о том как запустить программу на linux

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: