LINUX.ORG.RU

История изменений

Исправление Deleted, (текущая версия) :

мне кажется, что selinux дает возможность разграничивать привилегии на основе связки pid/uid. он не особо хорош для разграничения доступа для процессов одного пользователя.

На основе пары токенов и требуемой операции. (сущность1, сущность2, операция) -> [разрешено, запрещено]

Сущность может быть чем угодно.

тот же пример с пипеткой. понимаешь, о чем я?

Не понимаю, если честно. Расскажи.

Как я это вижу:

  • По умолчанию всё всем запрещено. Приложение может взаимодествовать только с базовой функциональностью иксов и с оконным менеджером.
  • Конкретным приложениям можно дать конкретные привилегии. Например:
    • Репарентить окна. (WM)
    • Получать текстуры других окон. (Скриншоты, пипетка, скринкаст.)
    • Слушать ввод другого (конкретного) приложения. (даже хз зачем, ну допустим)
    • Слушать ввод всех приложений. (менеджер глобальных хоткеев, xneur какой-нибудь)

Что касается wayland, там работа с прикладухой точно такая же: приложения коннектятся на локальный сокет, сервер их обслуживает. Никакой разницы.

В случае с wayland просто по умолчанию запрещено вообще всё. Чтобы иксы свести до такого уровня, даже SELinux не надо. Просто урезать все всем права до минимума и вшить эту политику прямо в сорцы сервера.

Я не знаю, как они там делают привилегии для приложений, и вообще, делают ли. Но если меня склероз не подводит, еще год назад там не было стабилизированного API даже для того, чтобы скриншот снять. Нет функций - нет дыр, классный подход. Можно вообще комп не включать, дыр будет еще меньше.

То есть, ты представляешь механику, как она должна быть когда-то в светлом будущем:

  • Скачиваешь флатпак с приложением для скринкаста.
  • Там внутри файл с политиками.
  • Обертка в гуе спрашивает тебя, разрешить ли применение указанных привилегий к приложению. Соглашаешься.
  • Политика засовывается в SELinux.
  • Wayland сверяется с SELinux и разрешает приложению писать экран.

Чем в этом фарше Wayland потенциально лучше X11? Да ничем. Там сверху еще охренилиард строк кода надо написать, чтобы это всё заработало.

Исходная версия Deleted, :

мне кажется, что selinux дает возможность разграничивать привилегии на основе связки pid/uid. он не особо хорош для разграничения доступа для процессов одного пользователя.

На основе пары токенов и требуемой операции. (сущность1, сущность2, операция) -> [разрешено, запрещено]

тот же пример с пипеткой. понимаешь, о чем я?

Не понимаю, если честно. Расскажи.

Как я это вижу:

  • По умолчанию всё всем запрещено. Приложение может взаимодествовать только с базовой функциональностью иксов и с оконным менеджером.
  • Конкретным приложениям можно дать конкретные привилегии. Например:
    • Репарентить окна. (WM)
    • Получать текстуры других окон. (Скриншоты, пипетка, скринкаст.)
    • Слушать ввод другого (конкретного) приложения. (даже хз зачем, ну допустим)
    • Слушать ввод всех приложений. (менеджер глобальных хоткеев, xneur какой-нибудь)

Что касается wayland, там работа с прикладухой точно такая же: приложения коннектятся на локальный сокет, сервер их обслуживает. Никакой разницы.

В случае с wayland просто по умолчанию запрещено вообще всё. Чтобы иксы свести до такого уровня, даже SELinux не надо. Просто урезать все всем права до минимума и вшить эту политику прямо в сорцы сервера.

Я не знаю, как они там делают привилегии для приложений, и вообще, делают ли. Но если меня склероз не подводит, еще год назад там не было стабилизированного API даже для того, чтобы скриншот снять. Нет функций - нет дыр, классный подход. Можно вообще комп не включать, дыр будет еще меньше.

То есть, ты представляешь механику, как она должна быть когда-то в светлом будущем:

  • Скачиваешь флатпак с приложением для скринкаста.
  • Там внутри файл с политиками.
  • Обертка в гуе спрашивает тебя, разрешить ли применение указанных привилегий к приложению. Соглашаешься.
  • Политика засовывается в SELinux.
  • Wayland сверяется с SELinux и разрешает приложению писать экран.

Чем в этом фарше Wayland потенциально лучше X11? Да ничем. Там сверху еще охренилиард строк кода надо написать, чтобы это всё заработало.