[RESOLU] Installer un paquet sans droit d'admin

Bonjour,

Je voudrais savoir si vous connaissez un moyen d’installer un .deb sans disposer de droits d’administration.

Une solution possible est de se compiler dans un répertoire local les dépendances manquantes, d’ajouter les librairies compilées dans le PKG_CONFIG_PATH et de rajouter le programme dans le PATH. On sera seul à disposer du programme et on n’emmerdera pas l’admin à lui demander d’installer des paquets.

Je ne veux pas ça, je souhaite directement utiliser le .deb. Est-ce que c’est possible? (moyennant compilation éventuelle d’un programme, je ne suis pas difficile du moment qu’on ne me demande pas de mot de passe root). Merci!

j’aurais tendance à dire que le système est fait pour que ce ne soit pas possible
mais pour le coup je ne suis pas assez calé

tu ne peux pas demander les droits sudo à ton admin ?
ou un environnement chrooté où tu pourrais faire tes trucs à toi sans lui demander à chaque fois

Tu peux recompiler le programme à la main, voire modifier le Makefile pour que les binaires se mettent dans ton home et non dans /usr/bin. Par contre, avec un .deb, je ne sais pas trop comment procéder.

Salut,

J’espère que ce ne soit pas possible car cela constituerait un magnifique gouffre de sécurité.

Un gouffre de sécurité, c’est y aller fort que d’affirmer cela. Je rappelle que du moment qu’on dispose d’un compilateur, on peut se faire son propre binaire du programme.

À partir de là, peut-on m’expliquer ce que le fait que ça soit un paquet debian au lieu d’un truc compilé soit-même ajoute comme faille ? (Si l’on prend un paquet debian des dépôts officiel, j’entends)

Re,

Parce que justement il pourrait aller s’installer sur le systeme :smiley:
Ce n’est pas la compilation qui est dangereuse, c’est l’installation !

Il y a une incompréhension manifeste.

Je dis que je cherche un outil qui permettrait d’installer un paquet debian dans l’arborescence de l’utilisateur. En aucun cas je ne cherche quelque chose qui irait outrepasser mes droits.

En tant qu’utilisateur, je suis déjà capable d’utiliser des binaires que j’ai généré ou téléchargé. Les paquets debian ne sont autres qu’un certain type de fichier binaires (compressés et agrémentés de scripts). Moi, je demande s’il existe un mécanisme qui me permet d’installer ces .deb juste pour moi, cloîtrés dans mon arborescence, comme je le ferais finalement en utilisant un binaire classique.

  • Qu’est ce qui rend ceci impossible?
  • Et surtout où est la faille du paquet debian par rapport au code compilé soi-même (ou téléchargé)?

[quote=“Christophe-Marie”]

  • Et surtout où est la faille du paquet debian par rapport au code compilé soi-même (ou téléchargé)?[/quote]

Je ne vois pas de différence de sécurité entre utilisé un paquet debian et du code compilé soi-même.

[quote=“ggoodluck47”]Re,

Parce que justement il pourrait aller s’installer sur le systeme :smiley:
Ce n’est pas la compilation qui est dangereuse, c’est l’installation ![/quote]
Je confirme.

dmon@Etchy:~$ ls -l / total 81 drwxr-xr-x 2 root root 4096 2008-05-19 15:36 bin drwxr-xr-x 4 root root 1024 2008-05-19 15:38 boot lrwxrwxrwx 1 root root 11 2008-04-17 14:24 cdrom -> media/cdrom drwxr-xr-x 15 root root 4240 2008-05-19 15:47 dev drwxr-xr-x 94 root root 4096 2008-06-26 14:25 etc drwxr-xr-x 4 root root 4096 2008-04-17 14:34 home drwxr-xr-x 2 root root 4096 2008-04-17 14:26 initrd lrwxrwxrwx 1 root root 28 2008-04-17 16:33 initrd.img -> boot/initrd.img-2.6.18-6-686 lrwxrwxrwx 1 root root 28 2008-04-17 14:29 initrd.img.old -> boot/initrd.img-2.6.18-4-686 drwxr-xr-x 15 root root 12288 2008-04-18 13:46 lib drwx------ 2 root root 16384 2008-04-17 14:19 lost+found drwxr-xr-x 4 root root 4096 2008-04-17 16:08 media drwxr-xr-x 2 root root 4096 2006-10-28 16:06 mnt drwxr-xr-x 2 root root 4096 2008-04-17 14:26 opt dr-xr-xr-x 91 root root 0 2008-05-09 17:02 proc drwxr-xr-x 7 root root 4096 2008-05-19 16:15 root drwxr-xr-x 2 root root 4096 2008-04-17 16:07 sbin drwxr-xr-x 2 root root 4096 2008-04-17 14:26 srv drwxr-xr-x 11 root root 0 2008-05-09 17:02 sys drwxrwxrwt 14 root root 4096 2008-06-27 13:51 tmp drwxr-xr-x 11 root root 4096 2008-04-17 16:05 usr drwxr-xr-x 16 root root 4096 2008-04-17 18:50 var lrwxrwxrwx 1 root root 25 2008-04-17 16:33 vmlinuz -> boot/vmlinuz-2.6.18-6-686 lrwxrwxrwx 1 root root 25 2008-04-17 14:29 vmlinuz.old -> boot/vmlinuz-2.6.18-4-686
L’utilsation d’un “.deb” dans 99% des cas se termine par l’écriture dans le repertoire /usr où seul le root à le droit d’écriture.
Le problème est identique si tu charges les sources.
tu peux faire : ./configure
tu peux faire : make
mais pas : make install si tu n’es pas root.

Ton idée n’est pas mal, installer un binaire à des fin de test dans par exemple ~/bin. Maintenant ça me titille je me demande si je n’ai pas lu ça quelque part.

Un paquet Debian n’est pas prévu pour s’installer dans un répertoire utilisateur. Il s’installe dans les répertoires “système”.

Un simple utilisateur peut toujours extraire les fichiers d’un .deb avec dpkg-deb -x dans son répertoire utilisateur, mais ce n’est pas une installation. Notamment les scripts de pré|post-installation ne sont pas exécutés. De toute façon ces scripts effectuent généralement des actions privilégiées, donc ils ne marcheraient pas. Les exécutables extraits ainsi ne fonctionneront pas forcément, notamment s’ils ont besoin de charger des bibliothèques ou autres fichiers qui sont censés se trouver dans des répertoires système et dont le chemin est défini en dur à la compilation, ou d’être SUID (exemples : ping, traceroute).

[quote=“dmon”]
L’utilsation d’un “.deb” dans 99% des cas se termine par l’écriture dans le repertoire /usr où seul le root à le droit d’écriture.
Le problème est identique si tu charges les sources.
tu peux faire : ./configure
tu peux faire : make
mais pas : make install si tu n’es pas root.

Ton idée n’est pas mal, installer un binaire à des fin de test dans par exemple ~/bin. Maintenant ça me titille je me demande si je n’ai pas lu ça quelque part.[/quote]
Ben si, make install, la plupart du temps c’est possible :slightly_smiling: Il suffit de configurer correctement ses variables d’environnement.

Typiquement, ma manière de procéder, c’est :
Je travaille dans un sous-répertoire de mon ~/. On va dire : ~/local/, ou en chemin absolu /home/user/local, si mon login est user. Au lieu de faire ./configure, je tape ./configure --PREFIX=/home/user/local. Il faut en général lire la doc, mais si le projet est sérieux et bien codé, ça marche comme ça. Ceci change les répertoires d’installation par défaut dans les Makefile générés. Ensuite, make pour compiler, et make install. Pas besoin de sudo, ni d’être root.

En général ça crée un répertoire ~/local/bin, un répertoire ~/local/etc, un répertoire ~/local/lib, etc…
Il te suffit de manipuler tes variables d’environnement correctement pour prendre en compte ces répertoires spéciaux. Par exemple chez-moi, pour que pkg-config trouve facilement les chemins vers les librairies générées, j’ai ‘export PKG_CONFIG_PATH=$PKG_CONFIG_PATH}:${HOME}/local/lib/pkg-config’ dans mon ~/.bashrc. J’ai aussi ‘export PATH=${PATH}:${HOME}/bin’ pour que les executables soient aussi cherchés dans le répertoire ~/local/bin.

Pourquoi pas un hack similaire pour les paquets debian?

Tu as sans doute plusieurs moyens, le plus simple consiste à extraite le contenu du paquet localement: Prenons l’exemple de sed et d’un repertoire /tmp/blop où tu mets tes bêtises. Tu charges le paquet (ici http://ftp.fr.debian.org/debian/pool/main/s/sed/sed_4.1.5-1_amd64.deb)

francois@bling:/tmp/blop$ dpkg-deb -x ../sed_4.1.5-1_amd64.deb .
Puis tu rajoutes /tmp/blop/usr/bin et /tmp/blop/bin à ton PATH

francois@bling:/tmp/blop/bin$ export PATH=/tmp/blop/usr/bin:/tmp/blop/bin:$PATH
Le sed est bien le paquet installé

francois@bling:/tmp/blop/bin$ which sed /tmp/blop/bin/sed
et ça marche

francois@bling:/tmp/blop/bin$ ls -l /tmp | sed -e '1,$s/.deb/.BLABLA/'

J’ai installé comme ça beaucoup de choses sur des machines dont je n’étais pas administrateur. Bien sûr tu n’as pas les droits root, si tu installes ifconfig, tu ne seras guère avancé, mais pour la plupart des programmes, ça tourne. Tu peux même installer un environnement chroot te permettant d’éxécuter un programme ayant un références absolue des fichiers et ceux ci localisés dans des répertoires où tu n’as pas de droits, mais c’est assez rare, la plupart des programmes peuvent se reconfigurer (chgt des fichiers de config).

Ça n’a rien à voir avec les problèmes de sécurité.

Il ne faut pas avoir les droits root pour lancer chroot ?

[quote=“fran.b”]Tu as sans doute plusieurs moyens, le plus simple consiste à extraite le contenu du paquet localement: Prenons l’exemple de sed et d’un repertoire /tmp/blop où tu mets tes bêtises. Tu charges le paquet (ici http://ftp.fr.debian.org/debian/pool/main/s/sed/sed_4.1.5-1_amd64.deb)

francois@bling:/tmp/blop$ dpkg-deb -x ../sed_4.1.5-1_amd64.deb .
Puis tu rajoutes /tmp/blop/usr/bin et /tmp/blop/bin à ton PATH

francois@bling:/tmp/blop/bin$ export PATH=/tmp/blop/usr/bin:/tmp/blop/bin:$PATH
Le sed est bien le paquet installé

francois@bling:/tmp/blop/bin$ which sed /tmp/blop/bin/sed
et ça marche

francois@bling:/tmp/blop/bin$ ls -l /tmp | sed -e '1,$s/.deb/.BLABLA/'

J’ai installé comme ça beaucoup de choses sur des machines dont je n’étais pas administrateur. Bien sûr tu n’as pas les droits root, si tu installes ifconfig, tu ne seras guère avancé, mais pour la plupart des programmes, ça tourne. Tu peux même installer un environnement chroot te permettant d’éxécuter un programme ayant un références absolue des fichiers et ceux ci localisés dans des répertoires où tu n’as pas de droits, mais c’est assez rare, la plupart des programmes peuvent se reconfigurer (chgt des fichiers de config).

Ça n’a rien à voir avec les problèmes de sécurité.[/quote]
Cool, la réponse que je voulais :slightly_smiling:

Merci!

Salut,

J’en deduis que vous pratiquez ce genre de jeux sur une machine dont vous n’êtes pas le responsable. Je vous souhaite de ne pas tomber sur un admin qui prends son role au sérieux :mrgreen:

Détrompez-vous, l’admin est parfaitement au courant de ce que je fais. Simplement il ne souhaite pas installer les paquets dont j’ai envie car il ne veut pas que les caprices d’un seul utilisateur fassent grossir toute sa base de programmes. Il m’a conseillé lui-même de me les compiler ou de me trouver des binaires.

Je le répète, cela ne pose aucun problème de sécurité… Je ne vois pas pourquoi l’admin gueulerait.