Bug 30025 - Недостаточные зависимости system-config-selinux
Summary: Недостаточные зависимости system-config-selinux
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: policycoreutils-gui (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Anton Farygin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-04-23 12:38 MSK by Anton V. Boyarshinov
Modified: 2014-04-28 14:41 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Anton V. Boyarshinov 2014-04-23 12:38:31 MSK
/usr/bin/system-config-selinux
Traceback (most recent call last):
  File "/usr/share/system-config-selinux/system-config-selinux.py", line 36, in <module>
    import gnome
ImportError: No module named gnome
-------------------------------
Ида -- оно вообще работать-то может в ситуации, когда права root получены, а контекст selinux, насколько я понимаю, остаётся пользовательский?
Comment 1 Andriy Stepanov (stanv) 2014-04-23 13:30:50 MSK
Давайте разбираться.

Этот вопрос всплывал два месяца назад.

Задавался он тоже Антоном.

Результатом нашего обсуждения получился вот такой коммит:

http://git.altlinux.org/people/stanv/packages/?p=selinux.git;a=blobdiff;f=policycoreutils.spec;h=217ed1349ca72961a776a53b99ec05a8c2d96362;hp=5bc8614e5cfb0708be841b4f91393cd8e139d12e;hb=1be5d0cdf39d1bf8c15c41cfe1cf766b87d9d980;hpb=d0d403ef2e0ba9ca549bd90a35fe3610bc185557


Что мы тут имеем:

%add_python_req_skip gnome
%add_python_req_skip gi
%add_python_req_skip gtk

Я решил так поступить после обсуждения с sbolshakov@.

Как я помню, мне было сказано что модуль gnome - это первый Gnome. Которого у нас ни в каком представлении нету.

И было вот такое вот решение.

Вопрос №2.
пакету selinux-policy-altlinux действительно нужен policycoreutils-gui ?

Ответ: Да. Может пригодится утилита (консольная) /usr/bin/sepolgen
# rpm -qfl /usr/bin/sepolgen | grep bin  
/usr/bin/selinux-polgengui
/usr/bin/sepolgen
/usr/bin/system-config-selinux

Т.е. получается что хоть пакет и имеет преффикс gui в названии - это на самом деле только скрипт на питоне sepolgen.

Жду предложений, если нету - закртытие баги репортером.
Comment 2 Anton Farygin 2014-04-23 13:34:53 MSK
предложение такое:
перенести утилиту sepolgen в пакет policycoreutils, если она не соответствует "gui" в названии текущего местоположения.

Утилиты, требующие GUI крайне желательно отделить от котлет, которым GUI не нужен.

И ещё - system-config-selinux у нас вообще работосопобен ? если удовлетворить зависимости - он сможет работать в нашем окружении ?
Comment 3 Anton V. Boyarshinov 2014-04-23 13:38:00 MSK
(В ответ на комментарий №1)
 
> Как я помню, мне было сказано что модуль gnome - это первый Gnome. Которого у
> нас ни в каком представлении нету.
> 
> И было вот такое вот решение.
Какое-то странное решение. А зачем паковать заведомо неработающий код? Если system-config-selinux не работает и работать не может -- значит его не следует паковать, чтоб он не загаживал собой хотя бы меню.
 
> Вопрос №2.
> пакету selinux-policy-altlinux действительно нужен policycoreutils-gui ?
> 
> Ответ: Да. Может пригодится утилита (консольная) /usr/bin/sepolgen
Для какой цели?

Вообще, как мне кажется, надо выделить из пакета selinux-policy-altlinux подпакет -admin, и в основном пакете оставить только то, что необходимо для использования policy, а всё, что связано с изменением и созданием политик паковать отдельно, так как это очевидное требование безопасности.

> # rpm -qfl /usr/bin/sepolgen | grep bin  
> /usr/bin/selinux-polgengui
> /usr/bin/sepolgen
> /usr/bin/system-config-selinux
> 
> Т.е. получается что хоть пакет и имеет преффикс gui в названии - это на самом
> деле только скрипт на питоне sepolgen.
Значит надо изменить раскладку скриптов по пакетам и, вероятно, полностью удавить pcu-gui
Comment 4 Andriy Stepanov (stanv) 2014-04-23 13:42:43 MSK
(В ответ на комментарий №2)
> предложение такое:
> перенести утилиту sepolgen в пакет policycoreutils, если она не соответствует
> "gui" в названии текущего местоположения.
> 

По сути, весь пакет policycoreutils-gui - это обвязка на питоне.
Содержимое пакет - это модули питона для работы самого sepolgen.
Т.е. утилиту перебросить не получится. Так как все остальное пакета - это то что нужно чтобы эта утилита работала.
Давайте выброшу неработающие скрипты которые завязаны на Gnome1, которого у нас нету?


> Утилиты, требующие GUI крайне желательно отделить от котлет, которым GUI не
> нужен.
> 
> И ещё - system-config-selinux у нас вообще работосопобен ? если удовлетворить
> зависимости - он сможет работать в нашем окружении ?

Нету в Сизифе у нас модулей питона для 1го Gnome.
Comment 5 Anton V. Boyarshinov 2014-04-23 13:48:10 MSK
(В ответ на комментарий №4)
> (В ответ на комментарий №2)
> > предложение такое:
> > перенести утилиту sepolgen в пакет policycoreutils, если она не соответствует
> > "gui" в названии текущего местоположения.
> > 
> 
> По сути, весь пакет policycoreutils-gui - это обвязка на питоне.
> Содержимое пакет - это модули питона для работы самого sepolgen.
> Т.е. утилиту перебросить не получится. Так как все остальное пакета - это то
> что нужно чтобы эта утилита работала.
> Давайте выброшу неработающие скрипты которые завязаны на Gnome1, которого у нас
> нету?
Да, их надо выбросить, а остальное перенести в остальной пакет, а подпакет -gui удалить как неработающий
Comment 6 Andriy Stepanov (stanv) 2014-04-23 13:56:51 MSK
> Вообще, как мне кажется, надо выделить из пакета selinux-policy-altlinux
> подпакет -admin, и в основном пакете оставить только то, что необходимо для
> использования policy, а всё, что связано с изменением и созданием политик
> паковать отдельно, так как это очевидное требование безопасности.

Boyarshinov: приведу пример.

Один.
Который пришел сразу на ум.
Есть модуль которые написал сам же Админ.
Какое-то расширение политики.
Чтобы его обновить\написать\установить - нужны тулзы.
Вот такая архитектура у этого SeLinux.
Кучу утилит которые вызываются на разных этапах.
Даже для обычных действий.
Смотри список этих утилит вот тут:
http://userspace.selinuxproject.org/trac/wiki/SelinuxTools
Их много, реально много.
И нужно быть Dan Walsh чтобы все это связать в кучу....
очень сложно узнать:  "оставить только то, что необходимо для  использования
policy". Увы.
Comment 7 Anton V. Boyarshinov 2014-04-23 14:13:37 MSK
(В ответ на комментарий №6)
> > Вообще, как мне кажется, надо выделить из пакета selinux-policy-altlinux
> > подпакет -admin, и в основном пакете оставить только то, что необходимо для
> > использования policy, а всё, что связано с изменением и созданием политик
> > паковать отдельно, так как это очевидное требование безопасности.
> 
> Boyarshinov: приведу пример.
> 
> Один.
> Который пришел сразу на ум.
> Есть модуль которые написал сам же Админ.
> Какое-то расширение политики.
> Чтобы его обновить\написать\установить - нужны тулзы.
Вот если нужны -- тогда пусть он их поставит. Политики, в общем случае не должны писаться на на машинах на которых реально обрабатывается скретная информация и средств их написания на таких машинах не должно быть.

> Вот такая архитектура у этого SeLinux.
> Кучу утилит которые вызываются на разных этапах.
> Даже для обычных действий.
> Смотри список этих утилит вот тут:
> http://userspace.selinuxproject.org/trac/wiki/SelinuxTools
> Их много, реально много.
> И нужно быть Dan Walsh чтобы все это связать в кучу....
> очень сложно узнать:  "оставить только то, что необходимо для  использования
> policy". Увы.
Тем не менее, можно отделить то, про что мы точно знаем, что оно нужно только для расширения policy. Должна быть возможность не устанавливать эти утилиты при установке policy. sepolgen тут очевидный кандидат.
Comment 8 Anton Farygin 2014-04-23 14:15:28 MSK
Антон, предлагаю всё-таки сейчас не пытаться отделить sepolgen от всего GUI. Давай перенесём его в пакет policycoreutils и на этом успокоимся. Защита от дурака должна быть реализована на системном уровне, а не на уровне отсутствия утилит написания политики.
Comment 9 Anton Farygin 2014-04-23 14:16:04 MSK
не правильно написал - не от GUI, а от utils конечно же. Пакет gui ликвидировать.
Comment 10 Anton V. Boyarshinov 2014-04-23 14:22:47 MSK
(В ответ на комментарий №8)
> Антон, предлагаю всё-таки сейчас не пытаться отделить sepolgen от всего GUI.
> Давай перенесём его в пакет policycoreutils и на этом успокоимся.
Ну, для начала да, это понятно.

> Защита от
> дурака должна быть реализована на системном уровне, а не на уровне отсутствия
> утилит написания политики.
И на этом тоже, по той же причине, по которой на машинах, критических по безопасности, не должно быть компилятора.
Comment 11 Anton V. Boyarshinov 2014-04-23 14:27:12 MSK
Итого
1) прямо сейчас переносим sepolgen и всё, что ему нужно в -utils, пакет -gui удаляем
2) в перспективе заботимся о том, чтоб разделять политику и набор инструментов для создания политик
Comment 12 Anton Farygin 2014-04-23 14:41:01 MSK
Да, я помню про отсутствие компилятора. Это хороший аргумент.

Андрей, давай всё-таки рожать отдельный пакет sepolgen
Comment 13 Andriy Stepanov (stanv) 2014-04-23 16:08:53 MSK
После исследования, выяснилось,  что модуль питона Gnome - работоспособный и у нас он есть.
И он GNOME2.

Он называется называется как:

# rpm -ql python-module-pygnome
/usr/lib64/python2.7/site-packages/gtk-2.0/gnome


Получается что пакеты gui (selpolgen)  полностью работоспособны, и работают даже в графическом режиме. Мне удалось их запустить.

В итоге, исправляю:
1) Добавляю BuildRequires на python-module-pygnome
2) Удаляю из selinux-policy-altlinux зависимость на policycoreutils-gui, так как оно лишнее.
Comment 14 Andriy Stepanov (stanv) 2014-04-25 17:26:15 MSK
Пакет был пересобрал с учетом 
http://pkgs.fedoraproject.org/cgit/policycoreutils.git/tree/policycoreutils.spec
В дальнейшем, лучше придерживаться его структуры, так как только "эти" парни понимают что происходит с SeLinux, и то не всегда.

В результате секция %files для всех пакетов была перекроена.

Diff: http://git.altlinux.org/people/stanv/packages/?p=selinux.git;a=blobdiff;f=policycoreutils.spec;h=df976f3414d90b3f3d80c0f83798e297e1bef5c3;hp=f6c169f9445a762e5a20b9de3b0f3d2d3e36e66d;hb=901aa9214df4114c54a143254f0daae3eb96a387;hpb=078295f26427f240a76da2c961cf31a9743a5951

Изменения из кардинальных:
* Был добавлен новый пакет devel
* Были перетасованы модули python, это исправило зависимости.
* Средства gui мне удалось запустить. Но всетаки они заточены под ref-policy. Так как в коде питона используются права и роли политики refpolicy которых у нас нету.

Пакет в сизифе.

Boyarshinov: в ближайшее время соберу для C7 на сборочнице в режиме test-only, полученные пакеты установлю на твой образ.... проверю как он пройдет установка.
Comment 15 Andriy Stepanov (stanv) 2014-04-28 14:09:49 MSK
Протестировал на altlinux-7.0.4-20140428-spt-i586-ru-install-dvd5.iso
Можно переносить в C7
Номер таска: 118934

+ Boyarshinov@ скопируй также пожалуйста из сизифа политику, спасибо.
Comment 16 Anton V. Boyarshinov 2014-04-28 14:41:39 MSK
policycoreutils-2.2.5-alt2.M70C.2