Укажите отработанное время

Отработанное время:
Продуктивное время:
Bug 3934 - Подготовить выпуск новой версии libnss-role   Make a simular bug
Summary: Подготовить выпуск новой версии libnss-role
Status: CLOSED FIXED
Alias: None
Product: Tartarus
Classification: Свободные проекты (Open source projects)
Component: Tartarus integration (show other bugs)
Version: не указана
Hardware: PC All
: P4 normal
Target Milestone: ---
Assignee: Pavel Shilovsky
QA Contact: Евгений Синельников
URL: http://www.tartarus.ru/versions/show/5
Whiteboard:
Keywords:
Depends on:
Blocks: 3355
  Show dependency treegraph
 
In work:
Reported: 2009-05-12 01:20 MSD by Евгений Синельников
Modified: 2010-09-16 15:26 MSD (History)
4 users (show)

See Also:
Заявки RT:
Связано с:
Дата напоминания:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Евгений Синельников 2009-05-12 01:20:55 MSD
Для продвижения Tartarus и реализации политик на уровне групп, необходимо исправить основные проблемы в модуле ролей:
- Переписать NSS модуль без использования C++ (http://www.tartarus.ru/issues/show/72)
- Добавить возможность ссылаться на группы не только по идентификаторам, но и по именам (http://www.tartarus.ru/issues/show/49)
- Добавить проверку на NGROUP_MAX (http://www.tartarus.ru/issues/show/126)

Далее можно начать активно внедрять этот модуль в наших решениях. Первая задача - это прозрачный доступ через ssh с правами админа на основе сетевых групп. При этом группе netadmins, по умолчанию дополнительно назначаются группы remote и wheel, а также роль users.
Comment 1 Pavel Shilovsky 2009-05-12 01:28:56 MSD
http://git.etersoft.ru/people/piastry/packages/?p=libnss-role.git;a=summary

0.2.1-alt1

Реализация на C. Работает не только с гидами, но и с именами групп.
Comment 2 Pavel Shilovsky 2009-05-12 01:30:43 MSD
В предыдущем посте неправильно указал время работы. Исправляюсь.
Comment 3 Pavel Shilovsky 2009-05-12 01:36:13 MSD
Всё, теперь со временем должно быть всё верно. Предыдущие два следует считать неправильными.
Comment 4 Pavel Shilovsky 2009-05-15 23:56:06 MSD
Пересмотрена реализация модуля, добавлена проверка на NGROUP_MAX

http://git.etersoft.ru/people/piastry/packages/?p=libnss-role.git;a=summary
Comment 5 Pavel Shilovsky 2009-05-19 12:36:24 MSD
Дабавлена необходимая функциональность в работу утилит
http://git.etersoft.ru/people/piastry/packages/?p=libnss-role.git;a=summary
Comment 7 Евгений Синельников 2009-05-27 17:07:06 MSD
Думаю, что текущая версия течёт как решето... Паша, прогони его valgrind'ом, а лучше подумай, где и в каких случаях ты освобождаешь память, особенно в случае возникновения ошибок... Как я вижу почти нигде...
Comment 8 Pavel Shilovsky 2009-06-06 20:21:00 MSD
Исправлено  в 0.2.7-alt1:
http://git.etersoft.ru/people/piastry/packages/?p=libnss-role.git;a=summary
Comment 9 Pavel Shilovsky 2009-06-06 21:06:45 MSD
Исправил ошибку в пред версии - теперь 0.2.8-alt1.
Comment 10 Евгений Синельников 2009-06-19 22:53:20 MSD
Текущий код совершенно не готов к использованию. Даже на глаз, я не готов это запускать в надежде на работоспособность.

Проблемы новой сборки много раз обсуждались... Состояние в таком виде - сломано.

Я вот случайно обновился и долго не мог понять, почему у меня syslogd не запускается... Вот что показал strace:
[...]
[pid 16152] mmap2(NULL, 12432, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 45, 0) = 0xb7fd7000
[pid 16152] fadvise64(45, 0, 12432, POSIX_FADV_WILLNEED) = 0
[pid 16152] mmap2(0xb7fd9000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 45, 0x1) = 0xb7fd9000
[pid 16152] close(45)                   = 0
[pid 16152] mprotect(0xb7fd9000, 4096, PROT_READ) = 0
[pid 16152] open("/etc/role", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 16152] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
Process 16152 detached
<... nanosleep resumed> {299, 965731693}) = ? ERESTART_RESTARTBLOCK (To be restarted)
--- SIGTERM (Terminated) @ 0 (0) ---
--- SIGCHLD (Child exited) @ 0 (0) ---
exit_group(0)  

Даже боюсь подумать что это может быть...
Comment 11 Pavel Shilovsky 2009-10-03 13:24:59 MSD
Пересмотрел архитектуру и откатил версию. Начал разработку с нуля - текущая версия 0.2.1:
1. Реализована работа с именами групп (с латинскими символами и длиной имени группы не более 32) .
2. Сам модуль полностью реализован на языке Си.
3. Утилиты пока так и остались из предыдущей реализации на С++, что планируется исправить.

Ветка разработки
http://git.etersoft.ru/people/piastry/packages/?p=libnss-role.git;a=shortlog;h=refs/heads/dev

Можно тестировать!


Comment 12 Vitaly Lipatov 2009-10-16 20:31:48 MSD
Обычно всё же при переписывании кода с нуля увеличивают мажорную цифру (первую например), а не откатывают версию.
Comment 13 Pavel Shilovsky 2009-11-11 22:35:41 MSK
Реализованы утилиты на языке С, проведён анализ кода, найдены и исправлены ошибки.

Текущая версия 0.2.2-alt2.
Comment 14 Pavel Shilovsky 2010-01-19 14:57:36 MSK
Новый релиз 0.2.3-alt1.

Исправлены некоторые ошибки, добавлены предупреждающие сообщения при работе утилит, группы и gid'ы теперь различаются по знаку "!", стоящему перед именем группы в файле /etc/role (пр. !role:10,!group).
Comment 15 Ivan Melnikov 2010-01-19 15:45:11 MSK
(In reply to comment #14)
> Новый релиз 0.2.3-alt1.
> 
> Исправлены некоторые ошибки, добавлены
> предупреждающие сообщения при работе
> утилит, группы и gid'ы теперь различаются по
> знаку "!", стоящему перед именем группы в
> файле /etc/role (пр. !role:10,!group).
> 

Почему сообщения об ошибках не в stderr?

Зачем различать группы и gid'ы по "!" ?

Почему изменения, исправляющие баги, и изменения, относящиеся к policy/интерфейсу объединены в один коммит?

Почему git log не даёт ответов на эти вопросы?
Comment 16 Pavel Shilovsky 2010-01-19 16:17:40 MSK
"!" используется, чтобы понять, что имеется ввиду группа с gid 123, или группа с именем "123". (123 взят как пример)

Да, следует использовать stderr, спасибо!
Comment 17 Ivan Melnikov 2010-01-19 17:01:54 MSK
(In reply to comment #16)
> "!" используется, чтобы понять, что имеется
> ввиду группа с gid 123, или группа с именем "123".
> (123 взят как пример)

А где такие группы возникают? groupadd(8) и многие другие считают (правда, не знаю, почему так повелось), что имя не должно начинаться с цифры.
Comment 18 Pavel Shilovsky 2010-01-20 01:53:24 MSK
Fedora 12, x86_64.

[piastry@keepcoding ~]$ sudo groupadd 123
[piastry@keepcoding ~]$ sudo gpasswd -a role_test 123
[piastry@keepcoding ~]$ id role_test
uid=501(role_test) gid=502(role_test) группы=502(role_test),503(rolegr),504(123)

Так что не все groupadd одинаковые.

В тоже время в документации по groupadd говорится, что имя группы должно начинаться с имени. После исследования данного вопроса решено было вернуть всё, как было до этого.
Comment 19 Pavel Shilovsky 2010-01-20 11:38:19 MSK
Откатил вышеописанное изменение разбора файла.
Comment 20 Pavel Shilovsky 2010-02-01 12:16:29 MSK
Fixed.