Bonsoir à vous
Est-ce possible qu'un programme en .deb que l'on installe puisse être configuré pour se lancer en root sans vous le demander ?
Je veux dire, prenons Steam par exemple. Sur Windows, Steam se lance sans jamais vous demander la permission administrateur et pourtant, accède bien au système pour les installations etc...
Est-il possible que sur Linux, Steam qui est en .deb et donc qui demande l'accès au système puisse garder le mot de passe pour l'utiliser à sa guise lors de son utilisation de tout les jours ? (dans ce cas présent, c'est Valve qui serait responsable de la création du .deb et donc de ce que celui ci va faire lors de l'installation)
Des personnes en parle ici (en anglais) http://steamcommunity.com/app/221410/discussions/0/846939071134403593/
Alors j'avoue me poser la question. Je ne suis pas du tout qualifié pour répondre à cette question qui, ma foi, me fait peur ![]()
Dans ce tuto, un utilisateur spécial est créé, et sudo est configuré de façon à ce que le mot de passe ne soit pas demandé dans certaines conditions, ici pour l'utilisation de steam.
Pour mieux comprendre, renseigne toi sur la configuration de /etc/sudoers, et sur les permissions en général.
C'est faisable à notre insu ?
Dans ce cas, est-il possible d'installer un .deb sans l'accès root ?? (si l'installation s'est faite sans l'accès, il n'y a pas de raison que le programme en question puisse avoir accès au mot de passe)
quand tu installe un programme en root tu donnes les droits root a l'installeur. Il fait ce qu'il veut. Il ne faut pas installer de logiciel dont tu ne fais pas confiance a la provenance. Note que tu peux lire les scripts d'installation des .deb pour voir ce qu'ils font.
Oui Godrik, je le sais vraiment très bien.
Mais ma question c'est surtout : est ce qu'il est possible qu'il y ai un script dans le .deb permettant au programme une fois installé de pouvoir se lancer en root sans qu'il ne demande à l'utilisateur, en gros, le script permet de se rapeller du mot de passe pour l'utiliser à chaque lancement du programme.
Si ça existe vraiment, y a t-il un moyen de contourner ça hormis bien sur de ne pas installer le programme en question. Un moyen de l'installer SANS être en root pour l'empecher de s'en souvenir (si c'est possible)
Je vais être un tout petit peu plus précis : PAR DÉFAUT, lors d'une utilisation complètement par défaut avec sudoers entièrement par défaut, est ce que c'est possible que Steam se lance en root malgré n'avoir jamais touché à la configuration de sudo
Parce que, pour ce que tu me dis, myhideout, il faut consciemment parametrer sudoers, moi je ne veux justement PAS que Steam se lance en root, et donc ma question est bien de savoir si, sans aucune modification de ma part, il est possible que Steam se lance tout seul, à mon insu, en root (imaginons que Valve le souhaite pour les dépendances, à la manière de Windows, ils ne te disent rien, ils installent, POINT)
Je sais pas si tu comprends
Vraiment, ma question concerne le PAR DÉFAUT de sudo
à savoir si l'installation en .deb est capable de garder en mémoire le mot de passe à notre insu pour s'en servir pour installer toute sorte de dépendance (parce que ça pourrait très bien être utile pour une plateforme de jeu tel que Steam qui nécessite parfois si ou ça)
Il y a plusieurs facon, il y a sudo. A peu de chose pres, il faut s'assurer que le programme n'a pas des droits particulier dans sudoers. La solution la plus simple est encore de ne pas installer sudo.
Il y a aussi le setuid bit. Le SUID bit permet a un programme de se lancer a partir d'un autre compte utilisateur. Ca se desactive facilement au niveau du systeme de fichier. (voir les parametres de mount dans /etc/fstab).
Finalement, lors de l'installation un programme peu laisser un demon sur la machine qui tourne avec privilege root.
Donc au final, une installation sur sa machine c'est avant tout une question de confiance.
Imaginons que Steam soit en .run et qu'il s'installe directement dans un dossier Steam dans home sans jamais demander le mot de passe lors de l'installation.
Y aurait-il un risque quelconque ?
Tiens un peu de lecture : http://www.ac-creteil.fr/reseaux/systemes/linux/debian/deb-syst-fichiers.html
ou
http://blog.developpez.com/ineumann/p11551/general-unixlinux/liste-des-repertoires-principaux-et-fichiers-courants
http://pastebin.com/cjA1nQpk
Sur ce site, il parle de lancer en sandbox, je vais lire tout ça.
Une personne a dit qu'un jeu ne devrait jamais avoir besoin de sudo. Qu'un utilisateur Linux n'est pas un utilisateur Windows, même pour le jeu, un Linuxien installera généralement ses dépendances par lui même comparé à Windows.
Vous êtes d'accord avec ces mots ?
En tout cas, vous avez de sacré connaissances
Je suis noob mais je ne le resterais pas
Si un programme est en ".run" alors il tourne avec des droits utilisateurs. Il ne peut pas faire de changement sur le systeme. Cependant il peut changer a peu pres tout sur ton compte utilisateur. Personnellement quand j'ai un programme dont je n'ai pas confiance, je l'installe sur un compte distinct de mon compte utilisateur. Je cree un autre compte juste pour lui. Je ne fais tourner ce programme qu'a partir de ce compte utilisateur.
Par exemple, je garde deux firefox ouvert. Un qui tourne a partir de l'utilisateur "erik" et un qui tourne a partir de l'utilisateur "firefox". Je n'utilise le firefox de "erik" que pour des donnees sensible (banque typiquement) et j'utilise l'autre firefox pour le reste. Cet autre compte est automatiquement detruit et recreer toute les semaines.
A partir du moment où c'est UTILISATEUR et non root, TOUT se passe dans /home, c'est bien ça ?
Donc la OUI, le programme peut carrément modifier l'utilisateur (ajout d'un icone dans le menu des applications par exemple) mais tant que celui ci reste en tant qu'utilisateur (tant que le mot de passe n'est jamais demandé), il ne peut absolument PAS atteindre le système, c'est bien ça ??
En tout cas, le coup du double compte, je trouve ça vraiment TRÈS malin et je n'y avait pas pensé. J'irai même jusqu'à dire indispensable... diantre, pourquoi n'avais-je jamais pensé à ça plutot
T'es un génie, Godrik ![]()
Moi j'ai rien invente, c'est une technique classique d'administration systeme. Je ne sais pas de quand ca date, mais dans les annees 90 c'etait deja utilise.
Android fait ca aussi pour assurer la separation des donnees des applications. Chaque application a son propre utilisateur.
En principe un process qui tourne avec des droits non-root ne devrait pas pouvoir obtenir des droit root. Apres cela depends beaucoup de comment est configurer le systeme et de si il y a des failles de securite connu sur ton systeme. Mais disons que si tu suppose qu'un utilisateur quelconque peut devenir root, il n'y a rien a faire.
Oui je sais que tu n'as rien inventé mais cette méthode est géniale !
Sur une installation de base avec Debian wheezy, L'installeur demande d'entrer un mot de passe root et que si on ne le fait pas, alors le premier utilisateur crée (durant même l'installation) aura les accès root de par son mot de passe de compte directement.
Sur Ubuntu c'est le cas et on ne peut pas faire autrement, donc l'utilisateur est administrateur en somme ?
nan dans ubuntu, l'utilisateur creer en premier est dans /etc/sudoers, mais il n'est pas root.
Mais dans Ubuntu, il n'y a pas de root à proprement parlé, si ? Je veux dire, sur Ubuntu, le premier compte crée à accès à tout le système avec sudo, certe il se connecte en utilisateur mais il a l'accès root grace à son mot de passe. Je ne comprends pas exactement, il est possible d'être véritablement en root sur ma machine graphiquement ?
J'ai vu que lors de l'installation d'une Debian, il est demandé un mot de passe root. Si je le mets alors le premier compte utilisateur n'aura jamais accès au système ?
Tous les systeme linux ont un compte root. C'est celui qui est affilie a l'uid 0. Ce compte existe toujours. Je pense qu'il est hardcoder dans le code du noyau. Dans ubuntu, root n'a pas de mot de passe par defaut. Ce qui t'empeche de te logguer en root directement. Cependant quand tu executes une commande avec sudo, le compte utilisateur qui execute la commande est root.
Tu peux te logguer graphiquement avec root. C'est juste une tres mauvaise idee parceque toutes les applications que tu ferais tourner aurnt les permissions sur tous les fichiers de la machine et tous les reglages materiel.
Oui, j'ai fais le test de mettre un mot de passe root lors de l'installation et il est indiqué que Sudo ne sera pas utilisé. J'ai donc voulu tenté et lors d'une commande "sudo" il me dit que mon compte n'est pas dans sudoers.
Aussi, la manière d'entrer le mot de passe diffère en mode graphique, demandant on simple utilisateur que je suis si je veux garder en mémoire le mot de passe root ou ne jamais le garder en mémoire.
Pour utiliser root, je faisais CTRL + ALT + F1 et m'y connectais pour pouvoir utiliser des commandes donc le compte admin était nécessaire (parce que je ne sais pas si il existe une commande pour le simple utilisateur à entrer dans un émulateur de terminal pour lui permettre de connecter le compte root temporairement) puis le déconnectait avec la commande "exit" avant de retourner en graphique.
De par ce test, j'ai su répondre à ma propre question : "Si je le mets alors le premier compte utilisateur n'aura jamais accès au système ?"
La réponse est donc, il l'aura mais que dans de très très très rare cas (par exemple, Synaptic si j'ai pas envie de passer par le terminal) et pendant ce temps, toutes les autres applications seront en pause (j'ai lu ça quelque part, je sais pas si c'est vrai)
Au final, l'utilisation ne diffère que très peu vu que je me servais vraiment très rarement de mon accès root sur mon compte principal administrateur.
Finalement, je préfère la méthode "compte root à part"
et je l'ai maintenant adopté et changé quelques habitudes. Personnellement, je suis un fan du terminal et j'adore passer en TTY pour effectuer des actions.
Par contre, petite info, tu ne peux pas te connecter graphiquement en root, personnellement, Debian m'a refusé l'action et c'est tant mieux
(si du moins on pouvais, j'ai pas trouvé comment)
C'est marrant cette différence entre Windows et Linux. Sur Windows, si ton compte est administrateur, tu peux aller supprimer C:/Windows d'un clique alors que même le compte administrateur sur Linux ne pourra pas (du moins graphiquement et uniquement avec sudo). Seul ROOT pourra en TTY.
Root sur Ubuntu n'a pas de mot de passe, c'est vrai, mais c'est finalement celui du premier compte crée qui sera utilisé pour parler à la place de root donc Ubuntu le classe comme administrateur du système et c'est sudo qui fait la liaison entre ce compte caché sans mot de passe et le compte utilisateur (c'est l'installeur de Debian qui m'a dit ça)
En tout cas, merci Godrik pour toutes ces précisions, j'ai adoré partager toutes ces connaissances avec toi et c'était une expérience riche en apprentissage. Peut être qu'un jour j'en saurais autant que toi actuellement mais je vais continuer dans ma quête du savoir
pour pouvoir aider les débutants à l'avenir. J'adore GNU/Linux, j'en suis fan et j'adhère carrément à sa philosophie. Mon seul regret et de n'avoir jamais connu ça avant et je compte bien me rattraper ![]()
Si tu veux te mettre en root ça sert à rien de te mettre en tty, t'as juste à taper "su" (ou "su root" si ça ne marche pas) dans un terminal, il te demande le mot de passe et c'est bon.
Le root ne doit servir que pour modifier des fichiers dans "/", mettre à jour le système/installer/desinstaller des paquets (tu peux aussi le faire via sudo ou équivalent), mais en aucun cas pour une utilisation "normale" comme avec un utilisateur banal.