Надо на Java создать свою утилиту nwadmin32

Обсуждение технических вопросов по продуктам Novell

Надо на Java создать свою утилиту nwadmin32

Сообщение zendar » 05 июл 2012, 17:39

Есть сервер с NetWare6.5 SP8
Задача в том, чтобы создать утилиту на Java с возможностью выбора из дерева конкретного пользователя или контейнер с пользователями и вывести отчет по правам на файлы и каталоги. В nwadmin этого нет. Кто знает - физически эти права хранятся во внутренней базе сервера? Сейчас пытаюсь с помощью NDK For Java (библиотека Novell для Java-разработчиков) достучаться до сервера. Использую библиотеки njclv2.jar и ldapjdbc.jar из набора NDK. Но пока безуспешно.

Заранее спасибо.
Алексей.
zendar
 
Сообщения: 7
Зарегистрирован: 05 июл 2012, 16:09

Re: Надо на Java создать свою утилиту nwadmin32

Сообщение Сергей Дубров » 05 июл 2012, 19:31

zendar писал(а):Есть сервер с NetWare6.5 SP8
Задача в том, чтобы создать утилиту на Java с возможностью выбора из дерева конкретного пользователя или контейнер с пользователями и вывести отчет по правам на файлы и каталоги. В nwadmin этого нет. Кто знает - физически эти права хранятся во внутренней базе сервера?
...

Права на файловую систему (ACL) хранятся в самой файловой системе (т.н. метаданные - там же хранятся квоты, владелец и т.п.), никаких отдельно стоящих "внутренних баз сервера" не было и нет - интересующая вас информация распределена по ФС.

А у вас какая нужда в написании утилиты, да ещё непременно и на яве? Есть (небесплатная) утилита от JRBSoftware, которая делает ровно то, что вам требуется:

Displaying Trustee Assignments

Trstlist displays trustee assignments for multiple objects, or for selected directories or files. Its features include:

• Can display trustees for files, directories, all directories in a tree, for an entire volume, or all volumes on a server.
• Can process multiple files servers in a single command.
• Can display trustees for any class of object on any or all volumes on a server.
• Can display inherited rights filters.
• Optional sorting by user, directory or rights.
• Optional filtering by trustee rights e.g. trstlist can list only those trustees with supervisory rights.
• Can display assignments for a path and each of its parent directories.
• Can list the trustee rights as settrust or rights commands allowing them to be saved in a form in which they can be restored via a batch file.
• Can optionally list the trustee rights as settrust or rights commands allowing them to be saved in a form in which they can be removed via a batch file.
• Can optionally list trustee rights for an object which are inherited through security equivalence. As a user is security equivalent to groups belonged to, this includes trustee rights inherited via group membership. It also includes trustees of each of the container objects forming the object’s distinguished name, plus [Public] and [Root]. Every object is security equivalent to each of its parent objects.
• Can display only those objects, files or directories without trustees.
• Can display trustee assignments for all volume objects in an eDirectory tree.
• Displays paths in the DOS or LONG name space.
• Can produce comma delimited output with the fields and their order determined by the user.
• The GUI version allows changing of rights and inherited rights filters by right clicking in the appropriate column.
• Can display rights in Windows format e.g. RWXD.
• Can display trustees as “JRButils for AD” adsettrust commands, or as Windows cacls or icacls commands. An option is included to produce icacls commands granting non-propagated GR+GE rights to parent directories.
Аватара пользователя
Сергей Дубров
 
Сообщения: 2096
Зарегистрирован: 05 июн 2002, 06:07
Откуда: Новосибирск, ин-т ядерной физики СО РАН

Re: Надо на Java создать свою утилиту nwadmin32

Сообщение Иван Иванов » 05 июл 2012, 22:23

Кмк что-то подобное есть в именеджере.
Иван Иванов
 
Сообщения: 448
Зарегистрирован: 19 апр 2004, 14:02

Re: Надо на Java создать свою утилиту nwadmin32

Сообщение Константин Ошмян » 06 июл 2012, 10:11

Иван Иванов писал(а):Кмк что-то подобное есть в именеджере.
Опа... Где?! :roll:
Аватара пользователя
Константин Ошмян
 
Сообщения: 991
Зарегистрирован: 13 авг 2002, 21:36
Откуда: Рига

Re: Надо на Java создать свою утилиту nwadmin32

Сообщение zendar » 06 июл 2012, 10:34

А у вас какая нужда в написании утилиты, да ещё непременно и на яве? Есть (небесплатная) утилита от JRBSoftware, которая делает ровно то, что вам требуется:


Выбрал Java т.к. у Novell есть библиотеки и драйвера под него. А самому хочется написать такую утилиту, потому что альтернатива - коммерческие платные.
zendar
 
Сообщения: 7
Зарегистрирован: 05 июл 2012, 16:09

Re: Надо на Java создать свою утилиту nwadmin32

Сообщение zendar » 06 июл 2012, 10:38

Права на файловую систему (ACL) хранятся в самой файловой системе (т.н. метаданные - там же хранятся квоты, владелец и т.п.), никаких отдельно стоящих "внутренних баз сервера" не было и нет - интересующая вас информация распределена по ФС.


А как же в LDAP JDBC Driver есть подключение к серверу Novell и потом обращение к различным таблицам?
zendar
 
Сообщения: 7
Зарегистрирован: 05 июл 2012, 16:09

Re: Надо на Java создать свою утилиту nwadmin32

Сообщение Сергей Дубров » 06 июл 2012, 13:10

zendar писал(а):
А у вас какая нужда в написании утилиты, да ещё непременно и на яве? Есть (небесплатная) утилита от JRBSoftware, которая делает ровно то, что вам требуется:


Выбрал Java т.к. у Novell есть библиотеки и драйвера под него.

У них есть библиотеки и драйвера под C. Сам пользовался ими когда-то.
Аватара пользователя
Сергей Дубров
 
Сообщения: 2096
Зарегистрирован: 05 июн 2002, 06:07
Откуда: Новосибирск, ин-т ядерной физики СО РАН

Re: Надо на Java создать свою утилиту nwadmin32

Сообщение Сергей Дубров » 06 июл 2012, 13:19

zendar писал(а):
Права на файловую систему (ACL) хранятся в самой файловой системе (т.н. метаданные - там же хранятся квоты, владелец и т.п.), никаких отдельно стоящих "внутренних баз сервера" не было и нет - интересующая вас информация распределена по ФС.


А как же в LDAP JDBC Driver есть подключение к серверу Novell и потом обращение к различным таблицам?

И что, что к таблицам? Ещё раз - информация о назначенных правах (ACL), IRF, owner хранится не централизованно, а распределена по файловой системе. Грубо говоря, у каждого объекта ФС (файла, директории) есть сопутствующие метаданные, в которых содержится интересующая вас информация.

Кстати, через LDAP вы доступа к файловой системе не получите. В принципе. Только к службе каталога...
Аватара пользователя
Сергей Дубров
 
Сообщения: 2096
Зарегистрирован: 05 июн 2002, 06:07
Откуда: Новосибирск, ин-т ядерной физики СО РАН

Re: Надо на Java создать свою утилиту nwadmin32

Сообщение zendar » 06 июл 2012, 14:00

Грубо говоря, у каждого объекта ФС (файла, директории) есть сопутствующие метаданные, в которых содержится интересующая вас информация.


Да, тут я согласен. С помощью встроенной утилиты rights.exe можно посмотреть у кого из пользователей есть права на конкретный каталог, например Public. А надо наоборот - посмотреть на какие каталоги есть доступ у конкретного пользователя из дерева. Данные по пользователям не хранятся же в ФС.
zendar
 
Сообщения: 7
Зарегистрирован: 05 июл 2012, 16:09

Re: Надо на Java создать свою утилиту nwadmin32

Сообщение zendar » 06 июл 2012, 15:07

И еще по поводу внутренней БД. При запуске утилиты dsrepair в системной консоли сервера выводится сообщение "Local database hase been closed", а при выходе из утилиты сообщение - "Local database is open". Значит все-таки есть эта внутренняя БД. И вот еще пример из доки по LDAP JDBC Driver:

ACL Attribute Query

Код: Выделить всё
SELECT OU, ACL_Trustee, ACL_Attribute, ACL_Read, ACL_Write
FROM OrganizationalUnit


А с Си я не знаком, поэтому и пытаюсь на Java.
zendar
 
Сообщения: 7
Зарегистрирован: 05 июл 2012, 16:09

Re: Надо на Java создать свою утилиту nwadmin32

Сообщение Сергей Дубров » 06 июл 2012, 18:21

zendar писал(а):Данные по пользователям не хранятся же в ФС.

Хранятся - те же ACL - они именные. Я вам пытаюсь намекнуть, что через ldap-интерфейс вы доступа к тому, что хранится в файловой системе, принципиально получить не можете.
Аватара пользователя
Сергей Дубров
 
Сообщения: 2096
Зарегистрирован: 05 июн 2002, 06:07
Откуда: Новосибирск, ин-т ядерной физики СО РАН

Re: Надо на Java создать свою утилиту nwadmin32

Сообщение Сергей Дубров » 06 июл 2012, 18:30

zendar писал(а):И еще по поводу внутренней БД. При запуске утилиты dsrepair в системной консоли сервера выводится сообщение "Local database hase been closed", а при выходе из утилиты сообщение - "Local database is open". Значит все-таки есть эта внутренняя БД.

Вы тёплое с мягким путате - здесь речь о службе каталога (nds ака edir). Я же вам толкую, что интересующая вас информация хранится в ФАЙЛОВОЙ СИСТЕМЕ, а она никакого одношения к службе каталога не имеет и через LDAP недоступна. Так ферштеен?

zendar писал(а):И вот еще пример из доки по LDAP JDBC Driver:

ACL Attribute Query

Код: Выделить всё
SELECT OU, ACL_Trustee, ACL_Attribute, ACL_Read, ACL_Write
FROM OrganizationalUnit

Ещё раз - приведённые примеры - это доступ к ACL объектов службы каталога (edir). К файловой системе отношения НЕ имеющие. Поскольку вы в самом первом сообщении обозначили, что хотите "вывести отчет по правам на файлы и каталоги", я вам уже второй день заясняю, что это другая (ортогональная) сущность, через LDAP недоступная.

zendar писал(а):А с Си я не знаком, поэтому и пытаюсь на Java.

Угу. Только LDAP тут совершенно не при делах.
Аватара пользователя
Сергей Дубров
 
Сообщения: 2096
Зарегистрирован: 05 июн 2002, 06:07
Откуда: Новосибирск, ин-т ядерной физики СО РАН

Re: Надо на Java создать свою утилиту nwadmin32

Сообщение zendar » 06 июл 2012, 19:44

Спасибо, буду дальше копать. Я, наверно, действительно сильно зациклился на LDAP. А ответ где-то рядом. Буду рыться в ФС. Первоначально я и искал этот список в ФС. Наверно недостаточно искал. Еще раз, Сергей, спасибо за проявленный интерес к моей теме.
zendar
 
Сообщения: 7
Зарегистрирован: 05 июл 2012, 16:09

Re: Надо на Java создать свою утилиту nwadmin32

Сообщение Андрей Троценко » 16 июл 2012, 17:06

Эти интерфейсы доступны из Java с помощью библиотек NJCL, которые перенесены в устаревшее. См примеры:
http://www.novell.com/documentation/dev ... cl_sample/
http://www.novell.com/documentation/dev ... .java.html
http://www.novell.com/documentation/dev ... .java.html
А также документацию.
http://www.novell.com/developer/ndk/cla ... cl%29.html
http://www.novell.com/developer/ndk/cla ... tless.html

Тактика решения Вашей задачи: перебирая каждый эл-т каталога ФС, получать список его ACL, и его уже обрабатывать на предмет нужного пользователя.

UPD: Тоже самое можно делать посредством VFS:
http://www.novell.com/documentation/dev ... title.html
Тут, любыми средствами формируете предопределенный XML-файл с командой, и получаете результат в виде XML, где есть тот же список опекунов элемента ФС. Правда, работает только для NSS 3.0 и выше.

Успехов.
Аватара пользователя
Андрей Троценко
 
Сообщения: 529
Зарегистрирован: 31 июл 2002, 13:54
Откуда: Киев, Украина


Вернуться в Novell

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot], Google [Bot] и гости: 3

cron