Comment installer une application par fichier DEB pour un seul utilisateur?

32

Lors de l’installation d’applications via le centre logiciel ou par un fichier DEB, ils seront généralement installés dans l’ensemble du système pour tous les utilisateurs.

Existe-t-il un moyen d’installer une application pour un seul utilisateur?

    
posée Takkat 01.03.2011 - 19:32
la source

6 réponses

5

En fonction de ce que vous voulez accomplir, il peut y avoir différentes manières de faire fonctionner ce système (ou au moins donner un aspect pirate de la fonctionnalité souhaitée).

L'installation de logiciels à bien des égards se résume à la mise à disposition de ressources ou à l'accès à des éléments déjà présents sur le système.

Que vous parliez d’accorder l’accès à des imprimantes ou de permettre à un utilisateur d’exécuter des programmes dans un certain répertoire, il existe des moyens d’y parvenir, et bien que ces solutions soient natives à Ubuntu ) va être ajouté après une installation .deb.

Voici deux classes générales de contrôle post-installation qui peuvent être ajoutées. Notez que, compte tenu du bon environnement, par exemple lorsqu'une politique de groupe étroitement contrôlée est en place, cela peut être plus facile une fois que le système de base est en place. Ce type d'autorisation peut même être lié à LDAP ou à un système similaire pouvant donner une authentification et une autorisation par utilisateur ou par groupe.

Contrôle de la visibilité
J'ai moi-même eu une situation peut-être un peu similaire, mais dans mon cas, les utilisateurs n'étaient pas (encore) très sophistiqués (tous avaient moins de 7 ans). Pour moi, il suffisait de cacher les menus de Gnome et / ou de supprimer les lanceurs de bureau.

La suppression du bit exécutable des répertoires élimine la possibilité pour les processus de les rechercher ou de les parcourir. Cela peut les rendre effectivement invisibles et, du point de vue de l'utilisateur, les rendre indisponibles. Si vous avez une stratégie système par défaut qui crée des menus basés sur l'accès aux fichiers, par exemple, vous pouvez obtenir ce type de solution cosmétique et le faire fonctionner pour les installations ultérieures avec un effort supplémentaire minime.

Contrôle de l’exécution
Le contrôle de la ressource peut être effectué via les autorisations Unix, les profils apparmor, les autorisations SELinux, etc. Il peut y avoir d'autres niveaux de filtrage de contrôle qui peuvent entrer en jeu selon l'application. En l'absence de solutions plus ciblées, vous devrez peut-être écrire des wrappers autour de certains programmes pour contrôler l'accès des utilisateurs ou des processus.

    
réponse donnée belacqua 02.03.2011 - 06:58
la source
10

Eh bien, dpkg ne vous aidera pas car ce n'est pas son objectif de conception. Il veut être un seul recensement des paquets installés sur un système et appartenant à la racine.

La seule chose qui me vient à l’esprit est d’extraire le paquet et d’essayer de placer les fichiers manuellement dans le répertoire personnel.

Cependant, cela ne fonctionnera que pour certaines choses. De nombreux paquets sont divisés en blocs (fichiers exécutables ou scripts dans /usr/bin , bibliothèques dans /lib et autres fichiers dans /usr/share , etc.) et ces emplacements sont codés en dur par les scripts de génération. Ainsi, si vous essayez d’introduire quelque chose comme ceci dans ~ , il se cassera. Vous pourriez passer des heures à dénouer les dépendances, mais vous pourriez faire quelque chose d’utile avec votre temps, comme trouver un remède contre le cancer ou absorber une partie de la beauté du monde.

Vous feriez bien mieux de saisir une version non packagée de quiconque écrit le logiciel. Presque tous les logiciels gratuits sont disponibles sous forme d'archive compressée sous forme de source, alors prenez-les et construisez-les simplement. Vous ne faites pas l'étape make install . Votre application est construite, il suffit de la placer où vous le souhaitez.

    
réponse donnée Oli 01.03.2011 - 23:42
la source
6

Je ne connais pas trop ce sujet, mais d’autres réponses semblent indiquer que vous pouvez installer un package dans un autre répertoire au lieu de / avec dpkg , en utilisant le paramètre --root , et ensuite faire un chroot dans le répertoire dans lequel le paquet a été "installé" (ce qui peut bien sûr être un répertoire dans le répertoire personnel de l'utilisateur).

Pour installer un paquet pour un utilisateur autre que root , il est possible d'utiliser le processus ci-dessus avec fakechroot au lieu de chroot .

Clause de non-responsabilité : je n'ai pas essayé ceci et je n'ai pas beaucoup d'expérience au moment de l'écriture avec dpkg ou chroot , mais d'après ce que je fais connaître ces outils, ce processus ne fonctionne que pourrait .

Liens contenant des informations pouvant être utiles aux personnes souhaitant obtenir l’effet de chroot sans les fonctionnalités de root :

Mise à jour

J'ai maintenant fait un petit peu avec des choses qui touchent à ce sujet, et j'en ai découvert d'autres ...

Fragments (blocs de construction d’environnement local):

  • Fakechroot - émule chroot(1)
  • Debootstrap - Créez une autre hiérarchie de systèmes de fichiers Debian dans un répertoire
  • Fakeroot-NG / fakeroot - Peut prétendre être la racine de certaines choses
  • EmDebian - Une variante debian utilisant moins d’espace et est souvent utilisé dans les environnements chroot
  • binfmt_misc - Peut exécuter des fichiers en utilisant leurs interprètes, comme s’il s’agissait de binaires natifs; utile avec qemu-user pour travailler avec des binaires (ou dans un (faux) chroot) d'architectures étrangères ( scripts / qemu-binfmt-conf.sh fourni avec le code source QEMU automatise cela)
  • Espace utilisateur Qemu - Peut exécuter des binaires d'autres architectures; peut être utilisé avec certains de ces outils quand ils ne supportent pas certaines architectures de processeurs
  • LwIP - Une pile réseau TCP / IP pouvant être exécutée à partir de l’espace utilisateur

Complet (fournisseurs d’environnement local complet):

  • Mode utilisateur linux : exécute un autre système Linux en tant que processus / programme normal
  • Qemu - Exécuter un ordinateur virtuel complet
  • PRoot - Fournit des fonctionnalités de chroot(1) , mount --bind , binfmt_misc et des fichiers binaires exécutés à partir d'autres architectures utilisant qemu- espace utilisateur
  • Espaces de noms Linux - Permet d’avoir une racine complète dans un environnement local, lorsqu’on utilise espaces de noms d'utilisateurs , une fonctionnalité disponible dans les versions de noyau Linux 3.8 et ultérieures.

Résumé : En émulant ou en ayant réellement des privilèges root localement, les packages DEB peuvent être installés pour un environnement local.

    
réponse donnée Abbafei 02.03.2011 - 03:25
la source
4

Vous pouvez probablement utiliser l'option --root de dpkg pour installer dans un autre répertoire. Mais cela va probablement poser des problèmes si l'application recherche des éléments dans des endroits fixes comme /etc .

En bref, je ne pense pas qu'il y ait un moyen facile.

    
réponse donnée Dariel Dato-on 01.03.2011 - 19:44
la source
2

Vous pouvez modifier la propriété du fichier exécutable afin qu’un seul utilisateur puisse l’exécuter. Ensuite, si nécessaire, vous pouvez supprimer l'application des menus des autres utilisateurs.

    
réponse donnée arrange 01.03.2011 - 20:01
la source
1

Douteux.

Les deb sont principalement des archives qui sont extraites de la racine de votre système de fichiers lorsqu'elles sont installées (plus une configuration). Si vous souhaitez les installer pour un seul utilisateur, vous devrez les installer dans / home / user folder. Même si vous l'avez fait, ils ne fonctionneraient pas, car f.e. les fichiers binaires des applications ne seront pas placés dans / usr / bin (ou sth similaire), et le système ne les trouvera pas si vous essayez de les lancer. De même, les bibliothèques, etc. seraient inutiles, car le système ne saurait pas qu'il y en a quelque part dans / home. Vous pouvez essayer l'approche par force brute et ajuster la variable PATH pour qu'elle pointe vers l'endroit où vous avez extrait les fichiers de l'archive deb, mais ce n'est pas seulement TRÈS non sécurisé, mais peut causer des problèmes de compatibilité (par exemple, les entrées de menu ne fonctionneraient pas, GNOME extrayant les fichiers .desktop dans / usr / share / applications).

De plus, si vous avez installé un paquet uniquement pour certains utilisateurs, cela pourrait causer des problèmes de dépendance, si un autre paquet installé par l'utilisateur entre en conflit avec un autre que vous aviez installé. apparaîtrait.

Tous ces problèmes rendent extrêmement difficile la gestion des paquets séparément pour les utilisateurs. Il semble donc impossible de les installer pour un seul utilisateur, car l’idée derrière les fichiers .deb ne le permet pas.

    
réponse donnée Rafał Cieślak 01.03.2011 - 19:47
la source

Lire d'autres questions sur les étiquettes