2009-09-17 3 views
3

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

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

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

Если не root, как мы можем решить возникшие проблемы с разрешением?

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

ответ

3

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

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

+0

Обратите внимание, что современная версия VxWorks имеет больше возможностей управления и изоляции, чем предыдущие версии ... но да, для большинства глубоко внедренных устройств нет концепции пользователей. Поскольку существует один логический пользователь, среда или физический собственник. – jakobengblom2

0

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

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

2) Используйте gksu экстенсивно.

1

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

0

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

2

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

Смежные вопросы