Базовая установка и настройка файлового сервера и сервера авторизации
Опубликовано 2024-11-02. Последние изменение 2024-11-05.
Ввиду своей довольно уникальной архитектуры и используемых подходов установка Plan 9 [а именно 9front] может вызвать множество вопросов даже у опытного системного администратора.
Большая часть этой статьи будет представлять из себя переработанную информацию из справки на сайте проекта[^1].
Справка не раскрывает некоторые тонкие моменты, поэтому я постараюсь дополнить её своим опытом.
В процессе я буду использовать виртуальную машину KVM.
-- Не хватай его сразу. Не хватай его сразу, Урри. Выясни сначала как он управляется. Выясни как он управляется сначала.
-- Не понял, повторите!
-- Узнай где у него кнопка!
Перед началом вы должны ответить на несколько вопросов:
Если у вас возникли трудности на этом этапе, то я советую вам прекратить и вернуться позже.
После того, как вы получили ответы на эти вопросы, мы можем идти дальше.
Для начала скачайте подходящий вам установочный ISO образ системы с сайта проекта[^3] и создайте загрузочную флешку.
Если вы выбрали для первой попытки установку на виртуальную машину [что я вам и советую], то просто примонтируйте к ВМ образ диска и начните закрузку.
Если всё было сделано правильно вы увидите процесс загрузки.
Также в процессе первой загрузки вам будут заданы несколько вопросов.
В большинстве можно остановиться на значениях по умолчанию [обычно указаны в квадратных скобках], если они доступны.
user[glenda]:
Предлагаемый пользователь по умолчанию - glenda.
Запуск системы на этой машине будет происходить под этим пользователем.
Такой пользователь в контексте Plan 9 зовётся hostowner (владелец хоста).
Концепция корневого пользователя root была упразднена по причинам проблем с безопасностью.
Владелец хоста имеет высокие полномочия на конкретной машине, но ограничен в доступе к файлам других пользователей.
Для первой установки лучше его не менять.
Просто нажимаем Enter
.
Следующими вопросами будут запрошены данные о дисплее и мыши:
vgasize is (text, 640x480x8, 1024x768x16, ...) [1024x768x16] monitor is (vesa, xga, lcd, ...) [vesa] mouseport is (ps2, ps2intellimouse, 0, 1, 2) [ps2]
На основании ответов будут установлены переменные окружения $vgasize
, $monitor
и $mouseport
.
Эти значения также будут записаны в файл plan9.ini
, из которого будут использоваться при последующий загрузках.
monitor
- в любое значение, кроме vesa
будет пропускать эмуляцию VESA BIOS и будет выполнятся попытка использования нативного драйвера VGA для видео карты.Список поддерживаемых системой дисплеев и видео карт может быть найден в файле /lib/vgadb
.
Дополнительную информацию вы можете найти на страницах справки vga(3), vga(8) и vgadb(6).
vgasize
- используется для хранения разрешения и разрядности дисплея.Тут можете прописать любое значение, поддерживаемое вашим дисплеем.
mouseport
- Значение по умолчанию для ps2
должно подходить в большинстве случаев.При установке на ноутбук или при использовании мыши с колесом прокрутки может понадобиться выставить его в ps2intellimouse
.
После завершения загрузки вы можете изменить установленные значения в файле plan9.ini
.
Пример содержимого plan9.ini
:
monitor=vesa vgasize=1024x768x16 mouseport=ps2intellimouse
После ответов на вопросы процесс загрузки попробует запустить стандартный графический мультиплексор rio, приветствующий вас серым рабочим столом с запущеным монитором нагрузки stats и окном с оболочкой rc.
Имейте ввиду, что если пользователь был изменён, то вы увидите просто серый экран.
Инициализация подготовлена только для пользователя glenda.
В остальных случаях система остаётся чистой.
Для управления мультиплексером rio используется трёхкнопочная мышь.
Приложения запускаются в окнах rio.
Но самое интересно, что в окне rio может быть запущен ... rio.
И ещё. И ещё.
При работе с flash-накопителя для первого знакомства этого может быть достаточно.
Система будет созранять своё состояние как обычный live-образ любой другой ОС.
Так что вы можете перейти к следующим статьям цикла.
Если же вы достаточно исследовали live-образ Plan 9 и чувствуете, что готовы к построению полноценной вычислительной сети [в контексте Plan 9 используется термин grid] - то мы продолжаем.
Установка выполняется rc-сценарием /rc/bin/inst
.
Чтобы начать установку выполните в терминале команду inst/start
.
term% inst/start
Следуйте инструкциям, чтобы завершить установку, при необходимости выбрав значения по умолчанию.
Каждый шаг может быть пройден повторно путём ввода его имени в запросе.
Теперь перейдём к шагам установки.
Файловая система cwfs64x
использует постоянное и временное хранилища на разных разделах.
Файловая система hjfs
более однородна, но работает медленнее.
Если ваш диск менее 12 ГиБ, то вам необходимо выбрать hjfs
.
В этом примере мы продолжим используя cwfs64x
.
You can install the following types of systems: cwfs64x the cached-worm file server hjfs the new 9front file server (experimental!) File system (cwfs64x, hjfs)[cwfs64x]:
=> configfs
На этом шаге нам необходимо создать разделы.
Сценарий установки сообщит вам какие диски он смог обнаружить.
Выбираем тот, что не эмуляция оптического диска и жмём Enter
.
The following disk devices were found. sdC0 - QEMU DVD-ROM empty 0 3916 (3916 cylinders, 29.99 GB) * p1 sdF0 - Disk to partition (sdC0, sdD0)[no default]: sdF0 The disk you selected HAS NO master boot record on its first sector. (Perhaps it is a completely blank disk.) Shall we create a blank EFI partition table (GPT) or install traditional DOS partition table (MBR)?
Диск у нас пустой, так что создадим свежую MBR таблицу.
Install mbr or gpt (mbr, gpt)[no default]: mbr This is disk/fdisk; use it to create a Plan 9 partition. If there is enough room, a Plan 9 partition will be suggested; you can probably just type ’w’ and then ’q’. cylinder = 8225280 bytes
В этом примере мы будем использовать весь диск.
Просто записываем предложенные изменения.
>>> w >>> q
=> partdisk
Из-за особенностей CWFS нам необходимо выполнить дополнительное разбиения раздела на подразделы.
The following Plan 9 disk partitions were found. /dev/sdF0/plan9 empty 0 62910477 (62910477 sectors, 29.99 GB) Plan 9 partition to subdivide (/dev/sdC0/plan9)[no default]: Use the Plan 9 partition created in the previous step. Type /dev/sdC0/plan9 and hit enter. This is disk/prep; use it to subdivide the Plan 9 partition. If it is not yet subdivided, a sensible layout will be suggested; you can probably just type `w` and then `q`. no plan9 partition table found 9fat 204800 nvram 1 other 8957953 fscache 8957953 fsworm 44789770 >>>
И снова принимаем значения по умолчанию.
>>> w >>> q
=> prepdisk
Теперь, когда подразделы созданы, мы указываем как их монтировать и форматируем их.
Если предыдущие шаги прошли без проблем, то сценарий установки обнаружит созданные нами разделы самостоятельно.
Просто нажимаем Enter
на каждом из вопросов.
The please choose your cwfs64x partitions --rw-r----- S 0 glenda glenda 4586471936 Jul 4 13:28 /dev/sdC0/fscache Cwfs cache partition (/dev/sdC0/fscache)[/dev/sdC0/fscache]: --rw-r----- S 0 glenda glenda 22932362240 Jul 4 13:28 /dev/sdC0/fsworm Cwfs worm partition (/dev/sdC0/fsworm)[/dev/sdC0/fsworm]: --rw-r----- S 0 glenda glenda 4586471936 Jul 4 13:28 /dev/sdC0/other Cwfs other partition (/dev/sdC0/other)[/dev/sdC0/other]:
Далее нам будет предложено форматировать (ream) раздел, соглашаемся.
Since this is a fresh install, we choose yes to ream (format) the file system: Ream the file system? (yes, no)[no]: yes Starting cwfs64x file server for /dev/sdC0/fscache Reaming file system bad nvram key bad authentication id bad authentication domain nvrcheck: can’t read nvram config: config: config: auth is now disabled config: config: config: config: config: config: current fs is "main" cmd_users: cannot access /adm/users 63-bit cwfs as of Wed Jul 4 00:59:30 2012 last boot Tue Jul 17 13:34:57 2012 Configuering cwfs64x file server for /dev/sdC0/fscache Mounting cwfs64x file server for /dev/sdC0/fscache % mount -c /srv/cwfs /n/newfs Mounting cwfs64x file server for /dev/sdC0/other % mount -c /srv/cwfs /n/other other
=> mountfs
Пришло время сконфигурировать сеть.
We will configure the ethernet. Please choose a method for configuring your ethernet connection. manual - specify IP address, network mask, gateway IP address automatic - use DHCP and SLAAC to automatically configure Configuration method (manual, automatic)[automatic]:
=> confignet
автоматическое
В этом примере я остановлюсь на автоматической конфигурации, так как у меня настроен DHCP.
Если вы также будете использовать DHCP, то не забудьте зарезервировать адрес на сервере.
Нажмите Enter
, чтобы перейти к следующему шагу.
ручная
Ручная настройка не представляет сложности.
Необходимо просто указать IP адрес, маску сети, шлюз и DNS сервер.
Configuration method (manual, automatic)[automatic]: manual ip address [no default]: 192.168.2.10 network mask [no default]: 255.255.255.0 gateway address [no default]: 192.168.2.1 dns server [192.168.2.1]: starting ethernet manual config
Укажем сценарию установки где ему искать файлы для установки.
Please wait... Scanning storage devices... /dev/sdC0/9fat /dev/sdC0/data /dev/sdC0/fscache /dev/sdC0/fsworm /dev/sdC0/other /dev/sdD0/data The following storage media were detected. Choose the one containing the distribution. /dev/sdD0/data (iso9660 cdrom) Distribution disk (/dev/sdD0/data, /dev/sdC0/fscache, /)[/]:
Образ CD уже примонтирован в корень, просто укажем /
и жмём Enter
.
% mount /srv/boot /n/distmedia Which directory contains the distribution? Location of archives [/]:
И снова, корень CD уже в корне системы, также укажем /
и жмём Enter
.
=> mountdist
На этом шаге будет производиться копирование файлов дистрибутива системы на сконфигурированные разделы.
Сценарий не отображает прогресс установки.
Следить за процессом можно лишь отслеживая нагрузку на мониторе stats(8).
Процесс занимает от 5 минут до часа в зависимости от скорости работы вашего диска.
По завершении вы должны увидеть следующее сообщение:
Оно означает, что файлы системы успешно скопированы на целевые разделы.
Дадим нашему хосту имя.
По умолчанию будет назначено cirno.
Setup network configuration sysname [cirno]: test-fs
=> ndbsetup
Настраиваем часовой пояс.
Setup Time Zone Time Zone (Argentina, Australia_ACT, Australia_Broken-Hill, Australia_LHI, Australia_NSW, Australia_North, Australia_Queensland, Australia_South, Australia_Sturt, Australia_Tasmania, Australia_Victoria, Australia_West, Australia_Yancowinna, Brazil_Acre, Brazil_DeNoronha, Brazil_East, Brazil_West, CET, Canada_Atlantic, Canada_Central, Canada_East-Saskatchewan, Canada_Eastern, Canada_Mountain, Canada_Newfoundland, Canada_Pacific, Canada_Yukon, Chile_Continental, Chile_EasterIsland, Cuba, EET, Egypt, GB-Eire, GMT, HST, Hongkong, Iceland, Iran, Israel, Jamaica, Japan, Libya, Mexico_BajaNorte, Mexico_BajaSur, Mexico_General, NZ, NZ_CHAT, Navajo, PRC, Poland, ROC, ROK, Singapore, Turkey, US_Alaska, US_Arizona, US_Central, US_East-Indiana, US_Eastern, US_Hawaii, US_Michigan, US_Mountain, US_Pacific, US_Yukon, W-SU, WET)[US_Eastern]: GMT
Вводим наиболее подходящий нам из списка и жмём Enter
.
=> tzsetup
Настройка загрузки системы.
Setup Plan 9 FAT boot partition (9fat) Plan 9 FAT partition (/dev/sdC0/9fat)[/dev/sdC0/9fat]:
Принимаем значение раздела загрузки по умолчанию.
Все переменные окружения, указанные при первом запуске, сейчас будут сохранены в /n/9fat/plan9.ini
.
Также ядро системы будет скопировано в раздел 9fat.
dossrv: serving /srv/dos Initializing Plan 9 FAT partition. % disk/format -r 2 -d -b /386/pbs /dev/sdC0/9fat Initializing FAT file system type hard, 12 tracks, 255 heads, 63 sectors/track, 512 bytes/sec used 4096 bytes % mount -c /srv/dos /n/9fat /dev/sdC0/9fat % rm -f /n/9fat/9bootfat /n/9fat/plan9.ini /n/9fat/9pc % cp /n/newfs/386/9bootfat /n/9fat/9bootfat % chmod +al /n/9fat/9bootfat % cp /tmp/plan9.ini /n/9fat/plan9.ini % cp /n/newfs/386/9pc /n/9fat/9pc If you use the Windows NT/2000/XP master boot record or a master boot record from a Unix clone (e.g., LILO or FreeBSD bootmgr), it is probably safe to continue using that boot record rather than install the Plan 9 boot record.
Так как в нашем случае нет соседней системы мы выбираем запись Plan 9 в главную загрузочную область и помечаем раздел активным.
Install the Plan 9 master boot record (yes, no)[no default]: yes Mark the Plan 9 partition active (yes, no)[no default]: yes The Plan 9 partition is now marked as active.
=> bootsetup
Последний шаг отключит образ CD и завершит работу.
Подтверждаем нажатием клавиши Enter
для перезагрузки компьютера.
Ваша первая установка 9front завершена.
Поздравляю!
Основано на этом примере - youtube.
Выполнить этот шаг будет немного сложнее.
Но его нужно выполнить только единожды, чтобы официально запустить файловый сервер.
Здесь много зависимых этапов, и их нужно выполнить правильно, чтобы все работало.
Поскольку у нас будет комбинация сервера авторизации и файлового сервера, нам нужно будет настроить обе эти системы.
Авторизация будет выполнять проверку паролей, а файловая система будет следить за тем, чтобы у пользователей был доступ к нужным файлам.
Первое, что необходимо сделать, это установить владельца хоста для системы.
Разработчики Plan 9 отказались от использования корневого пользователя root, поскольку это было связано с очевидными проблемами безопасности.
Вместо этого у каждой системы есть назначенный владелец хоста (host owner).
Владелец хоста обладает неограниченной властью над любыми процессами, выполняемыми в системе, которой он владеет.
Таким образом, владелец хоста может отключить процессы и получить доступ практически ко всему оборудованию.
В случае с файловым сервером владелец хоста не имеет безграничного доступа к файлам.
Только в особом случае, когда владелец хоста загружается в консольном режиме с отключенной авторизацией.
Мы уже видели раздел NVRAM ранее, это небольшая часть хранилища, называемая Энергонезависимой оперативной памятью (Non-Volatile RAM) по историческим причинам, и она содержит токен пароля для владельца хоста.
Это позволяет системе загружаться с авторизацией без необходимости вводить пароль в командной строке загрузки.
Чтобы убедиться, что система использует его, я добавлю его в plan9.ini
.
Некоторые системы делают это автоматически, но я просто хочу быть уверенным.
Итак, давайте смонтируем раздел 9fat.
% 9fs 9fat % sam /n/9fat/plan9.ini
Здесь мы можем указать, откуда взять раздел NVRAM, и это также может быть задано в виде файла.
bootfile=9pc64 nvram=/dev/sdF0/nvram bootargs=local!/dev/sdF0/fscache mouseport=ps2 monitor=vesa vgasize=1024x768x16 tiltscreen=none
И теперь мы перезагрузим систему, чтобы это вступило в силу.
% fshalt -r
Теперь мы перезагрузили систему с указанным разделом NVRAM, и следующим шагом будет запись в него.
authid
- будет указывать владельца хоста, которым будет glenda.authdom
- в данном случае запрашивается доменное имя.Если вы используете доменное имя, просто укажите его.
Если нет - укажите что-нибудь в качестве заглушки.
secstore key
- используется для другой системы авторизации, и я пока не буду его использовать.Нажмите Enter
и оставьте поле пустым.
password
- пароль для пользователя glenda.% auth/wrkey authid: glenda authdom: testdom secstore key: password:
Вот и все.
Следующим шагом будет добавление пользователя glenda в систему авторизации, и мы также добавим в неё обычного пользователя.
Итак, сначала нам нужно убедиться, что у нас есть доступ к ключам.
% auth/keyfs
Итак, мы начнём с пользователя glenda:
Password
- введите тот же пароль;Confirm password
- и ещё раз;assign new Inferno/POP secret? [y/n]: n
- пока не важно, просто установите значение "нет";Expiration date (YYYYMMDD or never)[never]:
не будем беспокоиться о сроке истечения, установите значение "никогда";Post id:
, User's full name:
, Department #:
, User's email address:
, Sponsor's email address:
- это если у вас в офисе полно людей.% auth/changeuser glenda Password: Confirm password: assign new Inferno/POP secret? [y/n]: n Expiration date (YYYYMMDD or never)[never]: Post id: User's full name: Department #: User's email address: Sponsor's email address: user glenda installed for Plan 9
Вот так-то.
И я добавлю обычного пользователя testuser.
В основном параметры все те же.
% auth/changeuser testuser Password: Confirm password: assign new Inferno/POP secret? [y/n]: n Expiration date (YYYYMMDD or never)[never]: Post id: User's full name: Department #: User's email address: Sponsor's email address: user testuser installed for Plan 9
Следующим шагом будет добавление нашего нового testuser в файловую систему.
Пользователь glenda автоматически был указан в качестве одного из пользователей файловой системы при выполнении базовой установки.
И теперь нам нужно добавить testuser, чтобы он также мог владеть файлами.
Для этого нам нужно отправить команду на командный сервер файловой системы.
% echo newuser testuser >>/srv/cwfs.cmd
Итак, теперь новый пользователь testuser добавлен в файловую систему CWFS.
Следующий шаг - отредактировать файл сетевой базы данных, чтобы назначить эту систему в качестве сервера аутентификации и файлового сервера.
Этот файл находится в /lib/ndb/local
.
Внизу файла у нас есть пример, который мы можем использовать:
# example: adjust to fit your network #auth=cirno authdom=9front #ipnet=9front ip=192.168.0.0 ipmask=255.255.255.0 # ipgw=192.168.0.1 # dns=192.168.0.1 # auth=cirno # dnsdom=9front # cpu=cirno # smtp=cirno
Так что нам просто нужно сделать нашу версию этой записи:
auth=test-fs authdom=testdom ipnet=testdom ip=192.168.2.0 ipmask=255.255.255.0 ipgw=192.168.2.1 dns=192.168.2.1 auth=test-fs fs=test-fs dnsdom=testdom
plan9.ini
Теперь нам нужно добавить еще изменений в plan9.ini
.
Из-за особенностей с CWFS нам нужно внести две правки.
plan9.ini
, чтобы загрузить систему в режиме настройки и убедиться, что авторизация в файловой системе работает;plan9.ini
, чтобы сервер загружался нормально, без необходимости взаимодействия.Итак, давайте снова смонтируем 9fat и сделаем копию текущего plan9.ini
и еще одного, который мы будем использовать позже.
9fs 9fat cp /n/9fat/plan9.ini /n/9fat/plan9.bak.ini cp /n/9fat/plan9.ini /n/9fat/plan9.new.ini
Для существующего файла первое, что нам нужно сделать, это изменить его с терминала по умолчанию на CPU сервер.
А затем к параметрам загрузки мы добавим параметр -c
для диска для файловой системы, и это переведет его в режим настройки.
bootfile=9pc64 nvram=/dev/sdF0/nvram service=cpu bootargs=local!/dev/sdF0/fscache -c mouseport=ps2 monitor=vesa vgasize=1024x768x16 tiltscreen=none
Для нового файла мы добавим опцию -a tcp!*!564
в параметры диска.
Это сообщит системе, что она прослушивает TCP порт 564 для получения команд для подключения к файловой системе.
Это также будет CPU сервер, и мы изменим параметры загрузки на nobootprompt
, чтобы он не просил нас нажимать Enter
.
bootfile=9pc64 nvram=/dev/sdF0/nvram service=cpu nobootprompt=local!/dev/sdF0/fscache -a tcp!*!564 mouseport=ps2 monitor=vesa vgasize=1024x768x16 tiltscreen=none
Итак, мы подготовили оба файла сейчас, потому что после перезагрузки системы графика будет отключена, поэтому не будет работать rio, и мы не сможем редактировать файлы с помощью acme или sam.
Вы можете использовать ed, но проще подготовить их сейчас и использовать просто mv, чтобы переименовать их позже.
Итак, мы перезагрузили систему, и вы можете видеть, что она ждет, когда я введу значение по умолчанию, которое имеет символ -c
.
bootargs is (tcp, tls, il, local!device)[local!/dev/sdF0/fscache -c]
Нажмите Enter
.
Далее появляется ввод config
.
На этом этапе нам нужно ввести noauth
.
Система сообщит, что авторизация отключена.
Я снова наберу noauth
, и авторизация теперь включена.
Затем введите end
и продолжайте загрузку системы.
config: noauth auth disabled config: noauth auth enabled config: end
Как вы можете видеть, rio не запущен.
Это просто приглашение командной строки.
Мы смонтируем раздел 9fat и переместим файл plan9.ini
с параметром конфигурации.
А затем переместите наш новый файл plan9.ini
и перезагрузите систему еще раз.
# 9fs 9fat # cd /n/9fat/ # mv plan9.ini plan9.config.ini # mv plan9.new.ini plan9.ini # fshalt -r
Теперь вы можете выключить систему, а затем отключить монитор, клавиатуру и мышь и загрузить ее обратно.
Она будет спокойно работать и ждать запросов к файловому серверу.
Теперь вам нужен drawterm[^4] в вашей основной системе для подключения к файловому серверу.
drawterm -h 192.168.2.10 -u testuser -a 192.168.2.10
Введите пароль пользователя и вуаля!
Теперь вы подключены к файловому серверу.
Вы также можете получить доступ к файлам вашего локального компьютера в /mnt/term
.
Это довольно полезно, вы можете написать какое-нибудь программное обеспечение в своем обычном текстовом редакторе и протестировать его в среде Plan 9 без копирования каких-либо файлов.
На этом настройка фалового сервера с авторизацией завершена.
В последующих статьях мы подробней остановимся на применении Plan 9, работе в среде и расширении нашей сети.
=> [1] 9front FQA 4 - 9front Installation Guide | [2] 9front FQA 3 - Hardware | [3] 9front - releases | [4] drawterm
=> "Установка Plan 9" через WWW
=> Codeberg | e-mail | Fediverse | GitHub | IRC | nostr
© 2024 POLYSERV BY MODERN HOME
text/gemini
This content has been proxied by September (3851b).