- Многопользовательская работа в Linux
- Как установить Linux и Windows на одном компьютере?
- Что потребуется?
- 1. Установочный диск Windows 10
- 2. Установочный диск Ubuntu 18.04
- 3. Пустой CD или USB-накопитель
- 4. Архив доступных файлов
- 5. Свободное время
- Настройка жесткого диска
- 1. Очистить диск
- 2. Зайти в управление дисками
- 3. Создать усадочный раздел
- 4. Установка и настройка Windows
- 5. Создать файловые папки
- 6. Установите и настройте Linux Ubuntu
- Перекрестное опыление: управляем Linux из-под Windows, и наоборот
- Microsoft Loves Linux
- Магомед не идет к горе
- Гора идет к Магомету
- В хозяйстве пригодится
Многопользовательская работа в Linux
Unix (и Linux) был изначально ориентирован на то, что одним компьютером могут пользоваться одновременно несколько человек. Но даже если компьютером обычно пользуется только один человек, такой подход все равно помогает разделить пользовательские настройки от системных, т.е. тех, которые относятся ко всем пользователям и к системе в целом. Такое разделение положительно сказывается на устойчивости и безопасности системы. Приложения изначально пишутся с учетом того, что ими может пользоваться несколько пользователей сразу и, как правило, не требуют прав записи в системные каталоги. Все настройки они сохраняют в собственном, т.н. «домашнем» каталоге пользователя. Каждый пользователь может настроить систему в соответствии со своими предпочтениями и это не вызовет проблем у других пользователей. Обычно работа ведется под пользователем, у которого нет прав испортить что-то за пределами своего каталога, а настройка системы производится под суперпользователем по мере необходимости. Многопользовательский режим позволяет производить настройку системы не прерывая работы пользователей.
Работа в системе под пользователем с ограниченными правами позволяет предотвратить повреждение системы при неаккуратных действиях пользователя, а отсутствие доступа на запись к системным каталогам не приносит неудобств.
Права доступа в Linux
Каждый файл и каталог (каталоги также являются файлами с особой структурой) в операционной системе Linux имеет ярлык (этикетку, атрибуты, attributes), который используется ядром при определении того, что может данный пользователь делать с этим файлом: читать, изменять или запускать файл (программу) на исполнение.
Права доступа определены для трех уровней пользователей: самого владельца файла, для пользователей, принадлежащих к группе (скажем, группа программистов, работающих над одним проектом), и для всех прочих пользователей. Особняком стоит администратор системы, который может производить любые операции с файлами.
Когда вы заходите в систему, то регистрируетесь, вводя свой пароль и имя. Если система вас опознает, вы получаете доступ к файловой системе. Правда, для ускорения быстродействия системы вы работаете в ней не под своим именем, а используете идентификатор (номер) пользователя (User ID, сокращенно UID). Соответствие между именами и UID указывается в файле /etc/passwd.
Пользователи, принадлежащие к какой-либо группе, получают еще один идентификатор – GID (group ID). Один пользователь может принадлежать к нескольким группам и иметь несколько номеров GID. Общие права группы распространяются на всех ее участников. Сочетания имен и номеров содержатся в файле /etc/group.
Остальные пользователи, не владеющие файлами и не являющиеся членами группы, обозначаются как прочие (others). Такие пользователи имеют очень мало прав, а то и вовсе ими не обладают.
Для описания прав доступа используется следующий шаблон: владелец группа прочие.
Так как информация о правах записывается в ярлыке файла в виде битов (минимальная единица информации), то для облегчения понимания того, как распределяются права, используется запись, представленная в правой колонке табл. 1.2. Также популярно использование восьмеричной системы, так как для идентификации каждого уровня пользователей используются три бита (тремя битами можно обозначить только восемь значений):
• 1 = право исполнения (- – х), сокращенно от execute – исполнять;
• 2 = право редактирования (-W-), сокращенно от write – писать;
• 3 = право чтения ( г – -), сокращенно от read – читать.
Например, файл, с которым любой пользователь может производить любые операции, имеет следующее обозначение прав доступа:
Для обычных (нормальных) файлов используется следующий вариант (разрешено чтение и редактирование для всех):
Если владелец файла не хочет, чтобы к его файлу имели доступ, например, если это личное письмо или конфиденциальная информация, то устанавливаются следующие атрибуты:
Для каталогов, как и для файлов, устанавливаются права доступа. Следовательно, возникают коллизии, когда вы имеете полные права на файл, находящийся в каталоге, но подпадаете под ограничения, установленные для вас атрибутами каталога.
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ — конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой.
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим.
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰).
Как установить Linux и Windows на одном компьютере?
Windows 10 и Ubuntu, несмотря на их различия, могут «сосуществовать» вместе на одном компьютере. Вот как вы можете настроить домашний компьютер или ноутбук для дополнительной загрузки двух систем (так называемая двойная загрузка) в зависимости от ваших конкретных потребностей.
По умолчанию Windows 10 получает контроль над загрузкой системы, поскольку она запрограммирована как единственная операционная система на компьютере. С другой стороны, Linux-системы призваны воспринимать Windows как «хобби». Поэтому любой, кто хочет работать с обеими ОС на одном компьютере, должен знать все о неудобствах совместного использования файлов и настроек, необходимых для этого совместного «проживания». Процесс установки одинаков что для новой машины, что для той, на которой уже установлена Windows 10.
Что потребуется?
1. Установочный диск Windows 10
Для новых установок вам потребуется либо полная версия установки, либо диск обновления системы.
2. Установочный диск Ubuntu 18.04
Вы можете скачать архив ISO с официального сайта или использовать «Альтернативные варианты загрузки». Я рекомендую использовать 64-разрядную версию операционной системы. Поэтому выбираем файл ubuntu-18.04.1-desktop-amd64.iso.
3. Пустой CD или USB-накопитель
Этот компакт-диск нужен, чтобы загрузить на него Ubuntu ISO для последующей установки. Если вы выберете второй вариант (USB-накопитель), вам понадобится UNetBootin для Windows или Linux.
4. Архив доступных файлов
Это необходимо в любом случае, когда Windows 10 уже установлена, чтобы защитить ваши файлы в случае возникновения проблем.
5. Свободное время
Чтобы все сделать, вам понадобится как минимум 2 часа для установки двух операционных систем.
Настройка жесткого диска
Если у вас еще не стоит никакой ОС или вы создать резервную копию данных, вам этот шаг не нужен. Но если у вас уже установлена Windows и вы хотите создать место для Linux Ubuntu, продолжайте читать.
Если у вас установлена Windows, выполните следующие действия:
1. Очистить диск
Очистите ненужные приложения и те программы, которые вы больше не используете. Вы можете использовать Revo Uninstaller для удаления ненужных приложений.
2. Зайти в управление дисками
Перейдите в меню Пуск -> Управление дисками. Скорее всего, вы увидите большой и небольшой разделы, второй из них содержит важную информацию об операционной системе. Этот раздел обычно составляет 100 МБ и его не следует изменять.
3. Создать усадочный раздел
Щелкните правой кнопкой мыши на более крупном разделе и выберите параметр «усадочный раздел».
Необходимо создать три раздела на вашем жестком диске: один для Windows, один для Linux и один для файлов, которые вы будете использовать с одной из двух операционных систем.
Как это произойдет? Если вы используете установщик Ubuntu с компакт-диска или флеш-накопителя, просто запустите программу GParted из System -> Administration.
Окно разделов откроется на ваших разделах жесткого диска. Вы можете установить 15ГБ для Windows и 15ГБ для Linux Ububntu, а остальные оставить для файлов.
Если Windows уже установлена, просто создайте раздел Linux, щелкнув Unallocated, отформатируйте как NTFS и, например, переименуйте его в Ubuntu, а затем отформатируйте остальную часть пространства как NTFS и назовите его, например, Storage.
4. Установка и настройка Windows
Следуйте инструкциям на установочном диске.
5. Создать файловые папки
Создавайте папки в хранилище для файлов, которые вы используете на своем компьютере с двух платформ: «Документы», «Музыка», «Картинки», «Видео» и т.д.
6. Установите и настройте Linux Ubuntu
На этот раз перезагрузите компьютер и загрузите с диска Linux Ubuntu. Следуйте инструкциям на установочном диске. Когда вы доберетесь до раздела «Подготовка места на диске», выберите «Определить разделы вручную» -> «Переслать». Затем выберите пространство NTFS, которое находится после Windows, и нажмите «Добавить». Вам нужно обязательно добавить метку «/».
Завершите установку и перезагрузите компьютер. Теперь вы увидите список доступных операционных систем. Удачи!
Большое спасибо за прочтение! Пожалуйста, поставьте лайк и подпишитесь на канал. Этим Вы очень поможете в развитии блога!
Перекрестное опыление: управляем Linux из-под Windows, и наоборот
В прошлой статье я обещал рассмотреть механизм удаленного подключения с Windows на серверы под управлением *nix, и наоборот при помощи PowerShell. Обещанного обычно ждут три года, но я успел чуть раньше. Что ж, если хочется с верного макбука управлять гетерогенной инфраструктурой, или наоборот ― с Surface Pro рулить Linux-серверами без всяких putty, ― прошу под кат.
Microsoft Loves Linux
Еще в 2015 году Microsoft торжественно объявила о запуске программы «Microsoft Linux». Сюда вошла как банальная поддержка гостевых *nix-like OS на Hyper-V, так и встроенная в Windows 10 Ubuntu и возможность запуска в Docker продуктов Microsoft, таких как SQL Server.
Компания также опубликовала исходный код PowerShell, что позволило запускать «Ракушку Мощи» не только на Windows. Из-под одноименного аккаунта на Github, помимо исходного кода, выложены и бинарники под большинство современных систем (лицензия MIT).
Это позволяет настроить удаленное управление с помощью единого инструмента ― PowerShell. Помимо подключения к консоли компьютера, можно запускать отдельные команды, в том числе и на нескольких серверах одновременно. Довольно удобно для автоматизации задач администрирования, таких как массовое изменение настроек, инвентаризация, сбор логов.
Порой удобно совмещать традиционные консольные команды со вставками PowerShell:
Для подключения к Windows-машинам при помощи PowerShell используется протокол WS-Man. Для GNU\Linux привычен SSH. Так как сегодня становятся универсальными оба протокола, разберем их подробнее.
PowerShell 6.0 под Windows и *nix, пока еще находится в бете. Поэтому не рекомендую без хорошего тестирования применять на боевых серверах описанное ниже.
Магомед не идет к горе
Когда технология удаленного доступа при помощи PowerShell только набирала обороты, единственным универсальным способом подключения к разным системам был протокол WS-Man. Для тестового стенда я взял Windows Server 2016 и Centos 7, для которых и буду настраивать возможность удаленного подключения и выполнения команд при помощи этого протокола.
Для начала установим на Centos свежий PowerShell:
После установки появилась возможность запускать привычные Windows-администратору командлеты. Например, посмотрим версию PS и получим список запущенных процессов командлетами $PSVersionTable и Get-Process:
Работаем в консоли PowerShell на CentOS.
Чтобы подключаться к Linux-машине с консоли Windows, нам понадобится установить и настроить:
- OMI (Open Management Infrastructure) ― адаптация WMI, которую также можно использовать для управления компьютерами с ОС, отличными от Windows;
- PSRP (PowerShell Remoting Protocol) ― библиотека, необходимая для удаленного подключения PowerShell.
Подробно с работой и эволюцией OMI и PSRP можно ознакомиться в отличном материале от Matt Wrock, я же просто установлю OMI командой:
Далее нужно настроить порты и аутентификацию в конфигурационном файле /etc/opt/omi/conf/omiserver.conf, после чего перезапустить сервер командой:
Для упрощения эксперимента я не буду настраивать ни NTLM-аутентификацию, ни Kerberos. Еще и шифрование отключу ― разумеется, в боевой среде делать этого не стоит. Для включения текстовой аутентификации и шифрования на стороне Windows в работе winrm достаточно выполнить следующие команды:
После настройки можно проверить работу OMI из консоли Windows:
Подключаемся к CentOS из cmd.
Теперь проверим работу обратным подключением ― из Linux к Windows:
… а затем с CentOS подключаемся к Windows.
После того, как WMI\OMI заработал, нужно установить и настроить PSRP. К сожалению и вопреки инструкции, бинарник отсутствует. Библиотеку пришлось компилировать, долго и нудно исправляя возникающие ошибки зависимостей:
Теперь мы сможем подключаться с Windows на Linux и наоборот при помощи PowerShell. Начнем с Windows на Linux:
С Windows на Linux.
Аналогичным образом можно провести и обратное подключение.
Invoke-Command можно «натравить» на список компьютеров, и с рабочей станции Windows создать пользователя на всех серверах Linux командой вида:
Надо сказать, что способ не самый удобный и эффективный. Минусов добавляет компиляция библиотек, разнообразные баги ― например, на момент написания статьи PSRP не позволял нормально подключиться из Linux в Windows.
Да и сами разработчики рекомендуют не плясать вокруг WS-Man, а обратиться к проверенному способу ― SSH. Что ж, попробуем и его.
Гора идет к Магомету
На этот раз машина с Windows получит чуть больше специфической подготовки ― нужно установить свежий PowerShell и OpenSSH.
После можно проверить синтаксис командлета New-PSSession. Если все произошло как надо, то командлет, помимо привычного параметра ComputerName, будет поддерживать и HostName.
PowerShell 6.0.0-beta.9 и обновленный синтаксис командлета.
Качаем последний релиз или используем пакет из репозитория Chocolatey. Все это разархивируем в \Program Files\OpenSSH.
В консоли с правами администратора переходим в папку с разархивированным содержимым и запускаем установку командой:
Теперь генерируем ключи:
В тестовой среде мы будем использовать парольную аутентификацию, поэтому стоит убедиться что она включена в файле sshd_config:
Если вы также хотите автоматически запускать PowerShell при подключении по SSH, то в параметре subsystem нужно прописать путь к желаемой версии PS:
Для работы клиента SSH нужно добавить директорию в %PATH% любым удобным способом. Например, таким:
Остается только настроить и запустить службы:
После установки уже можно наслаждаться подключением к серверу Windows по ssh.
C Windows через Putty на Linux, с Linux обратно на Windows по SSH.
На достигнутом останавливаться не будем и перейдем к настройке Linux. При настройке сервера SSH по умолчанию достаточно прописать PowerShell в Subsystem:
Теперь проверим подключение через командлет New-PSSession и Invoke-Command.
Работаем из PowerShell с Linux-сервером.
Теперь подключимся из Linux к Windows:
Работаем из PowerShell с Windows-сервером.
В отличие от WS-Man, SSH настраивается намного проще и работает стабильнее. Да и беспарольное подключение по ключам настраивать привычнее.
В хозяйстве пригодится
С однозначным «советом потребителю» все опять сложно: SSH проще в настройке и стабильнее, но WS-Man использует API и позволяет применять инструменты вроде JEA. На боевых серверах использовать WS-Man я бы не стал однозначно, а вот реализация OpenSSH в Windows как сервера, так и клиента мне понравилась. Для самопальной автоматизации вполне подойдет даже без PowerShell.
В любом случае, границы между Linux и Windows хоть и медленно, но начинают стираться, что безусловно радует.