2009-09-17 7 views
3

Nous avons un produit linux intégré avec une application qui permet à l'utilisateur de modifier différents paramètres via le système de menus. Ces paramètres incluent l'adresse IP/DHCP et l'heure.À quel utilisateur l'application intégrée doit-elle être exécutée?

Nous exécutons maintenant cette application en tant que root mais cela ne va pas, en laissant l'utilisateur interagir directement avec un processus exécuté en tant que root.

De quel utilisateur devrions-nous utiliser?

Si ce n'est pas root, comment pouvons-nous résoudre les problèmes d'autorisation qui se posent?

EDIT: Le produit ne dispose pas d'un environnement utilisateur graphique de la manière classique Gnome/KDE. Le système de menus mentionné est mis en œuvre sur un panneau LCD sur le produit lui-même. Cela suppose que vous exécutez GNOME.

Répondre

3

Si des contrôles stricts sont appliqués à l'entrée, il n'y a rien de mal à exécuter une application intégrée en tant que root sous Linux. Quoi qu'il en soit, lorsque le système d'exploitation sous-jacent est quelque chose comme VxWorks, les applications s'exécutent avec des privilèges maximum.

+0

Notez que la version moderne de VxWorks offre plus de contrôle et d'isolation que les versions précédentes ... mais oui, pour la plupart des périphériques profondément intégrés, il n'y a pas de concept d'utilisateurs. Comme il n'y a qu'un seul utilisateur logique, l'environnement ou le propriétaire physique. – jakobengblom2

0

1) Faites ce que fait le programme "Utilisateurs et groupes". Il vous permet de voir les paramètres actuels mais vous oblige à déverrouiller les paramètres avancés tels que la gestion d'autres utilisateurs.

2) Utilisez le gksu en profondeur.

1

Si l'application est la partie principale du système, il est logique de l'exécuter en tant que root. Cependant, même s'il y a du travail supplémentaire, il est utile de découpler votre application avec votre interface graphique, afin que votre interface graphique puisse s'exécuter en tant qu'utilisateur normal. Cela peut également vous aider à automatiser vos tests.

0

Je diviser le code en parties. Créez un utilisateur pour votre code d'interface. Vous pourriez le nommer "interface". Ensuite, appelez root via un daemon ou un sudo pour exécuter les modifications qui requièrent root. Limitez l'accès afin que seules les commandes approuvées puissent être exécutées.

2

Je pense que la question est: que se passerait-il si quelque chose ne va pas? Je suppose que le produit se bloque et se bloque ou se comporte mal dans tous les cas? Le concept de root par rapport à un utilisateur régulier ne s'applique vraiment que s'il y a quelque chose qui ne protège pas la racine ... ce qui ne semble pas être le cas si vous n'avez qu'une interface fixe.

Questions connexes