Comment créer une application sans privilèges sudo?

15

Que dois-je configurer sur un serveur Ubuntu 9.10 pour qu'un utilisateur puisse créer des applications de son choix (c'est-à-dire ./configure, make && make install) sans avoir besoin des privilèges sudo / admin.

Je pense juste que c'est un peu un risque pour la sécurité d'avoir à donner à un utilisateur l'accès à des parties du système dont il pourrait ne pas avoir besoin pour créer une application.

RC1140
la source

Réponses:

40

Si vos utilisateurs utilisent

./configure --prefix=/home/user/opt/

Ou pour les projets cmake

cmake -D CMAKE_INSTALL_PREFIX:PATH=/home/user/opt/ ../source/

Cela installera le programme dans ce préfixe (au lieu du / usr / local / par défaut) et vos utilisateurs devraient alors pouvoir exécuter le programme comme ceci:

/home/user/opt/bin/program

Si vous souhaitez qu'ils puissent exécuter les programmes en utilisant simplement le nom (sans chemin complet), vous devez ajouter /home/user/opt/binà la variable d'environnement path, éditez le profil utilisateur .profile et ajoutez la ligne suivante:

export PATH=/home/user/opt/bin:$PATH

Notez que les programmes installés de cette manière seront privés pour l'utilisateur spécifique, mais c'est une façon de le faire

LassePoulsen
la source
Les autres utilisateurs pourront utiliser des programmes installés comme celui-ci s'ils fournissent le chemin complet et que les autorisations sont définies de manière appropriée; et il semble que le umask par défaut le permette sur mon installation sur le bureau.
Alistair Buxton
La base de code que je compilais avait une Makefileconfiguration mais pas de configuration, je suis juste allé dedans et j'ai changé la prefix = /some/pathligne dans mon propre répertoire personnel (pas de barre oblique de fin), puis j'ai couru make installsans sudo - tout fonctionne maintenant, alors merci.
Big Rich du
8

Les utilisateurs peuvent créer des applications sans droits sudo. La seule fois où vous avez besoin des droits sudo, c'est lorsque vous souhaitez installer quelque chose dans les répertoires système.

./configureet maketravailler toujours sans droits sudo. make installa généralement besoin des droits sudo car il installe l'application sur /usr/localou /usr(parfois /opt).

Cependant, si vous modifiez le préfixe du chemin d'installation (c'est-à-dire ./configure --prefix=~/usr/local) de manière à ce que l'installation soit effectuée dans l'arborescence du répertoire personnel de l'utilisateur, aucun droit sudo n'est nécessaire pour make install.

txwikinger
la source
Je pense toujours que votre réponse n'est pas entièrement corroborée. Pourquoi faire ./configureet maketravailler toujours sans sudo? Comment dois-je le justifier à quelqu'un qui continue à exécuter sudo make installpar exemple?
Nikos Alexandris
0

En plus de ce que txwikinger a dit, vous voudrez peut-être vérifier également fakeroot, ce qui donne la possibilité de créer des packages .deb avec dpkgsans avoir besoin de privilèges élevés. Bien sûr, l'installation de ceux-ci nécessitera généralement un accès sudo.

esprit corrosif
la source