Какой пользователь должен запускать встроенное приложение? - PullRequest
3 голосов
/ 17 сентября 2009

У нас есть встроенный продукт Linux с приложением, которое позволяет пользователю изменять различные настройки через систему меню. Эти настройки включают IP-адрес / DHCP и время.

Теперь мы запускаем это приложение от имени пользователя root, но это неправильно, позволяя пользователю напрямую взаимодействовать с процессом, запущенным от имени пользователя root.

Какого пользователя мы должны использовать?

Если не root, как мы решаем проблемы с разрешениями?

EDIT: Продукт не имеет графической пользовательской среды в классическом стиле Gnome / KDE. Упомянутая система меню реализована на ЖК-панели самого устройства.

Ответы [ 5 ]

3 голосов
/ 17 сентября 2009

Если к вводу применяются строгие меры контроля, нет ничего плохого в том, чтобы запускать встроенное приложение от имени root в Linux.

В любом случае, когда базовая ОС похожа на VxWorks, приложения также запускаются с максимальными привилегиями.

2 голосов
/ 17 сентября 2009

Я думаю, что вопрос: что произойдет, если что-то пойдет не так? Я предполагаю, что продукт будет просто зависать или плохо себя вести в любом случае? Концепция «root против обычного пользователя» действительно применима только в том случае, если есть что-то, от чего не может защитить не root, что, если все, что у вас есть, это фиксированный интерфейс, похоже, не так.

1 голос
/ 17 сентября 2009

Если приложение является основной частью системы, то имеет смысл запускать его как root. Однако, даже если есть какая-то дополнительная работа, стоит отсоединить ваше приложение с помощью графического интерфейса, чтобы он мог работать как обычный пользователь. Это также может помочь вам автоматизировать ваши тесты.

0 голосов
/ 17 сентября 2009

Я бы разбил код на части. Создайте пользователя для своего кода интерфейса. Вы можете назвать это «интерфейс». Затем пусть он вызывает root с помощью демона или sudo, чтобы фактически выполнить изменения, требующие root Ограничьте доступ, чтобы можно было выполнять только утвержденные команды.

0 голосов
/ 17 сентября 2009

Предполагается, что вы используете GNOME.

1) Делайте то, что делает программа «Пользователи и группы». Он позволяет вам видеть текущие настройки, но требует разблокировки дополнительных настроек, таких как управление другими пользователями.

2) Широко используйте gksu.

...