Ограничьте приложения для доступа к определенным аппаратным средствам (веб-камера, микрофон …)

  1. Быстрый и грязный (и возможно неправильно):

    Существует почти всегда переменная среды $SHELL то, что можно узнать об этом из. Существуют некоторые пограничные случаи, где это перестанет работать, особенно если одна интерактивная оболочка будет использоваться для запуска другого. Новые оболочки также устанавливают переменную о себе в форме $BASH_VERSION или $ZSH_VERSION. Я не знаю это sh делает это.

  2. Немного более необычный:

    С другой стороны, большинство интерактивных оболочек будет знать то, что они - и дают Вам некоторый полезный вывод тому, если Вы выполняете что-то как echo $0. Это, кажется, полагается о той же информации, как Вы добрались бы, если бы Вы работали ps -fp $$, который получил бы данные процесса для процесса, который запустил PS.

  3. Более устойчивый:

    Путь, который мог бы работать на некоторые оболочки и среды, которые не имеют вещей удобства, таких как набор переменных среды, состоял бы в том, чтобы разорвать данные, Вы хотите из proc и выясняете то, что рабочий исполняемый путь на самом деле указывает на использование readlink -f /proc/$$/exe. Это имеет преимущество предоставления Вам информация о том, какой исполняемый файл был lauched, даже если это была символьная ссылка на что-то еще, в этом случае SHELL переменная могла бы лгать Вам.

3
01.01.2017, 11:39
1 ответ

Я предполагаю, что традиционный путь состоял бы в том, чтобы сделать псевдопользователей (как игровой пользователь) для программы/набора программ, присвоить этого пользователя группам для устройств, к которым это должно получить доступ (например, камера) и запустить программу SUID как этот пользователь. Если бы Вы удалили полномочия для "других" (не владелец или группа), то только владелец и члены группы - включая псевдопользователя - могли получить доступ к ней.

Далее больше Вы могли использовать группу программы (программ) для ограничения который пользователи, где позволено выполнить программу (программы). Сделайте группу (например, конференция) для пользователей позволил делать видеоконференции и ограничивать осуществление связанных программ (те предоставили специальный доступ к камере и микрометру) этой группе только.

+++

Иначе запускает программу SGID как специальная группа, принадлежащая устройству, и удалите разрешение для "других". Это, конечно, только работает, если программа должна получить доступ всего к одному ограниченному устройству.

2
27.01.2020, 21:28

Теги

Похожие вопросы