Блог о системном администрировании. статьи о linux, windows, схд netapp и виртуализации

VirtualBox

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

Для запуска приложения в виртуалке вам понадобится установочный образ Windows в формате ISO. Загрузите и установите VirtualBox, создайте в нём виртуальную машину, укажите ей ISO с Windows, а затем просто установите систему как обычно.

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

Установка и настройка SQL Server в каждом узле кластераInstall and configure SQL Server on each cluster node

  1. Установите и настройте SQL Server в обоих узлах.Install and setup SQL Server on both nodes. Подробные инструкции см. в статье Установка SQL Server в Linux.For detailed instructions, see Install SQL Server on Linux.

  2. В целях настройки назначьте один узел первичным, а другой — вторичным.Designate one node as primary and the other as secondary, for purposes of configuration. Используйте приведенные ниже условия для работы с этим руководством.Use these terms for the following this guide.

  3. Остановите и отключите SQL Server во вторичном узле.On the secondary node, stop and disable SQL Server.

    В следующем примере показаны остановка и отключение SQL Server:The following example stops and disables SQL Server:

Примечание

Во время установки главный ключ сервера для экземпляра SQL Server создается и помещается в папку .At setup time, a Server Master Key is generated for the SQL Server instance and placed at . На Linux SQL Server всегда выполняется как локальная учетная запись с именем mssql.On Linux, SQL Server always runs as a local account called mssql. Так как это локальная учетная запись, ее удостоверение не является общим во всех узлах.Because it’s a local account, its identity isn’t shared across nodes. Поэтому необходимо скопировать ключ шифрования из первичного узла в каждый вторичный узел, чтобы каждая локальная учетная запись mssql могла получить к нему доступ для расшифровки главного ключа сервера.Therefore, you need to copy the encryption key from primary node to each secondary node so each local mssql account can access it to decrypt the Server Master Key.

  1. В первичном узле создайте имя входа SQL Server для Pacemaker и предоставьте разрешение на выполнение .On the primary node, create a SQL server login for Pacemaker and grant the login permission to run . Pacemaker использует эту учетную запись, чтобы проверить, в каком узле запущен SQL Server.Pacemaker uses this account to verify which node is running SQL Server.

    Подключитесь к базе данных SQL Server с помощью учетной записи SA и выполните следующую команду:Connect to the SQL Server database with the sa account and run the following:

    Вы также можете задать разрешения на более детальном уровне.Alternatively, you can set the permissions at a more granular level. Имени входа Pacemaker требуется разрешение для запроса состояния работоспособности с помощью sp_server_diagnostics, а также и для изменения имени экземпляра FCI на имя ресурса с помощью sp_dropserver и sp_addserver.The Pacemaker login requires to query health status with sp_server_diagnostics, and to update the FCI instance name with the resource name by running sp_dropserver and sp_addserver.

  2. Остановите и отключите SQL Server в первичном узле.On the primary node, stop and disable SQL Server.

  3. В каждом узле кластера настройте файл hosts.Configure the hosts file for each cluster node. Файл hosts должен содержать IP-адрес и имя каждого узла кластера.The host file must include the IP address and name of every cluster node.

    Проверьте IP-адрес для каждого узла.Check the IP address for each node. Для отображения IP-адреса текущего узла выполните следующий сценарий.The following script shows the IP address of your current node.

    Задайте имя компьютера в каждом узле.Set the computer name on each node. Присвойте каждому узлу уникальное имя длиной не более 15 символов.Give each node a unique name that is 15 characters or less. Задайте имя компьютера, добавив его к .Set the computer name by adding it to . Следующий сценарий позволяет изменить с помощью .The following script lets you edit with .

    В следующем примере показан файл с дополнениями для двух узлов и .The following example shows with additions for two nodes named and .

В следующем разделе вы настроите общее хранилище и переместите в него файлы базы данных.In the next section you will configure shared storage and move your database files to that storage.

Настройка sudo и прав доступа на выполнение различных команд

sudo позволяет разрешать или запрещать пользователям выполнение конкретного набора программ. Все настройки, связанные с правами доступа, хранятся в файле . Это не совсем обычный файл. Для его редактирования необходимо (в целях безопасности) использовать команду

sudo visudo

По умолчанию, в нём написано, что все члены группы admin имеют полный доступ к , о чём говорит строчка

%admin ALL=(ALL) ALL

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

man sudoers

Если вы допустите ошибку при редактировании этого файла, то вполне возможно полностью лишитесь доступа к административным функциям. Если такое случилось, то необходимо загрузиться в recovery mode, при этом вы автоматически получите права администратора и сможете всё исправить. Кроме того, отредактировать этот файл можно с LiveCD.

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

Для того, что бы система не запрашивала пароль при определенных командах необходимо в sudoers после строки # Cmnd alias specification добавить строку, где через запятую перечислить желаемые команды с полным путём(путь команды можно узнать, выполнив which имя_команды:

# Cmnd alias specification
Cmnd_Alias SHUTDOWN_CMDS = /sbin/shutdown, /usr/sbin/pm-hibernate, /sbin/reboot

И в конец файла дописать строку

имя_пользователя ALL=(ALL) NOPASSWD: SHUTDOWN_CMDS

Внимание! Вышеописанные действия не отменяют необходимости ввода команды sudo перед вашей командой

Создание синонимов (alias`ов)

Для того, чтобы не только не вводить пароль для sudo, но и вообще не вводить sudo, сделайте следующее:
откройте файл .bashrc, находящейся в вашем домашнем каталоге

 nano ~bashrc 

и добавьте в конец файла строки

alias reboot='sudo reboot'
alias poweroff='sudo poweroff'
alias pm-hibernate='sudo pm-hibernate'
alias hibernate='sudo pm-hibernate'
alias shutdown='sudo shutdown' 

Установка программ с собственным инсталлятором из файлов sh, run

Иногда программы могут распространяться с собственным инсталлятором. Это ничем не отличается от ситуации в Windows. Только здесь, распаковав tar.gz архив с дистрибутивом программы, вы вместо setup.exe увидите что-то наподобие install.sh.
Это заранее собранный пакет ПО, который оформлен в виде скрипта или бинарника, он берёт на себя работу по размещению файлов в нужных местах и прописыванию нужных параметров. При этом пропадает возможность управлять таким ПО с помощью пакетного менеджера. Пользоваться такими пакетами нежелательно, но если выбора нет, то переходим в директорию с файлом, например:

cd ~/soft

Разрешаем выполнять этот файл:

chmod +x install.sh

Запускаем его:

sudo ./install.sh

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

Иногда дистрибутив программы распространяется в виде самораспаковывающегося архива. В таком случае это будет просто один единственный файл .sh который и нужно запустить. Дальше вы просто получите мастер где нужно будет ответить на ряд вопросов, так же как это делается в Windows. Так устанавливаются официальные драйверы nVidia, ATI, среда разработчика NetBeans и т.п.

Есть программы, которые не нуждаются в инсталляции и распространяются в виде обычного архива tar.gz, который просто достаточно куда-то распаковать. В Windows также есть такие программы, их еще часто называют словом Portable. Устанавливать такие программы не требуется, достаточно распаковать в любое место, но стандартное место обычно — это каталог /opt. Конечно, пункты на запуск в меню вам придется добавлять вручную, для этого нужно щелкнуть правой кнопкой по заголовку меню Программы и выбрать Правка меню.

Основы

Как упомянуто выше, основное предназначение — запуск программ в фоновом режиме. В качестве примера будет взят , демон-клиент для p2p-сети soulseek. start-stop-daemon имеет два обязательных параметра: (или ) и (), один из которых должен присутствовать в любой команде. Далее следуют параметры, указывающие, что и как запустить.

Запуск демона

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

start-stop-daemon -Sx usrbinmuseekd

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

start-stop-daemon -Sbvx usrbinmuseekd

Программа запустится и будет работать в фоне. Для взятого примера этого достаточно.

Остановка демона

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

start-stop-daemon -Kvx usrbinmuseekd

start-stop-daemon найдет процесс museekd и остановит его (по умолчанию — отправив SIGTERM).

PHP не может сохранить файл даже если достаточно прав на запись

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

Такое поведение может выглядеть необъяснимым, если вы не знаете о директиве open_basedir в главном конфигурационном файле php.ini. Данная директива ограничивает все файловые операции теми папками, которые указаны с ней. Пример:

open_basedir = /srv/http/:/etc/webapps/:/usr/share/webapps/:/tmp/:

Данная запись означает, что PHP скрипт может записывать файлы в папку /srv/http/, а также в папки /etc/webapps/, /usr/share/webapps/ и /tmp/.

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

При работе в консоли PHP скрипт может пытаться сохранить файлы, например, в текущую папку — если эта папка не указана в open_basedir, но при этом сама директива open_basedir настроена, то возникнет описанная проблема: PHP не сможет записывать файлы даже в папку открытую для всех.

Wine

Название Wine расшифровывается как Wine Is Not an Emulator. Это своего рода прослойка между приложениями Windows и системой Linux. Он позволяет устанавливать и запускать многие популярные Windows-программы и работать с ними так, как будто это родные приложения Linux.

Чтобы установить Wine, воспользуйтесь соответствующей командой.

1. Ubuntu, Debian, Mint:

2. Fedora:

3. openSUSE:

4. Arch, Manjaro:

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

Теперь скачайте установщик нужного вам приложения Windows, найдите папку с ним в вашем файловом менеджере и откройте файл. Либо введите команду .

Windows-приложение запустится и будет работать так же, как и всегда. Если вы открыли установочный файл, начнётся установка приложения — как в Windows. Если программа не требует установки, вы сможете начать работать с ней немедленно.

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

Причины, по которым в Ubuntu не загружается рабочий стол

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

Иными словами, не обновляется рабочий стол на платформе Линукс. Причин того, что не запускается графическая оболочка Ubuntu, достаточно много:

  1. Проблема в самом оборудовании. Пользователя должно смутить не только то, что пропал рабочий стол Ubuntu, но и невозможность вообще войти в BIOS системы. Однако устранить эту неполадку можно только в сервисном центре.
  2. Неполадки в работе программы-загрузчика Grub. Неправильное обновление ведет к повреждению различных файлов этой программы, что в итоге выливается в невозможность запустить графическую оболочку Ubuntu.
  3. Конфликт драйверов различных базовых программ. В этом случае работа обновленных программ может не состыковываться с ранними версиями приложений. Именно поэтому возникает пустой рабочий стол Ubuntu. Решать эту проблему также стоит со специалистами компьютерного центра.
  4. Плохая работа самого интерфейса может приводить к тому, что Ubuntu не грузится после обновления.
  5. Отключение электроэнергии и источников питания оставляет Ubuntu без графической оболочки. В этом случае достаточно наладить электросеть и перезагрузить гаджет.
  6. Отсутствие необходимых дополнительных компонентов. Именно поэтому пользователь не заходит в Ubuntu после ввода пароля.

Исходя из вышеперечисленного, можно предположить, что способов решения проблемы тоже много.

Совет! Новичку для консультации лучше обратиться к проверенному специалисту.

Использование традиционного root аккаунта и команды su

Разблокировка учетной записи root приводит неоправданным рискам (работая постоянно под рутом вы имеете 100500 способов «отстрелить себе ногу»), а также упрощает получение доступа к вашему компьютеру злоумышленником.

Ubuntu 11.04 и младше

Для входа под root достаточно задать ему пароль:

sudo passwd root

Потом на экране входа нажмите Другой… и введите логин (root) и пароль, который вы задали.

Ubuntu 11.10 и старше

Начиная с версии 11.10 был установлен менеджер входа lightdm, и дело со входом под root обстоит немного сложнее.

1. Устанавливаем root пароль.
Введите в терминал:

sudo passwd root

2. Включаем пункт «Введите логин».
Введите в терминал:

gksu gedit /etc/lightdm/lightdm.conf

В конце файла допишите:

greeter-show-manual-login=true

3. Перезагружаем lightdm.
Введите в терминал:

sudo service lightdm restart

Все, на экране входа появится пункт «Логин».
В поле логин вводим «root», в поле пароль — пароль, который мы задали на первом этапе.

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

sudo passwd -l root

Запуск программ в терминале

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

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

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

Разработчики придумали обходной путь. Была создана переменная PATH, в которой хранятся все пути к папкам где обычно находятся программы — /bin, /sbin, /usr/bin, /usr/sbin и так далее. Вы можете посмотреть ее содержимое командой:

Когда вы набираете имя программы система ищет исполняемый файл с таким именем по всем папкам из PATH и если находит — то выполняет. Если же такого файла нет, то выдается сообщение — command not found. Таким образом, чтобы запустить одну из системных программ достаточно набрать имя ее исполняемого файла, например:

И можно передать параметры после пробела:

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

Если же вы хотите запустить программу через терминал ubuntu, которая находится в текущей папке, то ситуация будет немного другой. Система выполняет только поиск по папкам из переменной PATH, в текущей директории она не ищет. Поэтому, если вы наберете имя исполняемого файла, то получите ошибку. Нужно указывать полный путь, как вы помните путь к текущей папке будет ./:

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

имя_переменной=значение команда

Например:

По умолчанию эта команда открывает настройки утилиты sudo в редакторе Vim, но с этой переменной окружения настройки откроются в редакторе nano.

Настройка полномочий

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

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

Чтобы предоставить всем пользователям права на запуск файла, необходимо воспользоваться командной . Параметр означает все (all), символ — означает добавить (add), а означает выполнить (execute). Кроме того, если приложение — это серверная служба, необходимо убедиться, что только авторизованные учетные записи могут использоваться для запуска службы.

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

Если говорить более конкретно, то также можно настроить список управления доступом (access control list — ACL) с правами для исполняемого файла, что позволит определенному пользователю или группе запускать приложение. Используйте утилиту для установки прав с помощью ACL.

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

Таблица 1. Таблица 1. Варианты запуска приложений, требующих полномочий root
Способ Описание
от имени пользователя root Не рекомендуется для серверных служб. Допускается для приложений, когда пользователь уже знает пароль root и возможная компрометация приложения не является проблемой.
Не рекомендуется по соображениям безопасности. Команда позволяет обычному пользователю запускать файлы от имени другого пользователя, например, root.
Общеизвестная и общепринятая практика. Команда предоставляет пользователю или группе права на запуск файла, который в другом случае потребовал бы полномочий root. При этом пользователю не требуется знать пароля root.
учетная запись обычного пользователя с правом на работу с файлами Установить разрешение на запуск файла для пользователя-владельца, группы-владельца или всем остальным. Это стандартный способ предоставления прав для запуска приложения пользователям, которым не требуются полномочия root.
учетная запись обычного пользователя с полномочиями в ACL Реже используемый, но также жизнеспособный способ, когда нежелательно давать пользователю права через или изменять права на доступ к файлу. Применив к файлу команду , можно предоставить конкретному пользователю или группе пользователей право на запуск данного файла.

Заключение

Другие статьи в этой серии

Ознакомьтесь с другими статьями из серии «Linux для системных администраторов Windows».

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

Похожие темы

  • Linux for Windows systems administrators: Understand how to execute applications that run on Linux: оригинал статьи (EN).
  • Windows-to-Linux roadmap: Part 9. Installing software (Chris Walden, developerWorks, ноябрь 2003 г.) (EN): статья об установке ПО на операционной системе Linux.
  • Сравнение DOS и Linux-команд..
  • Узнайте больше о запуске Windows-приложений на платформе Linux c помощью Wine.
  • Узнайте, как запускать приложения, написанные для инфраструктуры .NET, с помощью технологии Mono.

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

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

Маленький итог:

В данной статье я постарался, как можно прозрачней описать процесс запуска операционных систем UNIX, в том виде, в каком я его понял. Некоторые пособия/статьи разделяют загрузку на большее количество этапов. Я постарался изложить так, чтобы прочитав статью, можно было понять процесс загрузки UNIX не вчитываясь в кучу других материалов. Конечно, никто не запрещает углубиться в изучение процесса загрузки ОС, благо в интернете их достаточно. Жду комментариев и дополнений.

Что еще почитать:

upd 2011.01.21: переработано и дополнено описание upd 2011.06.10: дополнено описание upd 2011.06.12: переработка и дополнение всех этапов загрузки, добавление процесса загрузки upstart и ОС BSD.upd 2011.06.27: Дополнение .

Ссылка на основную публикацию