[UNIX] Pourquoi créer un utilisateur par programme

Pourquoi créer un utilisateur par programme [UNIX] - Logiciels - Linux et OS Alternatifs

Marsh Posté le 13-03-2013 à 22:44:45    

Bonsoir,  
 
J'ai lu plusieurs documentations pour installer certains logiciels sur Linux, comme Nagios ou AMANDA, et à chaque fois, il est écrit de créer un utilisateurs pour le programme.
Par exemple pour Amanda, il faut définir le propriétaire du dossier /etc/amanda à l'utilisateur "amanda" (le nom est au choix ofc).
 
Mais je vois pas l’intérêt, pourquoi ne pas installer simplement le programme, et laisser root comme seul utilisateur autorisé ?
 
Deuxième question, quelle est la différence entre installer un paquet via aptitude, et l'installer en le compilant soi-même (./configure, make, make install).
 
Merci de vos réponses.

Reply

Marsh Posté le 13-03-2013 à 22:44:45   

Reply

Marsh Posté le 14-03-2013 à 07:59:22    

skiny13 a écrit :

Bonsoir,  
 
J'ai lu plusieurs documentations pour installer certains logiciels sur Linux, comme Nagios ou AMANDA, et à chaque fois, il est écrit de créer un utilisateurs pour le programme.
Par exemple pour Amanda, il faut définir le propriétaire du dossier /etc/amanda à l'utilisateur "amanda" (le nom est au choix ofc).
 
Mais je vois pas l’intérêt, pourquoi ne pas installer simplement le programme, et laisser root comme seul utilisateur autorisé ?
 
Deuxième question, quelle est la différence entre installer un paquet via aptitude, et l'installer en le compilant soi-même (./configure, make, make install).
 
Merci de vos réponses.


 
Salut,
 
Pour ta première question, il s'agit d'une question de sécurité : ces programmes à qui il faut créer un utilisateur sont des "démons" dans le sens où ils tournent en tâche de fond. L'intérêt de leurs créer un user spécifique est qu'en cas de faille de sécurité, un attaquant aura les droit dans lesquels le programme tourne ; si c'est root, il aura les droit root, et ça c'est pas bien.
 
Pour la deuxième question, aptitude et les autres gestionnaires de paquets ne sont pas seulement des installeurs, ce sont des outils très puissants qui gèrent, entre autre, les dépendances entre paquets, leurs mise à jour, leurs désinstallation "propre", etc.  
Concrètement, un paquet installé toi-même ne sera pas mis à jour et sa désinstallation sera plus complexe et s'il manque un dépendance, au mieux tu sera averti lors du ./configure, au pire ton programme ne marchera pas ; avec aptitude, ce sera installé automatiquement.

Message cité 1 fois
Message édité par tantal_fr le 14-03-2013 à 08:00:40
Reply

Marsh Posté le 14-03-2013 à 08:01:25    

1. pour des raisons de sécurité. Cela permet de cloisonner le programme à un utilisateur donné au lieu de lui donner les droits root. Si le programme contient des  failles, de base, l'exploitant arrivera avec les droits sous lesquels le programme tourne.
 
2. intégration au système de packaging, meilleure gestion au fil du temps. Essaye de gérer correctemente un programme installé via les sources,le mettre à jour sans polluer ta distrib, etc...


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 14-03-2013 à 12:39:40    

Merci à vous deux pour ces réponses !

Reply

Marsh Posté le 15-03-2013 à 17:00:16    

Je suis totalement d'accord avec cette pratique. pour les raisons cités, mais aussi par habitude...  
 
La liste des avantages de cette pratique est assez longue...  
pour les sauvegardes, pour les migrations, pour le management, pour la sécurité, pour la stabilité du système, pour faciliter la vie de l'administrateur, pour rester propre et cohérent, pour les mises à jour sans erreurs, pour le tri des logs, pour les mails locaux à l'admin, pour l'interopérabilité, pour l'accès aux ressources, pour la lisibilité des commandes usuelles comme top ou ps ou ls,  ppour...pour....pour....etc...
 
 


---------------
Collectionner les vieux serveurs c'est chouette mais c'est lourd et ça prend de la place ;)
Reply

Marsh Posté le 25-03-2013 à 13:45:21    

tantal_fr a écrit :


 
Salut,
 
Pour ta première question, il s'agit d'une question de sécurité : ces programmes à qui il faut créer un utilisateur sont des "démons" dans le sens où ils tournent en tâche de fond. L'intérêt de leurs créer un user spécifique est qu'en cas de faille de sécurité, un attaquant aura les droit dans lesquels le programme tourne ; si c'est root, il aura les droit root, et ça c'est pas bien.
 
Pour la deuxième question, aptitude et les autres gestionnaires de paquets ne sont pas seulement des installeurs, ce sont des outils très puissants qui gèrent, entre autre, les dépendances entre paquets, leurs mise à jour, leurs désinstallation "propre", etc.  
Concrètement, un paquet installé toi-même ne sera pas mis à jour et sa désinstallation sera plus complexe et s'il manque un dépendance, au mieux tu sera averti lors du ./configure, au pire ton programme ne marchera pas ; avec aptitude, ce sera installé automatiquement.


 
 
Pour ta première réponse, c'est tout à fait vrai. Il faut créer un utilisateur  et un groupe spécifique, auquel il appartiendra, pour le ou les programmes autorisés.
 
Pour ma part, sur ma deb perso, j'ai un utilisateur courant et un utilisateur dit stable. Le premier, je l'utilise quotidiennement. Le second c'est pour juste toutes mes données "sensibles" qui seront en lecture seule pour le premier (musiques, docs/livres, images, archives, etc.; tout ce qui est "immuable" en général) afin d'éviter tout risque de gaffe de ma part.  Et cela m'est arrivé.  [:pepe le moco:2] cela m'a servi de leçon.  Ce n'est pas difficile à gérer.  
 
Juste une chose, à titre perso, j'ai une détestation pour sudo. Je trouve cela une aberration du point de vue de la sécurité du bousin... hop viré !
 
 
Pour ta seconde réponse, on peut tout de même compiler, si on désire, comme je le fais souvent, un programme qui n'est pas intégré encore ou à jour et que tu en as "sérieusement besoin". Mais, comme , tu l'as dit pour un problème de propreté de ton système, il ne faut pas faire un "make install". Mais plutôt, à la mano préparer un paquet en vérifiant la cohérence  avec l'arborescence de ton système et construire le paquet deb  via un  dpkg-deb --build. Tu as des tuto pour faire des deb perso. Ce n'est pas si difficile que ça. Le paquet pourra être mis à jour ou être désinstaller proprement. Il faut bien sûr avoir une bonne compréhension de son système
 
Parfois je ne me foule pas. Je pique un paquet ubuntu et je le dézippe . Je reconstruis le paquet en contrôlant l'arborescence et en vérifiant le fichier control pour voir s'il y a un problème de bibliothèque. Parfois l'incrémentation diffère avec une Debian ou cela a été compiler avec une bibliothèque trop à jour pour mon système. Dans ce dernier cas, cela m'oblige à jeter ce paquet et à compiler selon mes bibliothèques existantes. Je ne vais pas tout casser tout de même.  
 
 


---------------
" Il n'est pas du tout difficile de séduire une jeune fille, mais d'en trouver une qui vaille la peine d'être séduite." Sören Kierkegaard
Reply

Marsh Posté le 27-03-2013 à 14:16:55    

skiny13 a écrit :

Merci à vous deux pour ces réponses !


 
+ pour cloisonner le file system aussi, on met un user par programme avec (idéalement) un FS associé, le compte applicatif (le compte qui fait touner l'appli) a les droits (et uniquement lui) sur le FS (fileSystem)
pour le coup pas d'erreur de modif/crash/destroy possible par un autre utilisateur au cas ou.
 
c'est clairement une très bonne méthode, root n'est là que pour dépanner/réparer, préférer un compte utilisateur avec des droits root (sudoers)  
 
 [:americas]


---------------
Mon topic - Mon Feed-Back
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed