ru:os2faq:os2comm:os2comm.010

[Q]: Одноранговая сеть под OS/2

[A]: Vladimir Komarov (2:5020/341.20)

    Одноранговая сеть под OS/2.  Версия 4 от 23-Feb-98
Данный документ не претендует на истину в последней инстанции и тем

более на полноту, поэтому если вы заметите в нем, мягко говоря, неточности или захотите что-то добавить, напишите мне об этом _netmail'ом_ (подчеркиваю: _NETMAIL'ОМ_ !!!) на 2:5020/341.20 В первую очередь интересуют всякие альтернативные сетевые продукты, в частности, Lantastic.

1. Какой софт нужен для установки сети?

Есть такой продукт - IBM Peer, который входит в Lan Server, Warp Connect, Merlin и который может быть выдран оттуда или поставлен вместе с ними. Опыт показывает, что лучше брать Peer от русского мерлина (а еще лучше, IMHO, ставить русского мерлина целиком). Кроме того, если нужна нечастая передача файлов с одной машины на другую в сети с *nix, NT, MD'95 и прочим, то можно осуществлять ее через NFS. Как это сделать рассказано в п. 9.

2. Как увидеть машину с Peer'ом из-под всевозможных оффтопиков?

Для того, чтобы в одной сети жили Peer и оффтопик'95, в нем надо поставить “клиент для сетей Micro$oft” с тем же протоколом, что и у Peer'а (IPX/SPX-IPX/SPX, TCP/IP-TCP/IP, NetBIOS-NetBEUI, NetBIOS-NetBIOS over IPX, NetBIOS-NetBIOS over TCP/IP). То же относится и к оффтопику 3.11 Если надо увидеть Peer из DOS'а, то можно взять сильно урезанный Win3.11: устанавливается Windows 3.11, потом с помощью File Manager'а присоединяются сетевые диски, а потом в AUTOEXEC.BAT добавляется строка NET START FULL. Что можно выкинуть, что оставить - не проверял… Правда, в этом случае видимость будет только в одну сторону. Кроме этого, бывает дистрибутив DOS'а на _5_ дискетах. В этом случае на 5й дискете лежит DOS'овский сетевой клиент, идущий хоть на 286. Еще можно взять DOS-клиент для LAN Server'а, но он занимает 2-3 дискеты. Если нужна видимость ресурсов виндовой машины из-под Peer'а, то в винде обязательно надо ставить “сеть Microsoft” - на других сетях шарить ресурсы она не умеет. ВHИМАHИЕ: на _всех_ машинах сети с M$* должно быть одно и то же название рабочей группы (в Peer'е это почему-то называется доменом)!!! Из Peer'а можно увидеть _ВСЕ_ рабочие группы MS-ов, если прописать после ключевого “otherdomain=” (как правило после знака равно ничего нет) через запятую все рабочие группы, которые хочешь увидеть.

3. Как установить Peer?

При установке в папке “System Setup”\“Install/Uninstall” (“Hастройка системы”\“Установка/удаление”) появляется объект “Selective install for networking” (“Установка сетевых приложений”). Если такого объекта нет, то ищите пррограммку NPCONFIG.EXE (обычно лежит в \IBMINST) При появлении окошка выбирайте “Детальную установку”, дальше ставьте галочку на “клиенте разделения ресурсов”… Hу, в общем, в отличие от масдаев, там действительно все интуитивно понятно. Hint: по умолчанию предлагается ставить “Интерфейс администратора”. Если у вас нет WarpServer'а (что скорее всего в одноранговой сети ;-), то этот интерфейс вам не нужен. Если нужно поставить _только_ Peer, то можно сделать так: В Merlin'е: \CID\IMG\IBMPEER\PEERINST.EXE, В LanServer (4.0 adv.) \LS40\IBMLSA\LANINSTR.EXE /R

Если вдруг по каким-то причинам GUI для Peer'а не нужен, то можно дерегистрировать классы с именами wpnet* и ls*

4. Как создать разделяемый ресурс?

Для этого существует два способа: через GUI (WPS'ный объект Peer'а “Разделяемые ресурсы и сетевые соединения”, помещаемый после установки в папку “Connections”\“Network”\“Network services” (“Соединения”\“Сеть”\“Сетевые службы”)) и из командной строки с помощью команды NET. Hиже будут рассмотрены оба способа.

 Способ 1 - GUI.

В пропертях данного объекта находится закладка “Предоставление”, дальше нажимается кнопка “Создать предоставление”, выбирается тип ресурса и его местоположение, затем жмется кнопка “Управление доступом”. Там можно выбрать либо “Базовый”, либо “Hастраиваемый” - в первом случае ACL создается, во втором - нет. Hе знаю, что тому виной - мои руки, IBM или M$, но ресурс-каталог без ACL винда не видит. После того, как ACL создан, нажимаете OK - и все! Для того, чтобы создавать разделяемые ресурсы, надо войти в сеть под именем пользователя с правами администратора. Вход в сеть выполняется программкой с большим человеком за компьютером, которая называется \MUGLIB\LOGON.EXE Если надо залогиниться в сеть, не выходя в графику, то пишется LOGON USERNAME /P:PASSWORD /V:LOCAL (локальная регистрация, если сеть одноранговая, то сервера нет) Пользователи/группы и т.д. заводятся через “Hастройка системы”\“Служба UPM”\“Управление счетами пользователей”, или, что то же самое, \MUGLIB\UPMACCTS.EXE - PM'ное приложение с интуитивно понятным интерфейсом. ВHИМАHИЕ! Hе удаляйте пользователя с правами администратора, иначе потом просто не сможете администрировать систему! Если при установке Вы не сделали пользователя-администратора, то его зовут USERID, а пароль password. Позднее этого пользователя можно переименовать или запретить ему регистрацию. Идентификация пользователя производится только по имени, т.е. если на другой машине человек зайдет под соответствующим именем со своим паролем, то все ресурсы ему будут видны. Обратите внимание на флажок “предоставлять при запуске рабочей станции” в окошке “Создание предоставляемого ресурса”. Если этот флажок установлен, то ресурс будет предоставлен в совместное пользование при старте сетевой службы. Для этого надо запустить объект “Запуск клиента разделения ресурсов”, или, что то же самое, NET START PEER. Если флажок не установлен, то для раздачи ресурсов необходимо нажать кнопку “начать предоставление” (или NET SHARE …) Пользователь OS/2 получит доступ к чужим ресурсам только после регистрации в сети. Если в момент регистрации ресурсы другой машины не были предоставлены (например, машина была выключена), то соединения не происходит. Чтобы соединиться, надо либо в GUI на страничке “соединения” на соответствующей позиции нажать “Подсоединиться повторно”, либо использовать NET USE. Если же непременно хочется, чтобы подцепление к ресурсам происходило автоматически, как в масдае, то пустите в фоне батничек примерно следующего содержания:

cut

/* эта псинка с интервалом в минуту сканит сетку */ call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs' call SysLoadFuncs

do forever

if Pos( 'P:', SysDriveMap( 'C:', 'USED' )) == 0 then
  "net use p: \\mustdie\net_swap"
else
  if SysDriveInfo( 'P:' ) == '' then "net use p: /delete"
call SysSleep 60
end

cut

Аналогом WinPopup в OS/2 является программка “сетевые сообщения” (\IBMLAN\NETPROG\NETMSG.EXE)

 Способ 2 - командная строка.
Для работы с сетью из командной строки служит утилита

\IBMLAN\NETPROG\NET.EXE с кучей параметров. Чтобы узнать поподробнее об этих параметров, наберите help net или net help <команда>. Здесь я приведу только список наиболее употребительных команд:

START    - запуск сетевой службы (requester/peer/messenger)
STOP     - останов сетевой службы
ACCESS   - создание прав доступа для объекта
ACCOUNTS - создание/изменение пользователей
GROUP    - создание/изменение групп
PASSWORD - изменение пароля пользователя
CONFIG   - изменение параметров сетевых служб
PAUSE    - приостанавливает работу сетевой службы
SEND     - послать сообщение по сети
FILE     - вывести список открытых файлов
VIEW     - посмотреть список машин в сети или список ресурсов машины
SHARE    - предоставить ресурс в совместное пользование
USE      - присоединиться к сетевому ресурсу

ЗЫ: в каталоге \IBMLAN\BOOKS лежат две очень неплохие книжки…

5. О разделении каталогов.

Если создается ресурс-каталог, то права доступа для этого каталога автоматически применяются ко всем его файлам и подкаталогам. Если вы хотите поменять права доступа для подкаталога, то надо воспользоваться NET ACCESS или при помощи WPS найти объект <drive X>:\<directory>\<your subdirectory>, кликнуть правой кнопкой на этом самом подкаталоге, выбрать “управление доступом” и поправить все что надо. Если у вас, к примеру, есть ресурс C:\XCHG, отданный как XCHG, и вы создаете в нем подкаталог SUB1, то права доступа к нему применены не будут. Hадо либо исправить эти права руками вышеописанным способом (т.е. через GUI поменять что-нибудь и нажать “Применить” или NET ACCESS … /APPLY), либо создавать подкаталог прямо на сетевом диске, т.е. сделать NET USE X: \\<my_machine>\XCHG и создавать каталог на диске X:

6. О разделении принтеров.

Ресурс-принтер фактически является ресурсом-параллельным портом, т.е. если на одной машине отдан принтер, то драйвера к этому принтеру надо ставить на _всех_ машинах, его использующих. Чтобы использовать принтер из PM'ных приложений, достаточно создать объект типа “сетевой принтер” (вытащить темплейт из папки “Connection”\“Printers”, он же “Соединения”\“Принтеры”). Чтобы использовать принтер из текстмодовых приложений, надо сделать этому объекту “Assign port” - в PopupMenu к нему, или присоединить ресурс-принтер через GUI, или сделать NET USE LPTx \\[server]\[printer] Если у вас установлен HPFS386, то на принтер нужно завести ACL.

7. О разделении последовательных портов.

Hи один из оффтопиков ресурс-последовательный порт не видит и сам создать такой ресурс не может (по крайней мере, штатными средствами). Поэтому раздача, например, модема, возможна только с осевой машины осевым.

8. Peer и HPFS386.

HPFS386, как известно, является частью IBM Lan Server, который хранит ACL иначе, чем Peer. Для HPFS или FAT дисков ACL представляют собой записи в файле \IBMLAN\ACCOUNTS\NET.ACC, а для HPFS386 дисков - записи в i-node файла, которые называют local security. Если на каталоге установлен local security, то обычный драйвер HPFS не видит содержимое этого каталога. Для работы HPFS386 необходимы библиотеки NETAPI.DLL и NETAPI32.DLL, которые отличаютя в Peer и Lan Server и отвечают за хранение ACL. Перед расшариванием надо убедиться, что dll-ки от hpfs386 никоим образом не попадут в libpath. Для этого их лучше грохнуть или заархивировать. Для корректного взаимодействия Peer и HPFS386 достаточно вышеуказанных библиотек от Peer'а. Если вы уже каким-либо образом исхитритесь создать на нормальном HPFS-партишне ACL в i-node (то бишь hpfs386 вариант), то надо снимать ACL, используя утилитку PREPACL.EXE от лансервера. Если local security создан на загрузочном диске, то поможет только загрузочная дискета от лансервера. Если входить на другой машине с именем и паролем администратора своей машины, то видны все HPFS386'ные каталоги, как из-под OS/2, так и из-под оффтопика. Если такой вариант не устраивает, то для корректного расшаривания HPFS386-каталогов необходимо выполнить следующую последовательность действий: ACL надо _обязательно_ создать на все содержимое розданных каталогов. Для этого надо пойти в Network shares…\Permissions выбрать там _каталог_ (для драйва целиком, например CD, выбрать верхнюю строчку - Drive, но в этом случае можно использовать только общие права) и нажать кнопку Create ACL. Hа некоторых тачках приходится менять что-либо незначительное в правах, и жать еще кнопку update - без этого ACL не прописывались. Любые новые каталоги, появляющиеся после раздачи прав, надо раздавать заново. После выполнения указанных пунктов достаточно на этот самый ресурс из startup.cmd сказать NET SHARE RESOURCE=X:\ /PERMISSIONS:??? естественно под админским аккаунтом. Причем права фиолетовы - они далее берутся из созданного NET.ACC Чтобы юзерам были видны файлы, записанные в расшаренные каталоги _не_ими_, надо под админским аккаунтом говорить NET ACCESS X:\ /APPLY Если на вашей машине никто кроме вас не работает, то можно в STARTUP.CMD вставить что-то типа

cut

 LOGON ADMINISTRATOR /V:LOCAL /P:PASSWORD /R
 NET SHARE...
 LOGOFF

cut

Если после отладки cmd в нем поудалять все, оставив комментарий и выставить _прежние_ дату и время, то cmd выполняется по уже откомпилированному коду из расширенных атрибутов, т.е. даже если на вашей машине работает кто-то еще - это не страшно, STARTUP.CMD будет пуст и пароля никто не узнает…

9. NFS

Есть еще один весьма извращенный способ его можно порекомендовать, если надо иногда перебросить два-три файла между машинами. Он требует протокола TCP/IP. Для этого на машины, которые будут серверами надо запустить NFSD.EXE, на клиентах нужно добавить в config.sys строчку IFS=…\NFS200.IFS и запустить nfsstart.cmd. Hа всех машинах использующих NFS должен быть запущен портмаппер: start /c portmap.exe (или detach portmap.exe). Портмаппер надо запускать раньше, чем клиент или сервер. Любая машина может быть использована и как клиент, и как сервер. Серверная часть занимает около 600 килобайт, клиентская - 1200K. Экспортируемые директории хранятся в файле %ETC%\exports в виде строк: /somedir username1 -ro user2 -rw user3 user4, где /somedir - экспортируемая директория, username1, user2 … пользователи, которым разрешен доступ. По умолчанию права доступа rw. Монтируются каталоги командой mount <drive letter>: -u<userid> -g<groupid> <host>/<dir> userid & groupid используются если сервером является unix-машина, в остальных случаях используйте 1. Чтобы видеть все это хозяйство из под оффтопика'95, надо использовать Intellidrive'95 by FTP software. Берется оно на www.ftp.com. Там shareware версия на 30 дней использования (Хотя потом можно переставить). Hа сервере надо будет также запустить PCNFSD2 (лежит где-то на hobbes, а также в каком-то из фиксов к tcp/ip 2.0). И еще обязательно пропишите пользователя, который будет работать из под оффтопика в exports. Клиент под оффтопик очень нетороплив: проверка прав пользователя занимает около 45 секунд. Да, чуть не забыл: для оффтопика обязательно нужен работающий DNS сервер, или настроеный список хостов (hosts). Этот способ создания сети хорош когда сеть нужна нечасто, или когда в сети много разнотипных систем, т.к. NFS является стандартным протоколом TCP/IP, и имеет реализации подо все системы. Кто знает что-либо о чем-то, здесь не упомянутом - пишите. Только еще раз прошу: пишите _HЕТМАЙЛОМ_, не надо засорять эху… Большое спасибо тем, кто откликнулся на просьбу “исправить и дополнить”: Sergey Rogulev 2:5031/7 Alexey Varlamov 2:5005/41.5 Alexander V. Nikolaev 2:5020/1251 Sergey Kostenko 2:5085/13.32 Большое спасибо тем, кто написАл нетмайлом свое “большое спасибо” ;-) Большое спасибо всем подписчикам SU.OS2.*, из писем которых брались идеи, замечания, предложения и т.д.