Новости

Linux для системних адміністраторів Windows: Як запускати додатки, що працюють під Linux

  1. Linux для системних адміністраторів Windows: Як запускати додатки, що працюють під Linux Linux для...
  2. Цей контент є частиною серії: Linux для системних адміністраторів Windows
  3. попередні вимоги
  4. огляд
  5. Запуск додатків з простору користувача
  6. Налаштування повноважень
  7. Таблиця 1. Таблиця 1. Варіанти запуску додатків, що вимагають повноважень root
  8. Запуск програми з командного рядка
  9. Звичайні облікові записи і команди, які потребують повноважень root
  10. Лістинг 1. Лістинг 1. Запуск програми з командного рядка
  11. Лістинг 2. Лістинг 2. Запуск Web-сервера Apache
  12. Запуск програм у фоновому режимі
  13. Лістинг 3. Лістинг 3. Запуск програми у фоновому режимі
  14. Запуск додатків з робочого столу
  15. "Рідні" Linux-додатки
  16. Малюнок 1. Малюнок 1. Завантажники додатків на робочому столі і на панелі швидкого доступу
  17. Малюнок 2. Малюнок 2. Створення завантажувача для F-Spot
  18. Лістинг 4. Лістинг 4. Прихований каталог Wine, емулює середовище виконання Windows
  19. Малюнок 3. Малюнок 3. Запуск Windows-програми під Linux за допомогою Wine
  20. Ресурси для скачування
  21. Linux для системних адміністраторів Windows: Як запускати додатки, що працюють під Linux
  22. Серія контенту:
  23. Цей контент є частиною серії: Linux для системних адміністраторів Windows
  24. попередні вимоги
  25. огляд
  26. Запуск додатків з простору користувача
  27. Налаштування повноважень
  28. Таблиця 1. Таблиця 1. Варіанти запуску додатків, що вимагають повноважень root
  29. Запуск програми з командного рядка
  30. Звичайні облікові записи і команди, які потребують повноважень root
  31. Лістинг 1. Лістинг 1. Запуск програми з командного рядка
  32. Лістинг 2. Лістинг 2. Запуск Web-сервера Apache
  33. Запуск програм у фоновому режимі
  34. Лістинг 3. Лістинг 3. Запуск програми у фоновому режимі
  35. Запуск додатків з робочого столу
  36. "Рідні" Linux-додатки
  37. Малюнок 1. Малюнок 1. Завантажники додатків на робочому столі і на панелі швидкого доступу
  38. Малюнок 2. Малюнок 2. Створення завантажувача для F-Spot
  39. Лістинг 4. Лістинг 4. Прихований каталог Wine, емулює середовище виконання Windows
  40. Linux для системних адміністраторів Windows: Як запускати додатки, що працюють під Linux
  41. Серія контенту:
  42. Цей контент є частиною серії: Linux для системних адміністраторів Windows
  43. попередні вимоги
  44. огляд
  45. Запуск додатків з простору користувача
  46. Налаштування повноважень
  47. Таблиця 1. Таблиця 1. Варіанти запуску додатків, що вимагають повноважень root
  48. Запуск програми з командного рядка
  49. Звичайні облікові записи і команди, які потребують повноважень root
  50. Лістинг 1. Лістинг 1. Запуск програми з командного рядка
  51. Лістинг 2. Лістинг 2. Запуск Web-сервера Apache
  52. Запуск програм у фоновому режимі
  53. Лістинг 3. Лістинг 3. Запуск програми у фоновому режимі
  54. Запуск додатків з робочого столу
  55. "Рідні" Linux-додатки
  56. Малюнок 1. Малюнок 1. Завантажники додатків на робочому столі і на панелі швидкого доступу
  57. Малюнок 2. Малюнок 2. Створення завантажувача для F-Spot
  58. Лістинг 4. Лістинг 4. Прихований каталог Wine, емулює середовище виконання Windows
  59. Малюнок 3. Малюнок 3. Запуск Windows-програми під Linux с помощью Wine
  60. Ресурси для скачування
  61. Linux для системних адміністраторів Windows: Як запускати додатки, що працюють під Linux
  62. Серія контенту:
  63. Цей контент є частиною серії: Linux для системних адміністраторів Windows
  64. попередні вимоги
  65. огляд
  66. Запуск додатків з простору користувача
  67. Налаштування повноважень
  68. Таблиця 1. Таблиця 1. Варіанти запуску додатків, що вимагають повноважень root
  69. Запуск програми з командного рядка
  70. Звичайні облікові записи і команди, які потребують повноважень root
  71. Лістинг 1. Лістинг 1. Запуск програми з командного рядка
  72. Лістинг 2. Лістинг 2. Запуск Web-сервера Apache
  73. Запуск програм у фоновому режимі
  74. Лістинг 3. Лістинг 3. Запуск програми у фоновому режимі
  75. Запуск додатків з робочого столу
  76. "Рідні" Linux-додатки
  77. Малюнок 1. Малюнок 1. Завантажники додатків на робочому столі і на панелі швидкого доступу
  78. Малюнок 2. Малюнок 2. Створення завантажувача для F-Spot
  79. Лістинг 4. Лістинг 4. Прихований каталог Wine, емулює середовище виконання Windows
  80. Малюнок 3. Малюнок 3. Запуск Windows-програми під Linux за допомогою Wine
  81. Ресурси для скачування
  82. Linux для системних адміністраторів Windows: Як запускати додатки, що працюють під Linux
  83. Серія контенту:
  84. Цей контент є частиною серії: Linux для системних адміністраторів Windows
  85. попередні вимоги
  86. огляд
  87. Запуск додатків з простору користувача
  88. Налаштування повноважень
  89. Таблиця 1. Таблиця 1. Варіанти запуску додатків, що вимагають повноважень root
  90. Запуск програми з командного рядка
  91. Звичайні облікові записи і команди, які потребують повноважень root
  92. Лістинг 1. Лістинг 1. Запуск програми з командного рядка
  93. Лістинг 2. Лістинг 2. Запуск Web-сервера Apache
  94. Запуск програм у фоновому режимі
  95. Лістинг 3. Лістинг 3. Запуск програми у фоновому режимі
  96. Запуск додатків з робочого столу
  97. "Рідні" Linux-додатки
  98. Малюнок 1. Малюнок 1. Завантажники додатків на робочому столі і на панелі швидкого доступу
  99. Малюнок 2. Малюнок 2. Створення завантажувача для F-Spot
  100. Лістинг 4. Лістинг 4. Прихований каталог Wine, емулює середовище виконання Windows
  101. Малюнок 3. Малюнок 3. Запуск Windows-програми під Linux за допомогою Wine
  102. Ресурси для скачування

Linux для системних адміністраторів Windows: Як запускати додатки, що працюють під Linux

Linux для системних адміністраторів Windows

Запуск Linux-додатків з командного рядка і з робочого столу

Серія контенту:

Цей контент є частиною # з серії # статей: Linux для системних адміністраторів Windows

https://www.ibm.com/developerworks/ru/library/?series_title_by=**auto**

Слідкуйте за виходом нових статей цієї серії.

Цей контент є частиною серії: Linux для системних адміністраторів Windows

Слідкуйте за виходом нових статей цієї серії.

попередні вимоги

Щоб отримати максимальну користь від цієї статті, ви повинні мати досвід роботи з віконними додатками в середовищі Windows. Я також припускаю, що читач вже має базові знання про використання робочого столу Linux. Бажано, щоб у вас була працююча Linux-система, на якій можна було б досліджувати ідеї і приклади, представлені в цій статті.

огляд

Іноді первинний запуск програми на ОС Linux вимагає невеликих додаткових зусиль. Деякі додатки, наприклад, серверні служби, можуть не встановлюватися в якості служб, і їх доведеться запускати з командного рядка. Для облікового запису користувача, яка буде використовуватися для запуску додатків, необхідно встановити повноваження на запуск файлів додатків (прапор x).

Запуск додатків з простору користувача

У Linux процеси запускаються в просторі ядра або в просторі користувача. Простір користувача - це область операційної системи, в якій зазвичай запускаються програми. Простіше кажучи, кожна обліковий запис користувача має свій власний призначеним для користувача простором, і додатки працюють в цій галузі.

Доступ до простору ядра за замовчуванням має тільки користувач root. В ОС Linux користувач root - це привілейований користувач, якого можна порівняти з обліковим записом адміністратора в Windows. Запуск додатків від імені користувача root може становити загрозу з точки зору безпеки і тому не рекомендується.

Для запуску багатьох серверних служб потрібні повноваження root. Однак після того як служба запущена, користувач root зазвичай передає її під контроль облікового запису служби. Технічно, облікові записи служб в Linux - це звичайні облікові записи користувачів. Їх основна відмінність полягає в тому, що облікові записи служб застосовуються тільки для запуску конкретної служби і не призначені для того, щоб хтось використовував їх для входу в систему.

Налаштування повноважень

Повноваження для запуску файлу можна встановити за допомогою команди chmod. Параметр umask в Linux зазвичай забороняє запуск завантажених файлів, щоб забезпечити безпеку вашої Linux-системи.

У більшості дистрибутивів Linux параметр umask дорівнює 022, що означає, що за замовчуванням для нового файлу встановлені повноваження 644. Ці числові значення розшифровуються як - 4 - читання, 2 - запис, 1 - виконання. Так що завантаження програми з повноваженнями за замовчуванням - 644 - говорить про те, що власник файлу має права на читання і запис по відношенню до нього, в той час як група, що володіє файлом, і всі інші користувачі мають права тільки на читання.

Щоб надати всім користувачам права на запуск файлу, необхідно скористатися командним chmod a + x. Параметр а означає все (all), символ + - означає додати (add), а x означає виконати (execute). Крім того, якщо додаток - це серверна служба, необхідно переконатися, що тільки авторизовані облікові записи можуть використовуватися для запуску служби.

Якщо для запуску додатків досить повноважень стандартної облікового запису, але тільки певна група користувачів повинна мати права на використання цього додатка, то можна додати групі, що володіє файлом, повноваження для його запуску, а потім додавати користувачів до цієї групи.

Якщо говорити більш конкретно, то також можна налаштувати список управління доступом (access control list - ACL) з правами для виконуваного файлу, що дозволить певному користувачеві або групі запускати додаток. Використовуйте утиліту setfacl для установки прав за допомогою ACL.

Для додатків, які повинні запускатися від імені користувача root, наприклад, як серверних служб, є кілька варіантів. В таблиці 1 наведені різні способи, що дозволяють користувачам запускати сервісні служби, що вимагають повноважень root.

Таблиця 1. Таблиця 1. Варіанти запуску додатків, що вимагають повноважень root

Спосіб Опис від імені користувача root Не рекомендується для серверних служб. Допускається для додатків, коли користувач вже знає пароль root і можлива компрометація програми не є проблемою. setUID Не рекомендується з міркувань безпеки. Команда setUID дозволяє звичайному користувачеві запускати файли від імені іншого користувача, наприклад, root. sudo Загальновідома і загальноприйнята практика. Команда sudo надає користувачеві або групі права на запуск файлу, який в іншому випадку зажадав би повноважень root. При цьому користувачеві не потрібно знати пароля root. обліковий запис звичайного користувача з правом на роботу з файлами Встановити дозвіл на запуск файлу для користувача-власника, групи-власника або всім іншим. Це стандартний спосіб надання прав для запуску додатка користувачам, яким не потрібні повноваження root. обліковий запис звичайного користувача з повноваженнями в ACL Рідше використовується, але також життєздатний спосіб, коли небажано давати користувачеві права через sudo або змінювати права на доступ до файлу. Застосувавши до файлу команду setfacl, можна надати конкретному користувачу або групі користувачів право на запуск даного файлу.

Запуск програми з командного рядка

Запуск додатків з командного рядка є стандартною операцією в адмініструванні Linux-серверів. Багато додатків містять сценарії оболонки (аналогічні .bat-файлів в Windows), які запускають додатки і виконують інші завдання, наприклад, налаштування змінних середовища і передачу процесів іншим користувачам. Наприклад, для роботи програми може бути необхідна віртуальна Java ™ -машина (JVM). В даному випадку сценарії оболонки налаштовують відповідні змінні середовища, а потім виконують команду java для запуску JAR-архіву або class-файлу. Аналогічно йде справа і для додатків, що використовують Perl, Python і навіть C # (так, скомпільовані C # -Додатків можна запускати під Linux!).

Звичайні облікові записи і команди, які потребують повноважень root

Зверніть увагу, що в лістингах, наведених в цій статті, кожна команда починається з символу $ або #. Ці символи в оболонках Linux мають різне значення. Символ $ в запрошенні оболонки означає, що користувач має стандартними повноваженнями, а символ # говорить про те, що користувач має повноваження root (адміністратора). Для запуску команд, які наведені в лістингах з використанням символу #, вам буде потрібно sudo-доступ або прямий доступ до облікового запису root.

Стандартний спосіб запуску додатків з командного рядка або запрошення оболонки - це команда ./. Вводячи в Linux точку (.) І пряму лінію (/), ви повідомляєте середовищі, що хочете запустити файл в якості виконуваного процесу. Наприклад, щоб запустити виконуваний файл myapp, використовується команда ./myapp. Також ви можете вказати перед ім'ям файлу інтерпретатор мови, на якому він був написаний, наприклад:

Часто упаковані програми вже містять сценарії оболонки для настройки змінних середовища і надають шлях до інтерпретатора потрібну мову за допомогою символів # !, наприклад, #! / Usr / bin / python. Я рекомендую ознайомитися і з подібним підходом.

В лістингу 1 наведено стандартний сценарію catalina.sh, який використовується для запуску сервера додатків Apache Tomcat за допомогою ./ підходу. Потім для запуску сервера використовується sh-підхід. Так як в даному випадку використовується стандартний порт 8080, то ніяких спеціальних змін для запуску служби від імені звичайного користувача вносити не буде потрібно.

Лістинг 1. Лістинг 1. Запуск програми з командного рядка

$ ./Catalina.sh start Using CATALINA_BASE: /opt/apache-tomcat-7.0.26 Using CATALINA_HOME: /opt/apache-tomcat-7.0.26 Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.26/temp Using JRE_HOME : / usr Using CLASSPATH: /opt/apache-tomcat-7.0.26/bin/bootstrap.jar: /opt/apache-tomcat-7.0.26/bin/tomcat-juli.jar $ ./catalina.sh stop .. .................................................. ................. $ sh catalina.sh start Using CATALINA_BASE: /opt/apache-tomcat-7.0.26 Using CATALINA_HOME: /opt/apache-tomcat-7.0.26 Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.26/temp Using JRE_HOME: / usr Using CLASSPATH: /opt/apache-tomcat-7.0.26/bin/bootstrap.jar: /opt/apache-tomcat-7.0.26/ bin / tomcat-juli.jar

Розглянемо стандартний HTTP Web-сервер. На платформі Linux будь-який порт з номером менше 1024 вважається привілейованим, і такі порти може відкривати тільки користувач root. Так як за замовчуванням Web-сервери використовують порт 80, то для запуску такого процесу необхідні повноваження root. Як згадувалося вище, з точки зору безпеки не рекомендується запускати служби від імені користувача root. Знову ж правильним підходом буде запустити службу від імені root і передати її під управління обліковим записом користувача або спеціальної облікового запису для даної служби.

На щастя, у більшості серверних служб є сценарії для виконання подібної операції. Можна зібрати Web-сервер Apache з вихідного коду, запустити його від імені користувача root і передати управління потоками httpd користувачеві apache.

В лістингу 2 запускається стандартна зборка Web-сервера Apache 2. Процес установки виконує кілька дій, включаючи перетворення команди apachectl в виконуваний файл. Так як цей процес використовує порт 80, він запускається з повноваженнями root. Однак, як показує команда ps, процеси httpd виконуються під управлінням облікового запису apache.

Лістинг 2. Лістинг 2. Запуск Web-сервера Apache

# Cd / usr / local / apache2 / bin # apachectl start #ps aux | grep httpd apache 23094 0.0 0.3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k start apache 23095 0.0 0.3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k start apache 23096 0.0 0.3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k start apache 23097 0.0 0.3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k start apache 23098 0.0 0.3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k start

Запуск програм у фоновому режимі

Деякі встановлені програми можуть бути не так доброзичливі, як Web-сервер Apache. За винятком ситуацій, коли ви розбираєтеся зі збоями в роботі програми або хочете отримувати детальну інформацію про її роботі, ви швидше за все віддасте перевагу, щоб після запуску вона працювала у фоновому режимі. В іншому випадку додаток буде зупинено в момент, коли буде закрита оболонка. Така поведінка, очевидно, не підходить для серверних служб, якщо служба буде зупинятися кожен раз, коли ви закриваєте термінал з оболонкою або виходите з системи.

Якщо додаток запустити у фоновому режимі, воно продовжить працювати навіть після того, як ви закриєте вікно оболонки. Ви можете запустити додаток у фоновому режимі, додавши символ & в кінець команди, використовуваної для запуску програми. Наприклад, можна відкрити файл в редакторі vi, запущеному в фоновому режимі, за допомогою команди vi / etc / sysconfig / network &, так як символ & відкриває файл / etc / sysconfig / network і утримує його у фоновому режимі. Можна також скористатися утилітою nohup, яка дозволяє процесам продовжувати роботу навіть після того, як ви вийдете з системи:

nohup vi / etc / sysconfig / network &

В лістингу 3 файл відкривається для редагування в редакторі vi і перекладається в фоновий режим.

Лістинг 3. Лістинг 3. Запуск програми у фоновому режимі

# Vi / etc / sysconfig / network & [1] 24940 # jobs [1] + Stopped vi / etc / sysconfig / network

Щоб побачити список програм, що працюють у фоновому режимі, використовується команда jobs. Кожній задачі, що виконується в фоновому режимі, присвоюється послідовний номер, починаючи з 1. Задачі, показаної в лістингу 3 , Був встановлений номер 1, а 29940 - це ідентифікатор процесу (PID). Додаток можна перевести в звичайний режим за допомогою команди fg, вказавши при цьому номер певного завдання. У цьому прикладі користувач не використовує процес, тому він відображається в стані Stopped (зупинений). Однак команда fg 1 перемкне термінал назад в процес редагування файлу, зробивши його активним.

Запуск додатків з робочого столу

Запуск додатків з графічним інтерфейсом користувача (graphical user interface - GUI) з робочого столу в Linux не сильно відрізняється від аналогічної дії Windows. В основному вам потрібно зрозуміти, як саме додатки групуються в меню у вашому конкретному менеджерові віконного інтерфейсу (GNOME, KDE і т.д.). У Linux є безліч віконних додатків, призначених для виконання різних завдань. Деякі з них є "рідними" додатками Linux, в той час як інші, як розроблені на C # і використовують загальну середу виконання, можуть бути мультиплатформенними, подібно додатків на основі .NET Framework. Також в Linux можна запускати і ваші улюблені Windows-додатки за допомогою різних віртуальних середовищ, наприклад, Wine.

"Рідні" Linux-додатки

Як правило, можна знайти Linux-аналог для майже будь-якого Windows-програми. Запуск "рідних" Linux-додатків з робочого столу виконується вкрай просто. Також як і в Windows, зазвичай досить знайти потрібну програму в відповідному меню і клацнути кнопкою миші по його піктограмі, щоб воно запустилось.

Перед запуском додатків, які вимагають повноважень root, буде запропоновано ввести пароль root. В принципі це аналогічно опції Run as Administrator (запустити від імені адміністратора) в Windows. В інших випадках всі програми будуть запускатися в просторі користувача, що відноситься до облікового запису, якій ви скористалися для входу в систему.

У Windows ви можете поміщати на робочий стіл ярлики (shortucts), які використовуються для швидкого запуску програм. У Linux є аналогічні ярлики (тільки вони називаються завантажувачі - launchers), які можна поміщати на панель або робочий стіл. При натисканні лівою кнопкою миші по завантажувачу він запускає відповідну програму.

на малюнку 1 показані два завантажувача для Web-браузера Mozilla Firefox на робочому столі GNOME. Перший завантажувач розташований на панелі швидкого доступу, а другий на робочому столі.

Малюнок 1. Малюнок 1. Завантажники додатків на робочому столі і на панелі швидкого доступу

Mono

Безліч Windows-додатків було розроблено з використанням технології .NET Framework. Mono - це open source реалізація технології .NET, що працює на різних платформах, включаючи Linux. Насправді на сайті Mono написано, що Mono - це реалізація мови програмування C # і стандартного середовища виконання CLR (Common Language Runtime), бінарному сумісна з .NET. В даний момент цей проект підтримується спільнотою Xamarin.

На платформі Linux ви можете запускати додатки, розроблені в інфраструктурі .NET або Mono, точно так же, як в Windows. Однак нагадаю, що в Linux існують параметр umask і стандартні повноваження для роботи з файлами. Так що вам все одно буде потрібно надати необхідні права для доступу до файлу, щоб Linux дозволив запустити його.

Деякі мультиплатформенні додатки, розроблені в Mono, наприклад, F-Spot, можна встановити прямо на робочий стіл Linux, і вони будуть розташовуватися в одному меню разом з "рідними" додатками GNOME. F-Spot - це open-source додаток для роботи з фотографіями. Незважаючи на те, що воно написано на C #, воно відображається як рідне додаток GNOME. І якщо створити для нього завантажувач, то його можна буде запускати простим клацанням по ярлику точно так же, як в Windows.

на малюнку 2 показано розміщення Mono-додатки F-Spot і продемонстровано, як ви можете створити для нього завантажувачі на робочому столі або відповідної панелі.

Малюнок 2. Малюнок 2. Створення завантажувача для F-Spot

Wine

Середа Wine дозволяє запускати Windows-додатки на Linux та інших операційних системах. З її допомогою ви можете встановлювати і запускати ці програми точно так же, як в Windows. Wine все ще знаходиться в процесі активної розробки, і не всі Windows-програми можуть бути з нею сумісні. Якщо ваш додаток було скомпільовано для операційної системи Windows і при цьому може працювати під управлінням Wine, то, скоріше, за все це звичайне віконне додаток, а не серверне ПЗ. Не забудьте перевірити в документації Wine інформацію про можливості запуску вашого застосування під Linux, так як Wine підтримує далеко не всі програми.

При використанні Wine в Linux в домашньому каталозі вашого профілю створюється прихований каталог, емулює середовище Windows, як показано в лістингу 4 .

Лістинг 4. Лістинг 4. Прихований каталог Wine, емулює середовище виконання Windows

$ Cd /home/tbost/.wine/drive_c/windows $ ls cf8e.tmp command explorer.exe Fonts help hh.exe inf Installer ls.txt Microsoft.NET notepad.exe pwd.txt regedit.exe rundll.exe system system32 system .ini temp twain_32.dll twain.dll winhelp.exe winhlp32.exe win.ini winsxs

Після установки програми за допомогою Wine його зазвичай можна виявити в меню на робочому столі і запустити точно так же, як ви це робите в Windows.

Як приклад розглянемо програму Camstudio - open source інструмент для запису і редагування відео з екрану комп'ютера. В даний момент Camstudio не пропонує версії програми для операційної системи Linux. Однак, використовуючи Wine, я встановив Windows-версію на робочий стіл Linux. Wine-додатки зазвичай згруповані в меню Applications (додатки) -> Wine -> Programs (програми), як показано на малюнку 3 .

Малюнок 3. Малюнок 3. Запуск Windows-програми під Linux за допомогою Wine

Висновок

При роботі з Linux-сервером вам напевно доведеться зіткнутися з ПО, яке запускається як з робочого столу, так і з командного рядка. Ви зможете безпечно запускати ці програми після того, як зрозумієте, як грамотно налаштовувати повноваження і облікові записи користувачів. Для тривалих процесів, наприклад, серверних служб, кращим буде запуск з командного рядка і у фоновому режимі. Якщо ж ваші додатки запускаються з робочого столу, ви зможете запускати їх точно так же, а в деяких випадках зможете виконувати навіть Windows-програми.

Ресурси для скачування

Схожі тими

Підпішіть мене на ПОВІДОМЛЕННЯ до коментарів

Linux для системних адміністраторів Windows: Як запускати додатки, що працюють під Linux

Linux для системних адміністраторів Windows

Запуск Linux-додатків з командного рядка і з робочого столу

Серія контенту:

Цей контент є частиною # з серії # статей: Linux для системних адміністраторів Windows

https://www.ibm.com/developerworks/ru/library/?series_title_by=**auto**

Слідкуйте за виходом нових статей цієї серії.

Цей контент є частиною серії: Linux для системних адміністраторів Windows

Слідкуйте за виходом нових статей цієї серії.

попередні вимоги

Щоб отримати максимальну користь від цієї статті, ви повинні мати досвід роботи з віконними додатками в середовищі Windows. Я також припускаю, що читач вже має базові знання про використання робочого столу Linux. Бажано, щоб у вас була працююча Linux-система, на якій можна було б досліджувати ідеї і приклади, представлені в цій статті.

огляд

Іноді первинний запуск програми на ОС Linux вимагає невеликих додаткових зусиль. Деякі додатки, наприклад, серверні служби, можуть не встановлюватися в якості служб, і їх доведеться запускати з командного рядка. Для облікового запису користувача, яка буде використовуватися для запуску додатків, необхідно встановити повноваження на запуск файлів додатків (прапор x).

Запуск додатків з простору користувача

У Linux процеси запускаються в просторі ядра або в просторі користувача. Простір користувача - це область операційної системи, в якій зазвичай запускаються програми. Простіше кажучи, кожна обліковий запис користувача має свій власний призначеним для користувача простором, і додатки працюють в цій галузі.

Доступ до простору ядра за замовчуванням має тільки користувач root. В ОС Linux користувач root - це привілейований користувач, якого можна порівняти з обліковим записом адміністратора в Windows. Запуск додатків від імені користувача root може становити загрозу з точки зору безпеки і тому не рекомендується.

Для запуску багатьох серверних служб потрібні повноваження root. Однак після того як служба запущена, користувач root зазвичай передає її під контроль облікового запису служби. Технічно, облікові записи служб в Linux - це звичайні облікові записи користувачів. Їх основна відмінність полягає в тому, що облікові записи служб застосовуються тільки для запуску конкретної служби і не призначені для того, щоб хтось використовував їх для входу в систему.

Налаштування повноважень

Повноваження для запуску файлу можна встановити за допомогою команди chmod. Параметр umask в Linux зазвичай забороняє запуск завантажених файлів, щоб забезпечити безпеку вашої Linux-системи.

У більшості дистрибутивів Linux параметр umask дорівнює 022, що означає, що за замовчуванням для нового файлу встановлені повноваження 644. Ці числові значення розшифровуються як - 4 - читання, 2 - запис, 1 - виконання. Так що завантаження програми з повноваженнями за замовчуванням - 644 - говорить про те, що власник файлу має права на читання і запис по відношенню до нього, в той час як група, що володіє файлом, і всі інші користувачі мають права тільки на читання.

Щоб надати всім користувачам права на запуск файлу, необхідно скористатися командним chmod a + x. Параметр а означає все (all), символ + - означає додати (add), а x означає виконати (execute). Крім того, якщо додаток - це серверна служба, необхідно переконатися, що тільки авторизовані облікові записи можуть використовуватися для запуску служби.

Якщо для запуску додатків досить повноважень стандартної облікового запису, але тільки певна група користувачів повинна мати права на використання цього додатка, то можна додати групі, що володіє файлом, повноваження для його запуску, а потім додавати користувачів до цієї групи.

Якщо говорити більш конкретно, то також можна налаштувати список управління доступом (access control list - ACL) з правами для виконуваного файлу, що дозволить певному користувачеві або групі запускати додаток. Використовуйте утиліту setfacl для установки прав за допомогою ACL.

Для додатків, які повинні запускатися від імені користувача root, наприклад, як серверних служб, є кілька варіантів. В таблиці 1 наведені різні способи, що дозволяють користувачам запускати сервісні служби, що вимагають повноважень root.

Таблиця 1. Таблиця 1. Варіанти запуску додатків, що вимагають повноважень root

Спосіб Опис від імені користувача root Не рекомендується для серверних служб. Допускається для додатків, коли користувач вже знає пароль root і можлива компрометація програми не є проблемою. setUID Не рекомендується з міркувань безпеки. Команда setUID дозволяє звичайному користувачеві запускати файли від імені іншого користувача, наприклад, root. sudo Загальновідома і загальноприйнята практика. Команда sudo надає користувачеві або групі права на запуск файлу, який в іншому випадку зажадав би повноважень root. При цьому користувачеві не потрібно знати пароля root. обліковий запис звичайного користувача з правом на роботу з файлами Встановити дозвіл на запуск файлу для користувача-власника, групи-власника або всім іншим. Це стандартний спосіб надання прав для запуску додатка користувачам, яким не потрібні повноваження root. обліковий запис звичайного користувача з повноваженнями в ACL Рідше використовується, але також життєздатний спосіб, коли небажано давати користувачеві права через sudo або змінювати права на доступ до файлу. Застосувавши до файлу команду setfacl, можна надати конкретному користувачу або групі користувачів право на запуск даного файлу.

Запуск програми з командного рядка

Запуск додатків з командного рядка є стандартною операцією в адмініструванні Linux-серверів. Багато додатків містять сценарії оболонки (аналогічні .bat-файлів в Windows), які запускають додатки і виконують інші завдання, наприклад, налаштування змінних середовища і передачу процесів іншим користувачам. Наприклад, для роботи програми може бути необхідна віртуальна Java ™ -машина (JVM). В даному випадку сценарії оболонки налаштовують відповідні змінні середовища, а потім виконують команду java для запуску JAR-архіву або class-файлу. Аналогічно йде справа і для додатків, що використовують Perl, Python і навіть C # (так, скомпільовані C # -Додатків можна запускати під Linux!).

Звичайні облікові записи і команди, які потребують повноважень root

Зверніть увагу, що в лістингах, наведених в цій статті, кожна команда починається з символу $ або #. Ці символи в оболонках Linux мають різне значення. Символ $ в запрошенні оболонки означає, що користувач має стандартними повноваженнями, а символ # говорить про те, що користувач має повноваження root (адміністратора). Для запуску команд, які наведені в лістингах з використанням символу #, вам буде потрібно sudo-доступ або прямий доступ до облікового запису root.

Стандартний спосіб запуску додатків з командного рядка або запрошення оболонки - це команда ./. Вводячи в Linux точку (.) І пряму лінію (/), ви повідомляєте середовищі, що хочете запустити файл в якості виконуваного процесу. Наприклад, щоб запустити виконуваний файл myapp, використовується команда ./myapp. Також ви можете вказати перед ім'ям файлу інтерпретатор мови, на якому він був написаний, наприклад:

Часто упаковані програми вже містять сценарії оболонки для настройки змінних середовища і надають шлях до інтерпретатора потрібну мову за допомогою символів # !, наприклад, #! / Usr / bin / python. Я рекомендую ознайомитися і з подібним підходом.

В лістингу 1 наведено стандартний сценарію catalina.sh, який використовується для запуску сервера додатків Apache Tomcat за допомогою ./ підходу. Потім для запуску сервера використовується sh-підхід. Так як в даному випадку використовується стандартний порт 8080, то ніяких спеціальних змін для запуску служби від імені звичайного користувача вносити не буде потрібно.

Лістинг 1. Лістинг 1. Запуск програми з командного рядка

$ ./Catalina.sh start Using CATALINA_BASE: /opt/apache-tomcat-7.0.26 Using CATALINA_HOME: /opt/apache-tomcat-7.0.26 Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.26/temp Using JRE_HOME : / usr Using CLASSPATH: /opt/apache-tomcat-7.0.26/bin/bootstrap.jar: /opt/apache-tomcat-7.0.26/bin/tomcat-juli.jar $ ./catalina.sh stop .. .................................................. ................. $ sh catalina.sh start Using CATALINA_BASE: /opt/apache-tomcat-7.0.26 Using CATALINA_HOME: /opt/apache-tomcat-7.0.26 Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.26/temp Using JRE_HOME: / usr Using CLASSPATH: /opt/apache-tomcat-7.0.26/bin/bootstrap.jar: /opt/apache-tomcat-7.0.26/ bin / tomcat-juli.jar

Розглянемо стандартний HTTP Web-сервер. На платформі Linux будь-який порт з номером менше 1024 вважається привілейованим, і такі порти може відкривати тільки користувач root. Так як за замовчуванням Web-сервери використовують порт 80, то для запуску такого процесу необхідні повноваження root. Як згадувалося вище, з точки зору безпеки не рекомендується запускати служби від імені користувача root. Знову ж правильним підходом буде запустити службу від імені root і передати її під управління обліковим записом користувача або спеціальної облікового запису для даної служби.

На щастя, у більшості серверних служб є сценарії для виконання подібної операції. Можна зібрати Web-сервер Apache з вихідного коду, запустити його від імені користувача root і передати управління потоками httpd користувачеві apache.

В лістингу 2 запускається стандартна зборка Web-сервера Apache 2. Процес установки виконує кілька дій, включаючи перетворення команди apachectl в виконуваний файл. Так як цей процес використовує порт 80, він запускається з повноваженнями root. Однак, як показує команда ps, процеси httpd виконуються під управлінням облікового запису apache.

Лістинг 2. Лістинг 2. Запуск Web-сервера Apache

# Cd / usr / local / apache2 / bin # apachectl start #ps aux | grep httpd apache 23094 0.0 0.3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k start apache 23095 0.0 0.3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k start apache 23096 0.0 0.3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k start apache 23097 0.0 0.3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k start apache 23098 0.0 0.3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k start

Запуск програм у фоновому режимі

Деякі встановлені програми можуть бути не так доброзичливі, як Web-сервер Apache. За винятком ситуацій, коли ви розбираєтеся зі збоями в роботі програми або хочете отримувати детальну інформацію про її роботі, ви швидше за все віддасте перевагу, щоб після запуску вона працювала у фоновому режимі. В іншому випадку додаток буде зупинено в момент, коли буде закрита оболонка. Така поведінка, очевидно, не підходить для серверних служб, якщо служба буде зупинятися кожен раз, коли ви закриваєте термінал з оболонкою або виходите з системи.

Якщо додаток запустити у фоновому режимі, воно продовжить працювати навіть після того, як ви закриєте вікно оболонки. Ви можете запустити додаток у фоновому режимі, додавши символ & в кінець команди, використовуваної для запуску програми. Наприклад, можна відкрити файл в редакторі vi, запущеному в фоновому режимі, за допомогою команди vi / etc / sysconfig / network &, так як символ & відкриває файл / etc / sysconfig / network і утримує його у фоновому режимі. Можна також скористатися утилітою nohup, яка дозволяє процесам продовжувати роботу навіть після того, як ви вийдете з системи:

nohup vi / etc / sysconfig / network &

В лістингу 3 файл відкривається для редагування в редакторі vi і перекладається в фоновий режим.

Лістинг 3. Лістинг 3. Запуск програми у фоновому режимі

# Vi / etc / sysconfig / network & [1] 24940 # jobs [1] + Stopped vi / etc / sysconfig / network

Щоб побачити список програм, що працюють у фоновому режимі, використовується команда jobs. Кожній задачі, що виконується в фоновому режимі, присвоюється послідовний номер, починаючи з 1. Задачі, показаної в лістингу 3 , Був встановлений номер 1, а 29940 - це ідентифікатор процесу (PID). Додаток можна перевести в звичайний режим за допомогою команди fg, вказавши при цьому номер певного завдання. У цьому прикладі користувач не використовує процес, тому він відображається в стані Stopped (зупинений). Однак команда fg 1 перемкне термінал назад в процес редагування файлу, зробивши його активним.

Запуск додатків з робочого столу

Запуск додатків з графічним інтерфейсом користувача (graphical user interface - GUI) з робочого столу в Linux не сильно відрізняється від аналогічної дії Windows. В основному вам потрібно зрозуміти, як саме додатки групуються в меню у вашому конкретному менеджерові віконного інтерфейсу (GNOME, KDE і т.д.). У Linux є безліч віконних додатків, призначених для виконання різних завдань. Деякі з них є "рідними" додатками Linux, в той час як інші, як розроблені на C # і використовують загальну середу виконання, можуть бути мультиплатформенними, подібно додатків на основі .NET Framework. Також в Linux можна запускати і ваші улюблені Windows-додатки за допомогою різних віртуальних середовищ, наприклад, Wine.

"Рідні" Linux-додатки

Як правило, можна знайти Linux-аналог для майже будь-якого Windows-програми. Запуск "рідних" Linux-додатків з робочого столу виконується вкрай просто. Також як і в Windows, зазвичай досить знайти потрібну програму в відповідному меню і клацнути кнопкою миші по його піктограмі, щоб воно запустилось.

Перед запуском додатків, які вимагають повноважень root, буде запропоновано ввести пароль root. В принципі це аналогічно опції Run as Administrator (запустити від імені адміністратора) в Windows. В інших випадках всі програми будуть запускатися в просторі користувача, що відноситься до облікового запису, якій ви скористалися для входу в систему.

У Windows ви можете поміщати на робочий стіл ярлики (shortucts), які використовуються для швидкого запуску програм. У Linux є аналогічні ярлики (тільки вони називаються завантажувачі - launchers), які можна поміщати на панель або робочий стіл. При натисканні лівою кнопкою миші по завантажувачу він запускає відповідну програму.

на малюнку 1 показані два завантажувача для Web-браузера Mozilla Firefox на робочому столі GNOME. Перший завантажувач розташований на панелі швидкого доступу, а другий на робочому столі.

Малюнок 1. Малюнок 1. Завантажники додатків на робочому столі і на панелі швидкого доступу

Mono

Безліч Windows-додатків було розроблено з використанням технології .NET Framework. Mono - це open source реалізація технології .NET, що працює на різних платформах, включаючи Linux. Насправді на сайті Mono написано, що Mono - це реалізація мови програмування C # і стандартного середовища виконання CLR (Common Language Runtime), бінарному сумісна з .NET. В даний момент цей проект підтримується спільнотою Xamarin.

На платформі Linux ви можете запускати додатки, розроблені в інфраструктурі .NET або Mono, точно так же, як в Windows. Однак нагадаю, що в Linux існують параметр umask і стандартні повноваження для роботи з файлами. Так що вам все одно буде потрібно надати необхідні права для доступу до файлу, щоб Linux дозволив запустити його.

Деякі мультиплатформенні додатки, розроблені в Mono, наприклад, F-Spot, можна встановити прямо на робочий стіл Linux, і вони будуть розташовуватися в одному меню разом з "рідними" додатками GNOME. F-Spot - це open-source додаток для роботи з фотографіями. Незважаючи на те, що воно написано на C #, воно відображається як рідне додаток GNOME. І якщо створити для нього завантажувач, то його можна буде запускати простим клацанням по ярлику точно так же, як в Windows.

на малюнку 2 показано розміщення Mono-додатки F-Spot і продемонстровано, як ви можете створити для нього завантажувачі на робочому столі або відповідної панелі.

Малюнок 2. Малюнок 2. Створення завантажувача для F-Spot

Wine

Середа Wine дозволяє запускати Windows-додатки на Linux та інших операційних системах. З її допомогою ви можете встановлювати і запускати ці програми точно так же, як в Windows. Wine все ще знаходиться в процесі активної розробки, і не всі Windows-програми можуть бути з нею сумісні. Якщо ваш додаток було скомпільовано для операційної системи Windows і при цьому може працювати під управлінням Wine, то, скоріше, за все це звичайне віконне додаток, а не серверне ПЗ. Не забудьте перевірити в документації Wine інформацію про можливості запуску вашого застосування під Linux, так як Wine підтримує далеко не всі програми.

При використанні Wine в Linux в домашньому каталозі вашого профілю створюється прихований каталог, емулює середовище Windows, як показано в лістингу 4 .

Лістинг 4. Лістинг 4. Прихований каталог Wine, емулює середовище виконання Windows

$ Cd /home/tbost/.wine/drive_c/windows $ ls cf8e.tmp command explorer.exe Fonts help hh.exe inf Installer ls.txt Microsoft.NET notepad.exe pwd.txt regedit.exe rundll.exe system system32 system .ini temp twain_32.dll twain.dll winhelp.exe winhlp32.exe win.ini winsxs

Після установки програми за допомогою Wine його зазвичай можна виявити в меню на робочому столі і запустити точно так же, як ви це робите в Windows.

Як приклад розглянемо програму Camstudio - open source інструмент для запису і редагування відео з екрану комп'ютера. В даний момент Camstudio не пропонує версії програми для операційної системи Linux. Однак, використовуючи Wine, я встановив Windows-версію на робочий стіл Linux. Wine-додатки зазвичай згруповані в меню Applications (додатки) -> Wine -> Programs (програми), як показано на малюнку 3 .

Linux для системних адміністраторів Windows: Як запускати додатки, що працюють під Linux

Linux для системних адміністраторів Windows

Запуск Linux-додатків з командного рядка і з робочого столу

Серія контенту:

Цей контент є частиною # з серії # статей: Linux для системних адміністраторів Windows

https://www.ibm.com/developerworks/ru/library/?series_title_by=**auto**

Слідкуйте за виходом нових статей цієї серії.

Цей контент є частиною серії: Linux для системних адміністраторів Windows

Слідкуйте за виходом нових статей цієї серії.

попередні вимоги

Щоб отримати максимальну користь від цієї статті, ви повинні мати досвід роботи з віконними додатками в середовищі Windows. Я також припускаю, що читач вже має базові знання про використання робочого столу Linux. Бажано, щоб у вас була працююча Linux-система, на якій можна було б досліджувати ідеї і приклади, представлені в цій статті.

огляд

Іноді первинний запуск програми на ОС Linux вимагає невеликих додаткових зусиль. Деякі додатки, наприклад, серверні служби, можуть не встановлюватися в якості служб, і їх доведеться запускати з командного рядка. Для облікового запису користувача, яка буде використовуватися для запуску додатків, необхідно встановити повноваження на запуск файлів додатків (прапор x).

Запуск додатків з простору користувача

У Linux процеси запускаються в просторі ядра або в просторі користувача. Простір користувача - це область операційної системи, в якій зазвичай запускаються програми. Простіше кажучи, кожна обліковий запис користувача має свій власний призначеним для користувача простором, і додатки працюють в цій галузі.

Доступ до простору ядра за замовчуванням має тільки користувач root. В ОС Linux користувач root - це привілейований користувач, якого можна порівняти з обліковим записом адміністратора в Windows. Запуск додатків від імені користувача root може становити загрозу з точки зору безпеки і тому не рекомендується.

Для запуску багатьох серверних служб потрібні повноваження root. Однак після того як служба запущена, користувач root зазвичай передає її під контроль облікового запису служби. Технічно, облікові записи служб в Linux - це звичайні облікові записи користувачів. Їх основна відмінність полягає в тому, що облікові записи служб застосовуються тільки для запуску конкретної служби і не призначені для того, щоб хтось використовував їх для входу в систему.

Налаштування повноважень

Повноваження для запуску файлу можна встановити за допомогою команди chmod. Параметр umask в Linux зазвичай забороняє запуск завантажених файлів, щоб забезпечити безпеку вашої Linux-системи.

У більшості дистрибутивів Linux параметр umask дорівнює 022, що означає, що за замовчуванням для нового файлу встановлені повноваження 644. Ці числові значення розшифровуються як - 4 - читання, 2 - запис, 1 - виконання. Так що завантаження програми з повноваженнями за замовчуванням - 644 - говорить про те, що власник файлу має права на читання і запис по відношенню до нього, в той час як група, що володіє файлом, і всі інші користувачі мають права тільки на читання.

Щоб надати всім користувачам права на запуск файлу, необхідно скористатися командним chmod a + x. Параметр а означає все (all), символ + - означає додати (add), а x означає виконати (execute). Крім того, якщо додаток - це серверна служба, необхідно переконатися, що тільки авторизовані облікові записи можуть використовуватися для запуску служби.

Якщо для запуску додатків досить повноважень стандартної облікового запису, але тільки певна група користувачів повинна мати права на використання цього додатка, то можна додати групі, що володіє файлом, повноваження для його запуску, а потім додавати користувачів до цієї групи.

Якщо говорити більш конкретно, то також можна налаштувати список управління доступом (access control list - ACL) з правами для виконуваного файлу, що дозволить певному користувачеві або групі запускати додаток. Використовуйте утиліту setfacl для установки прав за допомогою ACL.

Для додатків, які повинні запускатися від імені користувача root, наприклад, як серверних служб, є кілька варіантів. В таблиці 1 наведені різні способи, що дозволяють користувачам запускати сервісні служби, що вимагають повноважень root.

Таблиця 1. Таблиця 1. Варіанти запуску додатків, що вимагають повноважень root

Спосіб Опис від імені користувача root Не рекомендується для серверних служб. Допускається для додатків, коли користувач вже знає пароль root і можлива компрометація програми не є проблемою. setUID Не рекомендується з міркувань безпеки. Команда setUID дозволяє звичайному користувачеві запускати файли від імені іншого користувача, наприклад, root. sudo Загальновідома і загальноприйнята практика. Команда sudo надає користувачеві або групі права на запуск файлу, який в іншому випадку зажадав би повноважень root. При цьому користувачеві не потрібно знати пароля root. обліковий запис звичайного користувача з правом на роботу з файлами Встановити дозвіл на запуск файлу для користувача-власника, групи-власника або всім іншим. Це стандартний спосіб надання прав для запуску додатка користувачам, яким не потрібні повноваження root. обліковий запис звичайного користувача з повноваженнями в ACL Рідше використовується, але також життєздатний спосіб, коли небажано давати користувачеві права через sudo або змінювати права на доступ до файлу. Застосувавши до файлу команду setfacl, можна надати конкретному користувачу або групі користувачів право на запуск даного файлу.

Запуск програми з командного рядка

Запуск додатків з командного рядка є стандартною операцією в адмініструванні Linux-серверів. Багато додатків містять сценарії оболонки (аналогічні .bat-файлів в Windows), які запускають додатки і виконують інші завдання, наприклад, налаштування змінних середовища і передачу процесів іншим користувачам. Наприклад, для роботи програми може бути необхідна віртуальна Java ™ -машина (JVM). В даному випадку сценарії оболонки налаштовують відповідні змінні середовища, а потім виконують команду java для запуску JAR-архіву або class-файлу. Аналогічно йде справа і для додатків, що використовують Perl, Python і навіть C # (так, скомпільовані C # -Додатків можна запускати під Linux!).

Звичайні облікові записи і команди, які потребують повноважень root

Зверніть увагу, що в лістингах, наведених в цій статті, кожна команда починається з символу $ або #. Ці символи в оболонках Linux мають різне значення. Символ $ в запрошенні оболонки означає, що користувач має стандартними повноваженнями, а символ # говорить про те, що користувач має повноваження root (адміністратора). Для запуску команд, які наведені в лістингах з використанням символу #, вам буде потрібно sudo-доступ або прямий доступ до облікового запису root.

Стандартний спосіб запуску додатків з командного рядка або запрошення оболонки - це команда ./. Вводячи в Linux точку (.) І пряму лінію (/), ви повідомляєте середовищі, що хочете запустити файл в якості виконуваного процесу. Наприклад, щоб запустити виконуваний файл myapp, використовується команда ./myapp. Також ви можете вказати перед ім'ям файлу інтерпретатор мови, на якому він був написаний, наприклад:

Часто упаковані програми вже містять сценарії оболонки для настройки змінних середовища і надають шлях до інтерпретатора потрібну мову за допомогою символів # !, наприклад, #! / Usr / bin / python. Я рекомендую ознайомитися і з подібним підходом.

В лістингу 1 наведено стандартний сценарію catalina.sh, який використовується для запуску сервера додатків Apache Tomcat за допомогою ./ підходу. Потім для запуску сервера використовується sh-підхід. Так як в даному випадку використовується стандартний порт 8080, то ніяких спеціальних змін для запуску служби від імені звичайного користувача вносити не буде потрібно.

Лістинг 1. Лістинг 1. Запуск програми з командного рядка

$ ./Catalina.sh start Using CATALINA_BASE: /opt/apache-tomcat-7.0.26 Using CATALINA_HOME: /opt/apache-tomcat-7.0.26 Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.26/temp Using JRE_HOME : / usr Using CLASSPATH: /opt/apache-tomcat-7.0.26/bin/bootstrap.jar: /opt/apache-tomcat-7.0.26/bin/tomcat-juli.jar $ ./catalina.sh stop .. .................................................. ................. $ sh catalina.sh start Using CATALINA_BASE: /opt/apache-tomcat-7.0.26 Using CATALINA_HOME: /opt/apache-tomcat-7.0.26 Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.26/temp Using JRE_HOME: / usr Using CLASSPATH: /opt/apache-tomcat-7.0.26/bin/bootstrap.jar: /opt/apache-tomcat-7.0.26/ bin / tomcat-juli.jar

Розглянемо стандартний HTTP Web-сервер. На платформі Linux будь-який порт з номером менше 1024 вважається привілейованим, і такі порти може відкривати тільки користувач root. Так як за замовчуванням Web-сервери використовують порт 80, то для запуску такого процесу необхідні повноваження root. Як згадувалося вище, з точки зору безпеки не рекомендується запускати служби від імені користувача root. Знову ж правильним підходом буде запустити службу від імені root і передати її під управління обліковим записом користувача або спеціальної облікового запису для даної служби.

На щастя, у більшості серверних служб є сценарії для виконання подібної операції. Можна зібрати Web-сервер Apache з вихідного коду, запустити його від імені користувача root і передати управління потоками httpd користувачеві apache.

В лістингу 2 запускається стандартна зборка Web-сервера Apache 2. Процес установки виконує кілька дій, включаючи перетворення команди apachectl в виконуваний файл. Так як цей процес використовує порт 80, він запускається з повноваженнями root. Однак, як показує команда ps, процеси httpd виконуються під управлінням облікового запису apache.

Лістинг 2. Лістинг 2. Запуск Web-сервера Apache

# Cd / usr / local / apache2 / bin # apachectl start #ps aux | grep httpd apache 23094 0.0 0.3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k start apache 23095 0.0 0.3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k start apache 23096 0.0 0.3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k start apache 23097 0.0 0.3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k start apache 23098 0.0 0.3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k start

Запуск програм у фоновому режимі

Деякі встановлені програми можуть бути не так доброзичливі, як Web-сервер Apache. За винятком ситуацій, коли ви розбираєтеся зі збоями в роботі програми або хочете отримувати детальну інформацію про її роботі, ви швидше за все віддасте перевагу, щоб після запуску вона працювала у фоновому режимі. В іншому випадку додаток буде зупинено в момент, коли буде закрита оболонка. Така поведінка, очевидно, не підходить для серверних служб, якщо служба буде зупинятися кожен раз, коли ви закриваєте термінал з оболонкою або виходите з системи.

Якщо додаток запустити у фоновому режимі, воно продовжить працювати навіть після того, як ви закриєте вікно оболонки. Ви можете запустити додаток у фоновому режимі, додавши символ & в кінець команди, використовуваної для запуску програми. Наприклад, можна відкрити файл в редакторі vi, запущеному в фоновому режимі, за допомогою команди vi / etc / sysconfig / network &, так як символ & відкриває файл / etc / sysconfig / network і утримує його у фоновому режимі. Можна також скористатися утилітою nohup, яка дозволяє процесам продовжувати роботу навіть після того, як ви вийдете з системи:

nohup vi / etc / sysconfig / network &

В лістингу 3 файл відкривається для редагування в редакторі vi і перекладається в фоновий режим.

Лістинг 3. Лістинг 3. Запуск програми у фоновому режимі

# Vi / etc / sysconfig / network & [1] 24940 # jobs [1] + Stopped vi / etc / sysconfig / network

Щоб побачити список програм, що працюють у фоновому режимі, використовується команда jobs. Кожній задачі, що виконується в фоновому режимі, присвоюється послідовний номер, починаючи з 1. Задачі, показаної в лістингу 3 , Був встановлений номер 1, а 29940 - це ідентифікатор процесу (PID). Додаток можна перевести в звичайний режим за допомогою команди fg, вказавши при цьому номер певного завдання. У цьому прикладі користувач не використовує процес, тому він відображається в стані Stopped (зупинений). Однак команда fg 1 перемкне термінал назад в процес редагування файлу, зробивши його активним.

Запуск додатків з робочого столу

Запуск додатків з графічним інтерфейсом користувача (graphical user interface - GUI) з робочого столу в Linux не сильно відрізняється від аналогічної дії Windows. В основному вам потрібно зрозуміти, як саме додатки групуються в меню у вашому конкретному менеджерові віконного інтерфейсу (GNOME, KDE і т.д.). У Linux є безліч віконних додатків, призначених для виконання різних завдань. Деякі з них є "рідними" додатками Linux, в той час як інші, як розроблені на C # і використовують загальну середу виконання, можуть бути мультиплатформенними, подібно додатків на основі .NET Framework. Також в Linux можна запускати і ваші улюблені Windows-додатки за допомогою різних віртуальних середовищ, наприклад, Wine.

"Рідні" Linux-додатки

Як правило, можна знайти Linux-аналог для майже будь-якого Windows-програми. Запуск "рідних" Linux-додатків з робочого столу виконується вкрай просто. Також як і в Windows, зазвичай досить знайти потрібну програму в відповідному меню і клацнути кнопкою миші по його піктограмі, щоб воно запустилось.

Перед запуском додатків, які вимагають повноважень root, буде запропоновано ввести пароль root. В принципі це аналогічно опції Run as Administrator (запустити від імені адміністратора) в Windows. В інших випадках всі програми будуть запускатися в просторі користувача, що відноситься до облікового запису, якій ви скористалися для входу в систему.

У Windows ви можете поміщати на робочий стіл ярлики (shortucts), які використовуються для швидкого запуску програм. У Linux є аналогічні ярлики (тільки вони називаються завантажувачі - launchers), які можна поміщати на панель або робочий стіл. При натисканні лівою кнопкою миші по завантажувачу він запускає відповідну програму.

на малюнку 1 показані два завантажувача для Web-браузера Mozilla Firefox на робочому столі GNOME. Перший завантажувач розташований на панелі швидкого доступу, а другий на робочому столі.

Малюнок 1. Малюнок 1. Завантажники додатків на робочому столі і на панелі швидкого доступу

Mono

Безліч Windows-додатків було розроблено з використанням технології .NET Framework. Mono - це open source реалізація технології .NET, що працює на різних платформах, включаючи Linux. Насправді на сайті Mono написано, що Mono - це реалізація мови програмування C # і стандартного середовища виконання CLR (Common Language Runtime), бінарному сумісна з .NET. В даний момент цей проект підтримується спільнотою Xamarin.

На платформі Linux ви можете запускати додатки, розроблені в інфраструктурі .NET або Mono, точно так же, як в Windows. Однак нагадаю, що в Linux існують параметр umask і стандартні повноваження для роботи з файлами. Так що вам все одно буде потрібно надати необхідні права для доступу до файлу, щоб Linux дозволив запустити його.

Деякі мультиплатформенні додатки, розроблені в Mono, наприклад, F-Spot, можна встановити прямо на робочий стіл Linux, і вони будуть розташовуватися в одному меню разом з "рідними" додатками GNOME. F-Spot - це open-source додаток для роботи з фотографіями. Незважаючи на те, що воно написано на C #, воно відображається як рідне додаток GNOME. І якщо створити для нього завантажувач, то його можна буде запускати простим клацанням по ярлику точно так же, як в Windows.

на малюнку 2 показано розміщення Mono-додатки F-Spot і продемонстровано, як ви можете створити для нього завантажувачі на робочому столі або відповідної панелі.

Малюнок 2. Малюнок 2. Створення завантажувача для F-Spot

Wine

Середа Wine дозволяє запускати Windows-додатки на Linux та інших операційних системах. З її допомогою ви можете встановлювати і запускати ці програми точно так же, як в Windows. Wine все ще знаходиться в процесі активної розробки, і не всі Windows-програми можуть бути з нею сумісні. Якщо ваш додаток було скомпільовано для операційної системи Windows і при цьому може працювати під управлінням Wine, то, скоріше, за все це звичайне віконне додаток, а не серверне ПЗ. Не забудьте перевірити в документації Wine інформацію про можливості запуску вашого застосування під Linux, так як Wine підтримує далеко не всі програми.

При використанні Wine в Linux в домашньому каталозі вашого профілю створюється прихований каталог, емулює середовище Windows, як показано в лістингу 4 .

Лістинг 4. Лістинг 4. Прихований каталог Wine, емулює середовище виконання Windows

$ Cd /home/tbost/.wine/drive_c/windows $ ls cf8e.tmp command explorer.exe Fonts help hh.exe inf Installer ls.txt Microsoft.NET notepad.exe pwd.txt regedit.exe rundll.exe system system32 system .ini temp twain_32.dll twain.dll winhelp.exe winhlp32.exe win.ini winsxs

Після установки програми за допомогою Wine його зазвичай можна виявити в меню на робочому столі і запустити точно так же, як ви це робите в Windows.

Як приклад розглянемо програму Camstudio - open source інструмент для запису і редагування відео з екрану комп'ютера. В даний момент Camstudio не пропонує версії програми для операційної системи Linux. Однак, використовуючи Wine, я встановив Windows-версію на робочий стіл Linux. Wine-додатки зазвичай згруповані в меню Applications (додатки) -> Wine -> Programs (програми), як показано на малюнку 3 .

Малюнок 3. Малюнок 3. Запуск Windows-програми під Linux с помощью Wine

Висновок

При роботі з Linux-сервером вам напевно доведеться зіткнутися з ПЗ, яке запускається як з робочого столу, так і з командного рядка. Ви зможете безпечно запускати ці програми після того, як зрозумієте, як грамотно налаштовувати повноваження і облікові записи користувачів. Для тривалих процесів, наприклад, серверних служб, кращим буде запуск з командного рядка і у фоновому режимі. Якщо ж ваші додатки запускаються з робочого столу, ви зможете запускати їх точно так же, а в деяких випадках зможете виконувати навіть Windows-програми.

Ресурси для скачування

Схожі тими

Підпішіть мене на ПОВІДОМЛЕННЯ до коментарів

Linux для системних адміністраторів Windows: Як запускати додатки, що працюють під Linux

Linux для системних адміністраторів Windows

Запуск Linux-додатків з командного рядка і з робочого столу

Серія контенту:

Цей контент є частиною # з серії # статей: Linux для системних адміністраторів Windows

https://www.ibm.com/developerworks/ru/library/?series_title_by=**auto**

Слідкуйте за виходом нових статей цієї серії.

Цей контент є частиною серії: Linux для системних адміністраторів Windows

Слідкуйте за виходом нових статей цієї серії.

попередні вимоги

Щоб отримати максимальну користь від цієї статті, ви повинні мати досвід роботи з віконними додатками в середовищі Windows. Я також припускаю, що читач вже має базові знання про використання робочого столу Linux. Бажано, щоб у вас була працююча Linux-система, на якій можна було б досліджувати ідеї і приклади, представлені в цій статті.

огляд

Іноді первинний запуск програми на ОС Linux вимагає невеликих додаткових зусиль. Деякі додатки, наприклад, серверні служби, можуть не встановлюватися в якості служб, і їх доведеться запускати з командного рядка. Для облікового запису користувача, яка буде використовуватися для запуску додатків, необхідно встановити повноваження на запуск файлів додатків (прапор x).

Запуск додатків з простору користувача

У Linux процеси запускаються в просторі ядра або в просторі користувача. Простір користувача - це область операційної системи, в якій зазвичай запускаються програми. Простіше кажучи, кожна обліковий запис користувача має свій власний призначеним для користувача простором, і додатки працюють в цій галузі.

Доступ до простору ядра за замовчуванням має тільки користувач root. В ОС Linux користувач root - це привілейований користувач, якого можна порівняти з обліковим записом адміністратора в Windows. Запуск додатків від імені користувача root може становити загрозу з точки зору безпеки і тому не рекомендується.

Для запуску багатьох серверних служб потрібні повноваження root. Однак після того як служба запущена, користувач root зазвичай передає її під контроль облікового запису служби. Технічно, облікові записи служб в Linux - це звичайні облікові записи користувачів. Їх основна відмінність полягає в тому, що облікові записи служб застосовуються тільки для запуску конкретної служби і не призначені для того, щоб хтось використовував їх для входу в систему.

Налаштування повноважень

Повноваження для запуску файлу можна встановити за допомогою команди chmod. Параметр umask в Linux зазвичай забороняє запуск завантажених файлів, щоб забезпечити безпеку вашої Linux-системи.

У більшості дистрибутивів Linux параметр umask дорівнює 022, що означає, що за замовчуванням для нового файлу встановлені повноваження 644. Ці числові значення розшифровуються як - 4 - читання, 2 - запис, 1 - виконання. Так що завантаження програми з повноваженнями за замовчуванням - 644 - говорить про те, що власник файлу має права на читання і запис по відношенню до нього, в той час як група, що володіє файлом, і всі інші користувачі мають права тільки на читання.

Щоб надати всім користувачам права на запуск файлу, необхідно скористатися командним chmod a + x. Параметр а означає все (all), символ + - означає додати (add), а x означає виконати (execute). Крім того, якщо додаток - це серверна служба, необхідно переконатися, що тільки авторизовані облікові записи можуть використовуватися для запуску служби.

Якщо для запуску додатків досить повноважень стандартної облікового запису, але тільки певна група користувачів повинна мати права на використання цього додатка, то можна додати групі, що володіє файлом, повноваження для його запуску, а потім додавати користувачів до цієї групи.

Якщо говорити більш конкретно, то також можна налаштувати список управління доступом (access control list - ACL) з правами для виконуваного файлу, що дозволить певному користувачеві або групі запускати додаток. Використовуйте утиліту setfacl для установки прав за допомогою ACL.

Для додатків, які повинні запускатися від імені користувача root, наприклад, як серверних служб, є кілька варіантів. В таблиці 1 наведені різні способи, що дозволяють користувачам запускати сервісні служби, що вимагають повноважень root.

Таблиця 1. Таблиця 1. Варіанти запуску додатків, що вимагають повноважень root

Спосіб Опис від імені користувача root Не рекомендується для серверних служб. Допускається для додатків, коли користувач вже знає пароль root і можлива компрометація програми не є проблемою. setUID Не рекомендується з міркувань безпеки. Команда setUID дозволяє звичайному користувачеві запускати файли від імені іншого користувача, наприклад, root. sudo Загальновідома і загальноприйнята практика. Команда sudo надає користувачеві або групі права на запуск файлу, який в іншому випадку зажадав би повноважень root. При цьому користувачеві не потрібно знати пароля root. обліковий запис звичайного користувача з правом на роботу з файлами Встановити дозвіл на запуск файлу для користувача-власника, групи-власника або всім іншим. Це стандартний спосіб надання прав для запуску додатка користувачам, яким не потрібні повноваження root. обліковий запис звичайного користувача з повноваженнями в ACL Рідше використовується, але також життєздатний спосіб, коли небажано давати користувачеві права через sudo або змінювати права на доступ до файлу. Застосувавши до файлу команду setfacl, можна надати конкретному користувачу або групі користувачів право на запуск даного файлу.

Запуск програми з командного рядка

Запуск додатків з командного рядка є стандартною операцією в адмініструванні Linux-серверів. Багато додатків містять сценарії оболонки (аналогічні .bat-файлів в Windows), які запускають додатки і виконують інші завдання, наприклад, налаштування змінних середовища і передачу процесів іншим користувачам. Наприклад, для роботи програми може бути необхідна віртуальна Java ™ -машина (JVM). В даному випадку сценарії оболонки налаштовують відповідні змінні середовища, а потім виконують команду java для запуску JAR-архіву або class-файлу. Аналогічно йде справа і для додатків, що використовують Perl, Python і навіть C # (так, скомпільовані C # -Додатків можна запускати під Linux!).

Звичайні облікові записи і команди, які потребують повноважень root

Зверніть увагу, що в лістингах, наведених в цій статті, кожна команда починається з символу $ або #. Ці символи в оболонках Linux мають різне значення. Символ $ в запрошенні оболонки означає, що користувач має стандартними повноваженнями, а символ # говорить про те, що користувач має повноваження root (адміністратора). Для запуску команд, які наведені в лістингах з використанням символу #, вам буде потрібно sudo-доступ або прямий доступ до облікового запису root.

Стандартний спосіб запуску додатків з командного рядка або запрошення оболонки - це команда ./. Вводячи в Linux точку (.) І пряму лінію (/), ви повідомляєте середовищі, що хочете запустити файл в якості виконуваного процесу. Наприклад, щоб запустити виконуваний файл myapp, використовується команда ./myapp. Також ви можете вказати перед ім'ям файлу інтерпретатор мови, на якому він був написаний, наприклад:

Часто упаковані програми вже містять сценарії оболонки для настройки змінних середовища і надають шлях до інтерпретатора потрібну мову за допомогою символів # !, наприклад, #! / Usr / bin / python. Я рекомендую ознайомитися і з подібним підходом.

В лістингу 1 наведено стандартний сценарію catalina.sh, який використовується для запуску сервера додатків Apache Tomcat за допомогою ./ підходу. Потім для запуску сервера використовується sh-підхід. Так як в даному випадку використовується стандартний порт 8080, то ніяких спеціальних змін для запуску служби від імені звичайного користувача вносити не буде потрібно.

Лістинг 1. Лістинг 1. Запуск програми з командного рядка

$ ./Catalina.sh start Using CATALINA_BASE: /opt/apache-tomcat-7.0.26 Using CATALINA_HOME: /opt/apache-tomcat-7.0.26 Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.26/temp Using JRE_HOME : / usr Using CLASSPATH: /opt/apache-tomcat-7.0.26/bin/bootstrap.jar: /opt/apache-tomcat-7.0.26/bin/tomcat-juli.jar $ ./catalina.sh stop .. .................................................. ................. $ sh catalina.sh start Using CATALINA_BASE: /opt/apache-tomcat-7.0.26 Using CATALINA_HOME: /opt/apache-tomcat-7.0.26 Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.26/temp Using JRE_HOME: / usr Using CLASSPATH: /opt/apache-tomcat-7.0.26/bin/bootstrap.jar: /opt/apache-tomcat-7.0.26/ bin / tomcat-juli.jar

Розглянемо стандартний HTTP Web-сервер. На платформі Linux будь-який порт з номером менше 1024 вважається привілейованим, і такі порти може відкривати тільки користувач root. Так як за замовчуванням Web-сервери використовують порт 80, то для запуску такого процесу необхідні повноваження root. Як згадувалося вище, з точки зору безпеки не рекомендується запускати служби від імені користувача root. Знову ж правильним підходом буде запустити службу від імені root і передати її під управління обліковим записом користувача або спеціальної облікового запису для даної служби.

На щастя, у більшості серверних служб є сценарії для виконання подібної операції. Можна зібрати Web-сервер Apache з вихідного коду, запустити його від імені користувача root і передати управління потоками httpd користувачеві apache.

В лістингу 2 запускається стандартна зборка Web-сервера Apache 2. Процес установки виконує кілька дій, включаючи перетворення команди apachectl в виконуваний файл. Так як цей процес використовує порт 80, він запускається з повноваженнями root. Однак, як показує команда ps, процеси httpd виконуються під управлінням облікового запису apache.

Лістинг 2. Лістинг 2. Запуск Web-сервера Apache

# Cd / usr / local / apache2 / bin # apachectl start #ps aux | grep httpd apache 23094 0.0 0.3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k start apache 23095 0.0 0.3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k start apache 23096 0.0 0.3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k start apache 23097 0.0 0.3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k start apache 23098 0.0 0.3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k start

Запуск програм у фоновому режимі

Деякі встановлені програми можуть бути не так доброзичливі, як Web-сервер Apache. За винятком ситуацій, коли ви розбираєтеся зі збоями в роботі програми або хочете отримувати детальну інформацію про її роботі, ви швидше за все віддасте перевагу, щоб після запуску вона працювала у фоновому режимі. В іншому випадку додаток буде зупинено в момент, коли буде закрита оболонка. Така поведінка, очевидно, не підходить для серверних служб, якщо служба буде зупинятися кожен раз, коли ви закриваєте термінал з оболонкою або виходите з системи.

Якщо додаток запустити у фоновому режимі, воно продовжить працювати навіть після того, як ви закриєте вікно оболонки. Ви можете запустити додаток у фоновому режимі, додавши символ & в кінець команди, використовуваної для запуску програми. Наприклад, можна відкрити файл в редакторі vi, запущеному в фоновому режимі, за допомогою команди vi / etc / sysconfig / network &, так як символ & відкриває файл / etc / sysconfig / network і утримує його у фоновому режимі. Можна також скористатися утилітою nohup, яка дозволяє процесам продовжувати роботу навіть після того, як ви вийдете з системи:

nohup vi / etc / sysconfig / network &

В лістингу 3 файл відкривається для редагування в редакторі vi і перекладається в фоновий режим.

Лістинг 3. Лістинг 3. Запуск програми у фоновому режимі

# Vi / etc / sysconfig / network & [1] 24940 # jobs [1] + Stopped vi / etc / sysconfig / network

Щоб побачити список програм, що працюють у фоновому режимі, використовується команда jobs. Кожній задачі, що виконується в фоновому режимі, присвоюється послідовний номер, починаючи з 1. Задачі, показаної в лістингу 3 , Був встановлений номер 1, а 29940 - це ідентифікатор процесу (PID). Додаток можна перевести в звичайний режим за допомогою команди fg, вказавши при цьому номер певного завдання. У цьому прикладі користувач не використовує процес, тому він відображається в стані Stopped (зупинений). Однак команда fg 1 перемкне термінал назад в процес редагування файлу, зробивши його активним.

Запуск додатків з робочого столу

Запуск додатків з графічним інтерфейсом користувача (graphical user interface - GUI) з робочого столу в Linux не сильно відрізняється від аналогічної дії Windows. В основному вам потрібно зрозуміти, як саме додатки групуються в меню у вашому конкретному менеджерові віконного інтерфейсу (GNOME, KDE і т.д.). У Linux є безліч віконних додатків, призначених для виконання різних завдань. Деякі з них є "рідними" додатками Linux, в той час як інші, як розроблені на C # і використовують загальну середу виконання, можуть бути мультиплатформенними, подібно додатків на основі .NET Framework. Також в Linux можна запускати і ваші улюблені Windows-додатки за допомогою різних віртуальних середовищ, наприклад, Wine.

"Рідні" Linux-додатки

Як правило, можна знайти Linux-аналог для майже будь-якого Windows-програми. Запуск "рідних" Linux-додатків з робочого столу виконується вкрай просто. Також як і в Windows, зазвичай досить знайти потрібну програму в відповідному меню і клацнути кнопкою миші по його піктограмі, щоб воно запустилось.

Перед запуском додатків, які вимагають повноважень root, буде запропоновано ввести пароль root. В принципі це аналогічно опції Run as Administrator (запустити від імені адміністратора) в Windows. В інших випадках всі програми будуть запускатися в просторі користувача, що відноситься до облікового запису, якій ви скористалися для входу в систему.

У Windows ви можете поміщати на робочий стіл ярлики (shortucts), які використовуються для швидкого запуску програм. У Linux є аналогічні ярлики (тільки вони називаються завантажувачі - launchers), які можна поміщати на панель або робочий стіл. При натисканні лівою кнопкою миші по завантажувачу він запускає відповідну програму.

на малюнку 1 показані два завантажувача для Web-браузера Mozilla Firefox на робочому столі GNOME. Перший завантажувач розташований на панелі швидкого доступу, а другий на робочому столі.

Малюнок 1. Малюнок 1. Завантажники додатків на робочому столі і на панелі швидкого доступу

Mono

Безліч Windows-додатків було розроблено з використанням технології .NET Framework. Mono - це open source реалізація технології .NET, що працює на різних платформах, включаючи Linux. Насправді на сайті Mono написано, що Mono - це реалізація мови програмування C # і стандартного середовища виконання CLR (Common Language Runtime), бінарному сумісна з .NET. В даний момент цей проект підтримується спільнотою Xamarin.

На платформі Linux ви можете запускати додатки, розроблені в інфраструктурі .NET або Mono, точно так же, як в Windows. Однак нагадаю, що в Linux існують параметр umask і стандартні повноваження для роботи з файлами. Так що вам все одно буде потрібно надати необхідні права для доступу до файлу, щоб Linux дозволив запустити його.

Деякі мультиплатформенні додатки, розроблені в Mono, наприклад, F-Spot, можна встановити прямо на робочий стіл Linux, і вони будуть розташовуватися в одному меню разом з "рідними" додатками GNOME. F-Spot - це open-source додаток для роботи з фотографіями. Незважаючи на те, що воно написано на C #, воно відображається як рідне додаток GNOME. І якщо створити для нього завантажувач, то його можна буде запускати простим клацанням по ярлику точно так же, як в Windows.

на малюнку 2 показано розміщення Mono-додатки F-Spot і продемонстровано, як ви можете створити для нього завантажувачі на робочому столі або відповідної панелі.

Малюнок 2. Малюнок 2. Створення завантажувача для F-Spot

Wine

Середа Wine дозволяє запускати Windows-додатки на Linux та інших операційних системах. З її допомогою ви можете встановлювати і запускати ці програми точно так же, як в Windows. Wine все ще знаходиться в процесі активної розробки, і не всі Windows-програми можуть бути з нею сумісні. Якщо ваш додаток було скомпільовано для операційної системи Windows і при цьому може працювати під управлінням Wine, то, скоріше, за все це звичайне віконне додаток, а не серверне ПЗ. Не забудьте перевірити в документації Wine інформацію про можливості запуску вашого застосування під Linux, так як Wine підтримує далеко не всі програми.

При використанні Wine в Linux в домашньому каталозі вашого профілю створюється прихований каталог, емулює середовище Windows, як показано в лістингу 4 .

Лістинг 4. Лістинг 4. Прихований каталог Wine, емулює середовище виконання Windows

$ Cd /home/tbost/.wine/drive_c/windows $ ls cf8e.tmp command explorer.exe Fonts help hh.exe inf Installer ls.txt Microsoft.NET notepad.exe pwd.txt regedit.exe rundll.exe system system32 system .ini temp twain_32.dll twain.dll winhelp.exe winhlp32.exe win.ini winsxs

Після установки програми за допомогою Wine його зазвичай можна виявити в меню на робочому столі і запустити точно так же, як ви це робите в Windows.

Як приклад розглянемо програму Camstudio - open source інструмент для запису і редагування відео з екрану комп'ютера. В даний момент Camstudio не пропонує версії програми для операційної системи Linux. Однак, використовуючи Wine, я встановив Windows-версію на робочий стіл Linux. Wine-додатки зазвичай згруповані в меню Applications (додатки) -> Wine -> Programs (програми), як показано на малюнку 3 .

Малюнок 3. Малюнок 3. Запуск Windows-програми під Linux за допомогою Wine

висновок

При роботі з Linux-сервером вам напевно доведеться зіткнутися з ПЗ, яке запускається як з робочого столу, так і з командного рядка. Ви зможете безпечно запускати ці програми після того, як зрозумієте, як грамотно налаштовувати повноваження і облікові записи користувачів. Для тривалих процесів, наприклад, серверних служб, кращим буде запуск з командного рядка і у фоновому режимі. Якщо ж ваші додатки запускаються з робочого столу, ви зможете запускати їх точно так же, а в деяких випадках зможете виконувати навіть Windows-програми.

Ресурси для скачування

Схожі теми

Підпишіть мене на повідомлення до коментарів

Linux для системних адміністраторів Windows: Як запускати додатки, що працюють під Linux

Linux для системних адміністраторів Windows

Запуск Linux-додатків з командного рядка і з робочого столу

Серія контенту:

Цей контент є частиною # з серії # статей: Linux для системних адміністраторів Windows

https://www.ibm.com/developerworks/ru/library/?series_title_by=**auto**

Слідкуйте за виходом нових статей цієї серії.

Цей контент є частиною серії: Linux для системних адміністраторів Windows

Слідкуйте за виходом нових статей цієї серії.

попередні вимоги

Щоб отримати максимальну користь від цієї статті, ви повинні мати досвід роботи з віконними додатками в середовищі Windows. Я також припускаю, що читач вже має базові знання про використання робочого столу Linux. Бажано, щоб у вас була працююча Linux-система, на якій можна було б досліджувати ідеї і приклади, представлені в цій статті.

огляд

Іноді первинний запуск програми на ОС Linux вимагає невеликих додаткових зусиль. Деякі додатки, наприклад, серверні служби, можуть не встановлюватися в якості служб, і їх доведеться запускати з командного рядка. Для облікового запису користувача, яка буде використовуватися для запуску додатків, необхідно встановити повноваження на запуск файлів додатків (прапор x).

Запуск додатків з простору користувача

У Linux процеси запускаються в просторі ядра або в просторі користувача. Простір користувача - це область операційної системи, в якій зазвичай запускаються програми. Простіше кажучи, кожна обліковий запис користувача має свій власний призначеним для користувача простором, і додатки працюють в цій галузі.

Доступ до простору ядра за замовчуванням має тільки користувач root. В ОС Linux користувач root - це привілейований користувач, якого можна порівняти з обліковим записом адміністратора в Windows. Запуск додатків від імені користувача root може становити загрозу з точки зору безпеки і тому не рекомендується.

Для запуску багатьох серверних служб потрібні повноваження root. Однак після того як служба запущена, користувач root зазвичай передає її під контроль облікового запису служби. Технічно, облікові записи служб в Linux - це звичайні облікові записи користувачів. Їх основна відмінність полягає в тому, що облікові записи служб застосовуються тільки для запуску конкретної служби і не призначені для того, щоб хтось використовував їх для входу в систему.

Налаштування повноважень

Повноваження для запуску файлу можна встановити за допомогою команди chmod. Параметр umask в Linux зазвичай забороняє запуск завантажених файлів, щоб забезпечити безпеку вашої Linux-системи.

У більшості дистрибутивів Linux параметр umask дорівнює 022, що означає, що за замовчуванням для нового файлу встановлені повноваження 644. Ці числові значення розшифровуються як - 4 - читання, 2 - запис, 1 - виконання. Так що завантаження програми з повноваженнями за замовчуванням - 644 - говорить про те, що власник файлу має права на читання і запис по відношенню до нього, в той час як група, що володіє файлом, і всі інші користувачі мають права тільки на читання.

Щоб надати всім користувачам права на запуск файлу, необхідно скористатися командним chmod a + x. Параметр а означає все (all), символ + - означає додати (add), а x означає виконати (execute). Крім того, якщо додаток - це серверна служба, необхідно переконатися, що тільки авторизовані облікові записи можуть використовуватися для запуску служби.

Якщо для запуску додатків досить повноважень стандартної облікового запису, але тільки певна група користувачів повинна мати права на використання цього додатка, то можна додати групі, що володіє файлом, повноваження для його запуску, а потім додавати користувачів до цієї групи.

Якщо говорити більш конкретно, то також можна налаштувати список управління доступом (access control list - ACL) з правами для виконуваного файлу, що дозволить певному користувачеві або групі запускати додаток. Використовуйте утиліту setfacl для установки прав за допомогою ACL.

Для додатків, які повинні запускатися від імені користувача root, наприклад, як серверних служб, є кілька варіантів. В таблиці 1 наведені різні способи, що дозволяють користувачам запускати сервісні служби, що вимагають повноважень root.

Таблиця 1. Таблиця 1. Варіанти запуску додатків, що вимагають повноважень root

Спосіб Опис від імені користувача root Не рекомендується для серверних служб. Допускається для додатків, коли користувач вже знає пароль root і можлива компрометація програми не є проблемою. setUID Не рекомендується з міркувань безпеки. Команда setUID дозволяє звичайному користувачеві запускати файли від імені іншого користувача, наприклад, root. sudo Загальновідома і загальноприйнята практика. Команда sudo надає користувачеві або групі права на запуск файлу, який в іншому випадку зажадав би повноважень root. При цьому користувачеві не потрібно знати пароля root. обліковий запис звичайного користувача з правом на роботу з файлами Встановити дозвіл на запуск файлу для користувача-власника, групи-власника або всім іншим. Це стандартний спосіб надання прав для запуску додатка користувачам, яким не потрібні повноваження root. обліковий запис звичайного користувача з повноваженнями в ACL Рідше використовується, але також життєздатний спосіб, коли небажано давати користувачеві права через sudo або змінювати права на доступ до файлу. Застосувавши до файлу команду setfacl, можна надати конкретному користувачу або групі користувачів право на запуск даного файлу.

Запуск програми з командного рядка

Запуск додатків з командного рядка є стандартною операцією в адмініструванні Linux-серверів. Багато додатків містять сценарії оболонки (аналогічні .bat-файлів в Windows), які запускають додатки і виконують інші завдання, наприклад, налаштування змінних середовища і передачу процесів іншим користувачам. Наприклад, для роботи програми може бути необхідна віртуальна Java ™ -машина (JVM). В даному випадку сценарії оболонки налаштовують відповідні змінні середовища, а потім виконують команду java для запуску JAR-архіву або class-файлу. Аналогічно йде справа і для додатків, що використовують Perl, Python і навіть C # (так, скомпільовані C # -Додатків можна запускати під Linux!).

Звичайні облікові записи і команди, які потребують повноважень root

Зверніть увагу, що в лістингах, наведених в цій статті, кожна команда починається з символу $ або #. Ці символи в оболонках Linux мають різне значення. Символ $ в запрошенні оболонки означає, що користувач має стандартними повноваженнями, а символ # говорить про те, що користувач має повноваження root (адміністратора). Для запуску команд, які наведені в лістингах з використанням символу #, вам буде потрібно sudo-доступ або прямий доступ до облікового запису root.

Стандартний спосіб запуску додатків з командного рядка або запрошення оболонки - це команда ./. Вводячи в Linux точку (.) І пряму лінію (/), ви повідомляєте середовищі, що хочете запустити файл в якості виконуваного процесу. Наприклад, щоб запустити виконуваний файл myapp, використовується команда ./myapp. Також ви можете вказати перед ім'ям файлу інтерпретатор мови, на якому він був написаний, наприклад:

Часто упаковані програми вже містять сценарії оболонки для настройки змінних середовища і надають шлях до інтерпретатора потрібну мову за допомогою символів # !, наприклад, #! / Usr / bin / python. Я рекомендую ознайомитися і з подібним підходом.

В лістингу 1 наведено стандартний сценарію catalina.sh, який використовується для запуску сервера додатків Apache Tomcat за допомогою ./ підходу. Потім для запуску сервера використовується sh-підхід. Так як в даному випадку використовується стандартний порт 8080, то ніяких спеціальних змін для запуску служби від імені звичайного користувача вносити не буде потрібно.

Лістинг 1. Лістинг 1. Запуск програми з командного рядка

$ ./Catalina.sh start Using CATALINA_BASE: /opt/apache-tomcat-7.0.26 Using CATALINA_HOME: /opt/apache-tomcat-7.0.26 Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.26/temp Using JRE_HOME : / usr Using CLASSPATH: /opt/apache-tomcat-7.0.26/bin/bootstrap.jar: /opt/apache-tomcat-7.0.26/bin/tomcat-juli.jar $ ./catalina.sh stop .. .................................................. ................. $ sh catalina.sh start Using CATALINA_BASE: /opt/apache-tomcat-7.0.26 Using CATALINA_HOME: /opt/apache-tomcat-7.0.26 Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.26/temp Using JRE_HOME: / usr Using CLASSPATH: /opt/apache-tomcat-7.0.26/bin/bootstrap.jar: /opt/apache-tomcat-7.0.26/ bin / tomcat-juli.jar

Розглянемо стандартний HTTP Web-сервер. На платформі Linux будь-який порт з номером менше 1024 вважається привілейованим, і такі порти може відкривати тільки користувач root. Так як за замовчуванням Web-сервери використовують порт 80, то для запуску такого процесу необхідні повноваження root. Як згадувалося вище, з точки зору безпеки не рекомендується запускати служби від імені користувача root. Знову ж правильним підходом буде запустити службу від імені root і передати її під управління обліковим записом користувача або спеціальної облікового запису для даної служби.

На щастя, у більшості серверних служб є сценарії для виконання подібної операції. Можна зібрати Web-сервер Apache з вихідного коду, запустити його від імені користувача root і передати управління потоками httpd користувачеві apache.

В лістингу 2 запускається стандартна зборка Web-сервера Apache 2. Процес установки виконує кілька дій, включаючи перетворення команди apachectl в виконуваний файл. Так як цей процес використовує порт 80, він запускається з повноваженнями root. Однак, як показує команда ps, процеси httpd виконуються під управлінням облікового запису apache.

Лістинг 2. Лістинг 2. Запуск Web-сервера Apache

# Cd / usr / local / apache2 / bin # apachectl start #ps aux | grep httpd apache 23094 0.0 0.3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k start apache 23095 0.0 0.3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k start apache 23096 0.0 0.3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k start apache 23097 0.0 0.3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k start apache 23098 0.0 0.3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k start

Запуск програм у фоновому режимі

Деякі встановлені програми можуть бути не так доброзичливі, як Web-сервер Apache. За винятком ситуацій, коли ви розбираєтеся зі збоями в роботі програми або хочете отримувати детальну інформацію про її роботі, ви швидше за все віддасте перевагу, щоб після запуску вона працювала у фоновому режимі. В іншому випадку додаток буде зупинено в момент, коли буде закрита оболонка. Така поведінка, очевидно, не підходить для серверних служб, якщо служба буде зупинятися кожен раз, коли ви закриваєте термінал з оболонкою або виходите з системи.

Якщо додаток запустити у фоновому режимі, воно продовжить працювати навіть після того, як ви закриєте вікно оболонки. Ви можете запустити додаток у фоновому режимі, додавши символ & в кінець команди, використовуваної для запуску програми. Наприклад, можна відкрити файл в редакторі vi, запущеному в фоновому режимі, за допомогою команди vi / etc / sysconfig / network &, так як символ & відкриває файл / etc / sysconfig / network і утримує його у фоновому режимі. Можна також скористатися утилітою nohup, яка дозволяє процесам продовжувати роботу навіть після того, як ви вийдете з системи:

nohup vi / etc / sysconfig / network &

В лістингу 3 файл відкривається для редагування в редакторі vi і перекладається в фоновий режим.

Лістинг 3. Лістинг 3. Запуск програми у фоновому режимі

# Vi / etc / sysconfig / network & [1] 24940 # jobs [1] + Stopped vi / etc / sysconfig / network

Щоб побачити список програм, що працюють у фоновому режимі, використовується команда jobs. Кожній задачі, що виконується в фоновому режимі, присвоюється послідовний номер, починаючи з 1. Задачі, показаної в лістингу 3 , Був встановлений номер 1, а 29940 - це ідентифікатор процесу (PID). Додаток можна перевести в звичайний режим за допомогою команди fg, вказавши при цьому номер певного завдання. У цьому прикладі користувач не використовує процес, тому він відображається в стані Stopped (зупинений). Однак команда fg 1 перемкне термінал назад в процес редагування файлу, зробивши його активним.

Запуск додатків з робочого столу

Запуск додатків з графічним інтерфейсом користувача (graphical user interface - GUI) з робочого столу в Linux не сильно відрізняється від аналогічної дії Windows. В основному вам потрібно зрозуміти, як саме додатки групуються в меню у вашому конкретному менеджерові віконного інтерфейсу (GNOME, KDE і т.д.). У Linux є безліч віконних додатків, призначених для виконання різних завдань. Деякі з них є "рідними" додатками Linux, в той час як інші, як розроблені на C # і використовують загальну середу виконання, можуть бути мультиплатформенними, подібно додатків на основі .NET Framework. Також в Linux можна запускати і ваші улюблені Windows-додатки за допомогою різних віртуальних середовищ, наприклад, Wine.

"Рідні" Linux-додатки

Як правило, можна знайти Linux-аналог для майже будь-якого Windows-програми. Запуск "рідних" Linux-додатків з робочого столу виконується вкрай просто. Також як і в Windows, зазвичай досить знайти потрібну програму в відповідному меню і клацнути кнопкою миші по його піктограмі, щоб воно запустилось.

Перед запуском додатків, які вимагають повноважень root, буде запропоновано ввести пароль root. В принципі це аналогічно опції Run as Administrator (запустити від імені адміністратора) в Windows. В інших випадках всі програми будуть запускатися в просторі користувача, що відноситься до облікового запису, якій ви скористалися для входу в систему.

У Windows ви можете поміщати на робочий стіл ярлики (shortucts), які використовуються для швидкого запуску програм. У Linux є аналогічні ярлики (тільки вони називаються завантажувачі - launchers), які можна поміщати на панель або робочий стіл. При натисканні лівою кнопкою миші по завантажувачу він запускає відповідну програму.

на малюнку 1 показані два завантажувача для Web-браузера Mozilla Firefox на робочому столі GNOME. Перший завантажувач розташований на панелі швидкого доступу, а другий на робочому столі.

Малюнок 1. Малюнок 1. Завантажники додатків на робочому столі і на панелі швидкого доступу

Mono

Безліч Windows-додатків було розроблено з використанням технології .NET Framework. Mono - це open source реалізація технології .NET, що працює на різних платформах, включаючи Linux. Насправді на сайті Mono написано, що Mono - це реалізація мови програмування C # і стандартного середовища виконання CLR (Common Language Runtime), бінарному сумісна з .NET. В даний момент цей проект підтримується спільнотою Xamarin.

На платформі Linux ви можете запускати додатки, розроблені в інфраструктурі .NET або Mono, точно так же, як в Windows. Однак нагадаю, що в Linux існують параметр umask і стандартні повноваження для роботи з файлами. Так що вам все одно буде потрібно надати необхідні права для доступу до файлу, щоб Linux дозволив запустити його.

Деякі мультиплатформенні додатки, розроблені в Mono, наприклад, F-Spot, можна встановити прямо на робочий стіл Linux, і вони будуть розташовуватися в одному меню разом з "рідними" додатками GNOME. F-Spot - це open-source додаток для роботи з фотографіями. Незважаючи на те, що воно написано на C #, воно відображається як рідне додаток GNOME. І якщо створити для нього завантажувач, то його можна буде запускати простим клацанням по ярлику точно так же, як в Windows.

на малюнку 2 показано розміщення Mono-додатки F-Spot і продемонстровано, як ви можете створити для нього завантажувачі на робочому столі або відповідної панелі.

Малюнок 2. Малюнок 2. Створення завантажувача для F-Spot

Wine

Середа Wine дозволяє запускати Windows-додатки на Linux та інших операційних системах. З її допомогою ви можете встановлювати і запускати ці програми точно так же, як в Windows. Wine все ще знаходиться в процесі активної розробки, і не всі Windows-програми можуть бути з нею сумісні. Якщо ваш додаток було скомпільовано для операційної системи Windows і при цьому може працювати під управлінням Wine, то, скоріше, за все це звичайне віконне додаток, а не серверне ПЗ. Не забудьте перевірити в документації Wine інформацію про можливості запуску вашого застосування під Linux, так як Wine підтримує далеко не всі програми.

При використанні Wine в Linux в домашньому каталозі вашого профілю створюється прихований каталог, емулює середовище Windows, як показано в лістингу 4 .

Лістинг 4. Лістинг 4. Прихований каталог Wine, емулює середовище виконання Windows

$ Cd /home/tbost/.wine/drive_c/windows $ ls cf8e.tmp command explorer.exe Fonts help hh.exe inf Installer ls.txt Microsoft.NET notepad.exe pwd.txt regedit.exe rundll.exe system system32 system .ini temp twain_32.dll twain.dll winhelp.exe winhlp32.exe win.ini winsxs

Після установки програми за допомогою Wine його зазвичай можна виявити в меню на робочому столі і запустити точно так же, як ви це робите в Windows.

Як приклад розглянемо програму Camstudio - open source інструмент для запису і редагування відео з екрану комп'ютера. В даний момент Camstudio не пропонує версії програми для операційної системи Linux. Однак, використовуючи Wine, я встановив Windows-версію на робочий стіл Linux. Wine-додатки зазвичай згруповані в меню Applications (додатки) -> Wine -> Programs (програми), як показано на малюнку 3 .

Малюнок 3. Малюнок 3. Запуск Windows-програми під Linux за допомогою Wine

висновок

При роботі з Linux-сервером вам напевно доведеться зіткнутися з ПЗ, яке запускається як з робочого столу, так і з командного рядка. Ви зможете безпечно запускати ці програми після того, як зрозумієте, як грамотно налаштовувати повноваження і облікові записи користувачів. Для тривалих процесів, наприклад, серверних служб, кращим буде запуск з командного рядка і у фоновому режимі. Якщо ж ваші додатки запускаються з робочого столу, ви зможете запускати їх точно так же, а в деяких випадках зможете виконувати навіть Windows-програми.

Ресурси для скачування

Схожі теми

Підпишіть мене на повідомлення до коментарів

Com/developerworks/ru/library/?
Com/developerworks/ru/library/?
Com/developerworks/ru/library/?
Com/developerworks/ru/library/?
Com/developerworks/ru/library/?

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

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: